Skip to content

Rebase fulu-ebps to unstable, add block error handling, remove incompatible tests #7204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 218 commits into
base: fulu-ebps
Choose a base branch
from

Conversation

Tomi-3-0
Copy link
Contributor

@Tomi-3-0 Tomi-3-0 commented Jun 2, 2025

No description provided.

agnxsh and others added 30 commits February 5, 2025 16:42
… values. (status-im#6906)

* Fix add more electra values to /eth/v1/config/spec endpoint.

* Move some constants to public space.
Fix places where constants being used.
Fix output of /eth/v1/config/spec to be consistent with electra specification.
…tatus-im#6864)

- Add script to bump `libunwind` dependency
- Bump libunwind to `llvmorg-13.0.1`
Add `signature_slot` comparison to `is_better_update` LC data comparator
for robustness in edge cases, and sync style with latest specs.

- ethereum/consensus-specs#4124
* Fix cache invalidation issue in VC.

* Update copyright source.

* Address review comments.

* Update cache invalidation for gas limit calls.

* Update copyright year.
* Fix FR and GL management for dynamic validators.

* Fix importing keystore could be blocked by setting gas limit or feerecipient values.
Add tests.

* Enable setTopicState() values.

* Update copyright years.

* Update AllTests.

* Post-rebase updates oof AllTests.
…us-im#6920)

- Bump blst to `v0.3.14`
- bench: add serial MSM benchmark
…tatus-im#6919)

- Remove patches for `libunwind` and use upstream build system
- Re-root `libunwind` CMake invocation at `<monorepo>/runtimes`
- Bump libunwind to `llvmorg-19.1.7`
- Compile libunwind in release mode
…-im#6925)

* mostly automated consensus spec URL updating to v1.5.0-beta.2

* copyright year linting
- Improvements to discv5 sessions
- Adjust uTP benchmarking tests to use multiple nodes
- Discv5 Protocol: Add support for banning nodes
- Reduce declared but not used warnings
- Optimize RLP serialization
- Discv5 Routing Table: Add support for banning nodes
- use the common CI workflow
- add discv5_network_byte metric in discoveryv5 protocol
- ecies: cleanup
* add: basic validator custody

* address review comments

* renaming to snake case
tersec and others added 21 commits May 10, 2025 04:57
…us-im#7100)

* Initial commit.

* Address review comments.
Add DataColumn tests.

* Address compilation issue, lets call it untyped sandwich.

* Fix - return empty sequence when block does not hold any blobs/columns.

* Add test for previous case.

* Add Blob/Column quarantine test to test suite.

* Update AllTests.

* Fix put(openArray) check if len(sidecars) fits in quarantine, add test for this issue.
Add compile time checks for ColumnMap.

* Improve checkResponseSanity().

* Eliminate slot handling facilities.
Address review comment about `hasSidecar` possible issues.
Update tests.

* Address review comments.

* Fix compilation warning introduced.
Add pruning of blob quarantine and  tests.

* Fix put() duplicate items making counters wrong.
Add  tests.

* Remove asSeq(), add optimized iterator with tests.

* Remove duplication checks in Request Manager getMissingBlobs() loop.

* Update AllTests.

* Address review comments.
* feat: export getValidatorIndices

* feat: check slashing with attached validators

* doc: add 130 exit code

* fix: copyright

* fix: check over known validators instead

* refactor: exit code of slashing

* refactor: use consensus manager to access private data

* revert: "refactor: use consensus manager.."

* refactor: make necessary var and func public only

* refactor: exit code
Co-authored-by: Tomi-3-0 <caleb@caleb>
…nvelope (status-im#6938)

* eip7732 helper functions

* removes the boolean 'payload withheld' and adds slot to the payload envelope

---------

Co-authored-by: Tomi-3-0 <caleb@caleb>
…nvelope

Refactor containers: update BeaconBlockBody, modify ExecutionPayloadHeader, extend BeaconState for ePBS. Fix resulting cascading test issues
…eader, extend BeaconState for ePBS. Fix resulting cascading test issues
@Tomi-3-0 Tomi-3-0 changed the title Rebases onto fulu-ebps unto unstable, add error handling for failed block addition, and remove incompatible Fulu spec tests Rebase fulu-ebps to unstable, add block error handling, remove incompatible tests Jun 2, 2025
Copy link

github-actions bot commented Jun 5, 2025

Unit Test Results

         9 files    1 401 suites   36m 25s ⏱️
  5 912 tests   5 351 ✔️ 561 💤 0
23 210 runs  22 528 ✔️ 682 💤 0

Results for commit 13c1fb2.

♻️ This comment has been updated with latest results.

@tersec
Copy link
Contributor

tersec commented Jun 5, 2025

https://github.com/status-im/nimbus-eth2/actions/runs/15392746027/job/43515161222?pr=7204

Run excluded_files="config.yaml|config.nims|beacon_chain.nimble"
The following files do not have an up-to-date copyright year:
- beacon_chain/el/el_manager
- test_output.log2
- tests/testbcutil.nim

https://github.com/Tomi-3-0/nimbus-eth2/blob/eip7732/beacon_chain/el/el_manager and https://github.com/Tomi-3-0/nimbus-eth2/blob/eip7732/test_output.log2 shouldn't be in the repository to begin with; the copyright date issue is secondary for them.

Run while read -r file; do
Submodule 'vendor/hoodi': '1a603fbe0138fa138d3de61afcae7bb138023179' is not on 'main' as of 2025-05-02 10:53:42 +0000 (branch config: '.gitmodules')
Error: Process completed with exit code 2.

Confuses me slightly, because eth-clients/hoodi@1a603fb says it is on main as of 2025-05-02.

@tersec
Copy link
Contributor

tersec commented Jun 5, 2025

the macos-amd64 CI is failing interestingly on cff3020:

2025-06-05T05:18:47.9125230Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:18:47.9169090Z 257106 lines; 161.206s; 2.862GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/beacon_chain/nimbus_signing_node.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/nimbus_signing_node/nimbus_signing_node.json [SuccessX]
2025-06-05T05:18:48.1443900Z scripts/compile_nim_program.sh: line 49: 69128 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:18:48.1446800Z make: *** [nimbus_signing_node] Error 139
2025-06-05T05:18:48.1448010Z make: *** Waiting for unfinished jobs....
2025-06-05T05:18:53.6903230Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:18:53.6905720Z 235261 lines; 166.980s; 2.96GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/research/block_sim.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/block_sim/block_sim.json [SuccessX]
2025-06-05T05:18:53.8979970Z scripts/compile_nim_program.sh: line 49: 69179 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:18:53.9043900Z make: *** [block_sim] Error 139
...
2025-06-05T05:19:27.5921720Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:19:27.5924930Z 252644 lines; 200.890s; 3.706GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/tests/consensus_spec/consensus_spec_tests_preset.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/consensus_spec_tests_minimal/consensus_spec_tests_minimal.json [SuccessX]
2025-06-05T05:19:27.8044450Z scripts/compile_nim_program.sh: line 49: 69849 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:19:27.8054950Z make: *** [consensus_spec_tests_minimal] Error 139
...
2025-06-05T05:19:48.3815590Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:19:48.3818230Z 252644 lines; 221.670s; 4.378GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/tests/consensus_spec/consensus_spec_tests_preset.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/consensus_spec_tests_mainnet/consensus_spec_tests_mainnet.json [SuccessX]
2025-06-05T05:19:48.5969760Z scripts/compile_nim_program.sh: line 49: 70114 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:19:48.6008990Z make: *** [consensus_spec_tests_mainnet] Error 139

and so is the macs-arm64 CI:

2025-06-05T05:18:48.3093700Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:18:48.3667300Z 257106 lines; 226.700s; 2.862GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/beacon_chain/nimbus_signing_node.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/nimbus_signing_node/nimbus_signing_node.json [SuccessX]
2025-06-05T05:18:48.6047470Z scripts/compile_nim_program.sh: line 49: 71158 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:18:48.6198360Z make: *** [nimbus_signing_node] Error 139
2025-06-05T05:18:48.6401210Z make: *** Waiting for unfinished jobs....
2025-06-05T05:19:01.1147680Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:19:01.1204200Z 235261 lines; 239.488s; 2.96GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/research/block_sim.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/block_sim/block_sim.json [SuccessX]
2025-06-05T05:19:01.3567140Z scripts/compile_nim_program.sh: line 49: 71360 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:19:01.4137140Z make: *** [block_sim] Error 139
...
2025-06-05T05:20:06.1467270Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:20:06.1471490Z 252644 lines; 304.413s; 3.706GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/tests/consensus_spec/consensus_spec_tests_preset.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/consensus_spec_tests_minimal/consensus_spec_tests_minimal.json [SuccessX]
2025-06-05T05:20:07.0470760Z scripts/compile_nim_program.sh: line 49: 72378 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:20:07.0553390Z make: *** [consensus_spec_tests_minimal] Error 139
...
2025-06-05T05:20:36.8739980Z Hint: mm: refc; threads: on; opt: speed; options: -d:release
2025-06-05T05:20:36.8743270Z 252644 lines; 335.254s; 4.378GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/tests/consensus_spec/consensus_spec_tests_preset.nim; out: /Users/runner/work/nimbus-eth2/nimbus-eth2/nimcache/release/consensus_spec_tests_mainnet/consensus_spec_tests_mainnet.json [SuccessX]
2025-06-05T05:20:37.3489410Z scripts/compile_nim_program.sh: line 49: 72833 Segmentation fault: 11  build/generate_makefile "nimcache/release/${BINARY}/${PROJECT_NAME}.json" "nimcache/release/${BINARY}/${BINARY}.makefile"
2025-06-05T05:20:37.3558920Z make: *** [consensus_spec_tests_mainnet] Error 139

That is, segfaulting during building. It's a bug somewhere, I think in clang, because of a combination of:

  • those "2025-06-05T05:20:06.1471490Z 252644 lines; 304.413s; 3.706GiB peakmem; proj: /Users/runner/work/nimbus-eth2/nimbus-eth2/tests/consensus_spec/consensus_spec_tests_preset.nim; ..." lines only occur after nim per se has finished compiling Nim to C, and;
  • it's on the two Apple clang-based platforms, but not the gcc-based Linux platform.

Might be interesting to try using the macos-14 GitHub Actions CI image to see if it fixes this.

@Tomi-3-0
Copy link
Contributor Author

Tomi-3-0 commented Jun 6, 2025

https://github.com/status-im/nimbus-eth2/actions/runs/15392746027/job/43515161222?pr=7204

Run excluded_files="config.yaml|config.nims|beacon_chain.nimble"
The following files do not have an up-to-date copyright year:
- beacon_chain/el/el_manager
- test_output.log2
- tests/testbcutil.nim

https://github.com/Tomi-3-0/nimbus-eth2/blob/eip7732/beacon_chain/el/el_manager and https://github.com/Tomi-3-0/nimbus-eth2/blob/eip7732/test_output.log2 shouldn't be in the repository to begin with; the copyright date issue is secondary for them.

Run while read -r file; do
Submodule 'vendor/hoodi': '1a603fbe0138fa138d3de61afcae7bb138023179' is not on 'main' as of 2025-05-02 10:53:42 +0000 (branch config: '.gitmodules')
Error: Process completed with exit code 2.

Confuses me slightly, because eth-clients/hoodi@1a603fb says it is on main as of 2025-05-02.

https://github.com/status-im/nimbus-eth2/actions/runs/15392746027/job/43515161222?pr=7204

Run excluded_files="config.yaml|config.nims|beacon_chain.nimble"
The following files do not have an up-to-date copyright year:
- beacon_chain/el/el_manager
- test_output.log2
- tests/testbcutil.nim

https://github.com/Tomi-3-0/nimbus-eth2/blob/eip7732/beacon_chain/el/el_manager and https://github.com/Tomi-3-0/nimbus-eth2/blob/eip7732/test_output.log2 shouldn't be in the repository to begin with; the copyright date issue is secondary for them.

Run while read -r file; do
Submodule 'vendor/hoodi': '1a603fbe0138fa138d3de61afcae7bb138023179' is not on 'main' as of 2025-05-02 10:53:42 +0000 (branch config: '.gitmodules')
Error: Process completed with exit code 2.

Confuses me slightly, because eth-clients/hoodi@1a603fb says it is on main as of 2025-05-02.

Thanks. I will clean this up, was an oversight.

Probably a timing/caching issue with the submodule; i will try updating the submodule reference

@Tomi-3-0
Copy link
Contributor Author

@tersec
The macOS CI failure appears to be related to network/async operations in the queryValidatorsSource() test. My proposed fix is adding macOS-specific timeouts to the network test. Do you think this is a good approach?

@tersec
Copy link
Contributor

tersec commented Jun 30, 2025

Reasonable, yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.