424 Commits

Author SHA1 Message Date
Alex Ant 82e399a2ca feat(leap-util): built-in genesis registry — 'genesis print/list' subcommands (#9)
Bootstrapping a fresh node used to require an externally hosted genesis.json;
lose the file and you cannot sync. The canonical genesis states of known
Coopenomics chains (mainnet, testnet) are now compiled into the binary and
reproducible from the package alone:

  leap-util genesis list                      # names + chain ids
  leap-util genesis print mainnet > genesis.json

Each entry only overrides initial_key — the production initial_timestamp and
chain_config values are already the compile-time defaults of genesis_state.
The default EOSIO_ROOT_KEY is intentionally untouched, so dev forks and the
docker-hub harness keep their well-known dev key; one build serves mainnet,
testnet and dev (a config-time root key change would have forked every dev
setup, and shipping per-network builds was rejected outright).

Unit test pins both registry chain ids to the canonical values, proving every
hashed genesis field is correct, and pins the dev default to NOT equal any
production genesis.

Co-authored-by: coopops <coopos@coopenomics.world>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 22:17:26 +05:00
Alex Ant 2ef58997e1 fix(chain): extend mainnet exception windows through setcode block 113275717 (#8)
Empirical full replay on 2026-06-10 proved the incident model wrong in one
detail: onblock on the buggy build THREW on every block (it did not merely
skip receipt recording), and recovery happened in-band — block 113275717
carries the eosio::setcode that replaced the system contract, produced 0.5s
after the last zero-mroot block with no BP restart. Onblock was still failing
while 113275717 itself was produced, so its canonical action_mroot covers
only the setcode receipt; a replay that runs onblock there computes a
two-receipt mroot and fails "Block ID does not match".

Extend both builtin windows (action_mroot bypass + onblock skip) from
113275716 to 113275717 inclusive. The 2395 in-window blocks replay
bit-identical to the canonical chain (zero mroot, matching block ids — the
mroot bypass never even fires); user transactions inside the window execute
normally.

Co-authored-by: coopops <coopos@coopenomics.world>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 15:11:49 +05:00
Alex Ant b94c791b10 feat(chain): v5.3.1 — onblock skip + non-zero mroot bypass + builtin registry (#7)
Three coupled mechanisms in chain_historical_exceptions so archival nodes can
replay coopenomics mainnet past the 2026-05-11 v5.2.0-dev incident:

- chain_historical_exceptions gains onblock_skip_windows and
  suppressed_activations vectors; both are optional in the JSON form so v5.3.0
  files keep parsing.
- apply_block bypass no longer requires action_mroot == 0 inside a window —
  any divergent mroot is accepted when every other header field matches.
  Needed because a sound replay computes a non-zero mroot in the dirty window
  (onblock works) while the canonical chain stored zero.
- start_block skips the implicit onblock transaction inside any configured
  window. Without this the chainbase (block_summary_object etc.) mutated by
  onblock diverges from canonical state and every later block fails to
  validate, defeating the mroot bypass.
- trigger_activation_handler can be suppressed per feature_digest via the
  registry — guards against future incidents where a marked-activated feature
  must not run its handler during replay.
- New chain_exceptions_builtin.cpp ships a compiled-in registry keyed by
  chain_id; for coopenomics mainnet it carries action_mroot + onblock-skip
  windows [113273322..113275716]. Operators no longer need to distribute a
  separate JSON file; the .deb is self-contained. File option still wins
  per-node when set.

Co-authored-by: coopops <coopos@coopenomics.world>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 10:12:24 +05:00
coopops 1586a2e0e0 chore(release): bump CMake VERSION to 5.3.0
CMakeLists.txt still hardcoded 5.2.0, so v5.3.0 tag produced
coopos_5.2.0-*.deb. dpkg -i over installed 5.2.0 would no-op.
Bump VERSION_MINOR=3 so artifact matches tag.
2026-06-03 10:32:35 +00:00
coopops 111696cc77 build: убрать хардкод VERSION_SUFFIX=dev
Раньше каждая сборка получала имя `coopos_5.2.0-dev-...deb` и
`coopos-dev_5.2.0-dev-...deb` — слово «dev» в имени файла означало
одновременно (а) pre-release-суффикс версии и (б) component-имя
второго пакета. Это путало: «у одного dev в начале, у другого
в конце».

VERSION_SUFFIX переведён в CACHE STRING с пустым default. Релизный
билд даёт чистое `5.2.0`. При необходимости pre-release —
`cmake -DVERSION_SUFFIX=rc1 …`.

Имена пакетов после правки:
  - coopos_5.2.0-ubuntu22.04_amd64.deb       (runtime)
  - coopos-dev_5.2.0-ubuntu22.04_amd64.deb   (headers, EosioTester)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 07:55:55 +00:00
Alex Ant a2692003d5 bump version 2025-10-15 21:50:44 +05:00
Alex Ant 44f1a76d98 LEAP -> COOPOS rebranding 2025-10-10 17:40:42 +05:00
Matt Witherspoon 14544ecfb6 Merge pull request #1849 from AntelopeIO/cse=no_5x
[5.0] globally (effectively) `--catch_system_errors=no` all boost-test based unit tests
2023-11-01 16:57:04 -04:00
Matt Witherspoon 2717d0a135 globally --catch_system_errors=no 2023-11-01 13:42:16 -04:00
Lin Huang ef21be9e72 bump Leap version to 5.0.0 rc2 2023-10-11 11:29:29 -04:00
Lin Huang dfdd0911cb merge 5.0.0-rc-1 and correct Leap version 2023-10-05 22:01:48 -04:00
Lin Huang 6be4c2d108 create release/5.0 branch and bump Leap version to 5.0.0 rc1 2023-10-05 16:48:09 -04:00
Matt Witherspoon e2be85a296 prevent anything from find_package(OpenSSL)ing 2023-09-13 16:37:55 -04:00
Matt Witherspoon 2ff2b9c7ac replace openssl with boringssl
Co-authored-by: 766C6164 <valterdaw@gmail.com>
2023-09-05 21:28:53 -04:00
greg7mdp 4127a5c083 Allow gcc 10.2 to support debian distrib. 2023-08-18 14:44:22 -04:00
greg7mdp 1ae864b799 Update gcc version check in CMakeLists.txt 2023-08-18 12:27:27 -04:00
Matt Witherspoon 429e311be1 install bls12-381 LICENSE 2023-08-01 21:33:42 -04:00
greg7mdp 1f51211475 Update C++ standard to C++20 2023-07-27 13:31:18 -04:00
Matt Witherspoon 553a09d905 don't build leap-dev .deb package by default 2023-07-25 14:30:00 -04:00
greg7mdp 8332a802f0 Exclude test directories from boost/tools 2023-07-24 10:57:46 -04:00
greg7mdp 4977b08add Simplify exclude patterns. 2023-07-24 10:03:15 -04:00
greg7mdp 8537bd3e71 Update exclude patterns in install() for dev package 2023-07-21 19:06:34 -04:00
greg7mdp 5780dfef1a Cleanup exclude patterns in CMakeLists.txt. 2023-07-21 14:44:03 -04:00
greg7mdp 6c2040a289 Some more exclude patterns to make the dev install smaller 2023-07-21 14:24:19 -04:00
greg7mdp 6eb19aadb9 Another attempt at filtering testwave 2023-07-21 14:19:56 -04:00
greg7mdp 60ef3a9153 try again to not add testwave to the deb install. 2023-07-21 13:03:56 -04:00
greg7mdp 0e364bee8b Exclude testwave (and other unnecessary files) from boost install 2023-07-21 12:23:40 -04:00
greg7mdp 4483aedd30 Move COMPONENT before PATTERN in install command. 2023-07-19 19:28:00 -04:00
greg7mdp 877799a998 Cleanup changes and remove .git from boost install. 2023-07-19 17:24:15 -04:00
greg7mdp 0a177a9935 Add missing packages in debian install. 2023-07-19 15:44:45 -04:00
greg7mdp 91b96a0b35 Use boost submodule organization always. 2023-07-19 14:58:16 -04:00
greg7mdp fe1faf8672 Update CMakeModules/EosioTesterBuild.cmake.in to support installed boost 2023-07-19 13:28:35 -04:00
greg7mdp 3204110e5a Add python3-all to .cicd/platforms/ubuntu22.Dockerfile 2023-07-18 18:00:33 -04:00
greg7mdp 6ce21266aa whitespace change 2023-07-18 17:54:22 -04:00
greg7mdp 53228de8d2 Add python3 to command. 2023-07-18 16:54:41 -04:00
greg7mdp ffcd97e6cf Add boost to install 2023-07-18 11:16:29 -04:00
greg7mdp a93484ee9a move boost add_subdirectory() to the libraries CMakeLists.txt 2023-07-11 17:22:12 -04:00
greg7mdp 03d957f731 Merge branch 'main' of github.com:AntelopeIO/leap into boost_submodule 2023-07-07 17:06:46 -04:00
Matt Witherspoon 18617a5044 Merge pull request #1363 from AntelopeIO/no_eager_tcmalloc
no longer eagerly use tcmalloc if it's found
2023-07-07 13:56:54 -04:00
greg7mdp f7cf3be74f Merge branch 'main' of github.com:AntelopeIO/leap into boost_submodule 2023-07-05 15:15:44 -04:00
Matt Witherspoon a8f35c7355 no longer eagerly use tcmalloc if it's found 2023-07-03 11:27:13 -04:00
Jonathan Giszczak ed754170ad Remove CMake install of launcher.py. 2023-05-19 14:41:45 -05:00
greg7mdp d22f340ba9 Remove outdated comments. 2023-05-08 10:46:11 -04:00
greg7mdp 1cfbf0a769 Leap builds with boost 1.82 as submodule. 2023-05-08 10:13:39 -04:00
greg7mdp 9ff1ad4044 Add boost as submodule 2023-05-04 10:57:31 -04:00
greg7mdp 2dcb42f3ef Update boost version in CMakeLists.txt to 1.71 2023-05-02 13:40:18 -04:00
Huang-Ming Huang 8bd05824ce update cmake 2023-04-12 08:32:26 -05:00
Peter Oschwald 455b40b073 Update boost version. 2023-04-07 13:48:51 -05:00
Huang-Ming Huang cbef1eca19 Merge branch 'release/4.0' into huangminghuang/cmake-fix-main 2023-04-06 09:25:12 -05:00
Huang-Ming Huang 69a741c5ba fix make package 2023-04-04 21:01:10 -05:00