Skip to content

Conversation

@kamilchodola
Copy link
Contributor

Fixes Closes Resolves #

Please choose one of the keywords above to refer to the issue this PR solves followed by the issue number (e.g. Fixes #000). If no issue number, remove the line. Also, remove everything marked optional that is not applicable. Remove this note after reading.

Changes

  • List the changes

Types of changes

What types of changes does your code introduce?

  • Bugfix (a non-breaking change that fixes an issue)
  • New feature (a non-breaking change that adds functionality)
  • Breaking change (a change that causes existing functionality not to work as expected)
  • Optimization
  • Refactoring
  • Documentation update
  • Build-related changes
  • Other: Description

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes
  • No

Notes on testing

Optional. Remove if not applicable.

Documentation

Requires documentation update

  • Yes
  • No

If yes, link the PR to the docs update or the issue with the details labeled docs. Remove if not applicable.

Requires explanation in Release Notes

  • Yes
  • No

If yes, fill in the details here. Remove if not applicable.

Remarks

Optional. Remove if not applicable.

deffrian and others added 30 commits October 17, 2025 21:03
* Test

* Test

* Try fix

* Delegation in GetCachedCodeInfo

* Do not trace delegate call

* Fix known-failing-tests.txt

* Fix suggestions
Removed known failing tests related to eth_getBlockByNumber.
* fix: Use correct Docker Hub secrets across workflows

* Update release workflow

---------

Co-authored-by: Ruben Buniatyan <[email protected]>
* Fix: Blocktest validation bypass and exception handling logic

This commit addresses two critical issues in blockchain test validation:

1. Validation Bypass Vulnerability:
   - Removed the `!test.SealEngineUsed ||` condition that allowed blocks
     to skip validation entirely when using NoProof seal engine
   - Now all blocks undergo proper consensus rule validation regardless
     of seal engine type (seal validation itself remains conditional)

2. Inverted Exception Logic:
   - Fixed inverted null checks on `ExpectedException` in both validation
     failure and exception handling paths
   - Added explicit validation pass/fail checks to catch blocks that
     unexpectedly pass when they should fail
   - Improved error messages to include actual validation error details
   - Added explanatory comments documenting expected behavior

The validation framework now correctly:
- Validates all blocks through the consensus rule validator
- Fails tests when blocks unexpectedly pass validation
- Fails tests when blocks unexpectedly fail validation
- Properly handles expected failures via both validation and exceptions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* ExpectException asserts simplification

* fixes

* Remove SealEngineType and SealEngineUsed

* simplify asserts

* Fix expectsException

---------

Co-authored-by: Bhargava Shastry <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Alexey Osipov <[email protected]>
* initial

* format

* apply comments

* update description

* remove leading zeros from some places

* update known-failing-hive-tests.txt after running the hive
* Update send blobs docs and fix an option

* Fix dockerfile
#9507)

* Add CancelAfter to Maintain_correct_pointers_for_beacon_sync_in_archive_sync

* add Retry

* try fix combines_contract_and_local_data_correctly
disable osaka chiado hardfork

Co-authored-by: Marc Harvey-Hill <[email protected]>
* xdc block sealer

* Test

* Format
* Do not load nonce from state

* Prepare state before assembling body

* Emulate nonce overflow

* known-failing-tests

* Fix suggestions

* test

* Fix

* MixHash & types & remove mod

* fxi
* Update CryptoRandom.cs

* Create CryptoRandomTests.cs

* Update src/Nethermind/Nethermind.Crypto/CryptoRandom.cs

Co-authored-by: Lukasz Rozmej <[email protected]>

* Apply suggestion from @LukaszRozmej

---------

Co-authored-by: Lukasz Rozmej <[email protected]>
* Preparation for log-index

* PR cleanup

* Move Merge to separate interface

* PR feedback

# Conflicts:
#	src/Nethermind/Nethermind.Db/LogIndex/LogIndexStorage.cs

* Receipts events renaming

# Conflicts:
#	src/Nethermind/Nethermind.Facade/Find/LogIndexBuilder.cs

* PR feedback

* Formatting

* Code cleanup

* Code cleanup

* Fix DB config validation

* Use sorted view instead of iterator

# Conflicts:
#	src/Nethermind/Nethermind.Db/LogIndex/LogIndexStorage.cs

* Do not publicly expose iterator

* Code cleanup

* Revert changes to DB config reading

* PR feedback

* PR feedback

* PR feedback

# Conflicts:
#	src/Nethermind/Nethermind.Db.Rocks/Config/DbConfig.cs
#	src/Nethermind/Nethermind.Db.Rocks/Config/IDbConfig.cs

* PR feedback
…n issues (#9536)

* Initial plan

* Add state persistence after genesis loading

- Call CommitTree(0) after successful genesis processing to force persist state to disk
- Add comprehensive tests for GenesisLoader state persistence behavior
- Ensures genesis state is available on restart after unclean shutdown

Co-authored-by: asdacap <[email protected]>

* Fix code formatting for GenesisLoaderTests

Co-authored-by: asdacap <[email protected]>

* Use IWorldStateManager.FlushCache() for genesis state persistence

- Changed GenesisLoader constructor to take IWorldStateManager instead of IWorldState
- Call FlushCache(CancellationToken.None) after successful genesis processing
- Removed test file as requested
- This uses the proper abstraction for cache flushing as suggested by reviewer

Co-authored-by: asdacap <[email protected]>

* Inject worldstate and flush after scope exit

* Add comprehensive unit tests for GenesisLoader

- Test successful genesis loading triggers FlushCache
- Test timeout scenario does not trigger FlushCache
- Test invalid block scenario does not trigger FlushCache
- Test FlushCache is called after scope exit
- All 4 new tests pass, total 24 tests in Consensus.Test

Co-authored-by: asdacap <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: asdacap <[email protected]>
Co-authored-by: Amirul Ashraf <[email protected]>
* fix leading zero issue

* add new test

* use Hash256 instead of ValueHash256
…9388)

* Add support for block producer based on global world state instance.

* Register ProducedBlockSuggester

* Add config. Suggest produced block and update main chain.

* Added test

* Small refactor
Co-authored-by: Ruben Buniatyan <[email protected]>
* PoC of delayed sending if requested

* Add retry cache

* Fix logs and multiple requests expiration

* Add tests

* Rename

* Add more tests

* Improve

* Simplify dependencies

* Improve

* Rename

* no requestoor draft

* Use messages

* Remove the requestoor

* Fix tests

* Fix tests

* More fixes

* Substitute

* Disconnect peers with invalid txs

* Update src/Nethermind/Nethermind.Network.Contract/Messages/IResourceRequestMessage.cs

Co-authored-by: Lukasz Rozmej <[email protected]>

* Compress code

* Try pooled set

* Handle as eth66

* Fix review

* Fix tests

* No need in syncing handling

* Remove redundant dispose

* Review

---------

Co-authored-by: Lukasz Rozmej <[email protected]>
Co-authored-by: Ben {chmark} Adams <[email protected]>
rubo and others added 24 commits October 23, 2025 10:48
* implement XdcBlockStore

* Add XdcBlockStore and XdcHeaderStore

* ws fix

* Apply suggested changes

* primary constructor

---------

Co-authored-by: ak88 <[email protected]>
proper fix for key property in storage proof. revert change to ValueHash256Converter.cs to always return leading zeros.
* implement pool for timeouts and votes

* implement timeout handler

* use XdcPool for collecting timeouts

* implement checks before timeout handling and refactors

* update tc manager in tests

* expose OnReceiveTimeout method in interface for tc manager

* bit of optimization

* format

---------

Co-authored-by: ak88 <[email protected]>
* implement pool for timeouts and votes

* remove unnecessary array allocation

* merged

---------

Co-authored-by: ak88 <[email protected]>
Co-authored-by: ak88 <[email protected]>
* initial draft implementation of EpochSwitchInfoManager

* refactor and fix build issues

* added some tests

* refactor to use IXdcReleaseSpec

* fix build issue

* refactors and tests and fixes

* refactors and fixes and more tests

* fixes, add missing field, refactor tests

* refactor tests to be more predictable and consistent

* ws fixes

* fix issues

* refactors and applying suggeted changes

* fix test

* apply Math.Max suggestion

* refactors and suggetions

* remove redundent method

* fix failing tests

* refactor Spec moq-ing

* cleanup and ws fixes

* cleanup

* cleanup

* modify calls to epochSwitch mgr methods

---------

Co-authored-by: ak88 <[email protected]>
Co-authored-by: Carmen Irene Cabrera Rodríguez <[email protected]>
Co-authored-by: cicr99 <[email protected]>
* Update CODEOWNERS with project owners

* Update .github/CODEOWNERS

* Update .github/CODEOWNERS

* Update .github/CODEOWNERS

* Update CODEOWNERS

* Update .github/CODEOWNERS

* Update .github/CODEOWNERS

* Update .github/CODEOWNERS

---------

Co-authored-by: Alexey Osipov <[email protected]>
Co-authored-by: Ahmad Bitar <[email protected]>
bump: nethermind version on props
* test changes for mainnet

* fixing comments

* remove unused method

* rollback PersistentStorageProvider.cs - changes not needed

* remove logs

* remove unnecessary changes

* remove unnecessary changes

* virtual isGenesis on BlockHeader.cs

* empty line

* more places with hardcoded 0 for block or header number

* small change

* commit PR suggestion
* block producer

* format

* test

* block production test

* format

* use the constant

* use timestamp from attributes

* default for timestamp

* name

* merged

* merge fix
* PoC of delayed sending if requested

* Add retry cache

* Fix logs and multiple requests expiration

* Add tests

* Rename

* Add more tests

* Improve

* Simplify dependencies

* Improve

* Rename

* no requestoor draft

* Use messages

* Remove the requestoor

* Fix tests

* Fix tests

* More fixes

* Substitute

* Disconnect peers with invalid txs

* Update src/Nethermind/Nethermind.Network.Contract/Messages/IResourceRequestMessage.cs

Co-authored-by: Lukasz Rozmej <[email protected]>

* Compress code

* Try pooled set

* Handle as eth66

* Fix review

* Fix tests

* No need in syncing handling

* Validate sizes and types

* Add a test

* Fix test

* Add tests

* Fix test

* Code style

* Rollback

* Fix tests

* Move to proper class

* Rollback that rollback

* Mark not invalid txs as received

* Move

* Fix dispose

* Fix

* Moar

* Clean up cache

* Using

---------

Co-authored-by: Lukasz Rozmej <[email protected]>
* push draft implementation  of QC manager and other related components

* intial draft implementation of Votes manager

* arg null exception

* fixes

* refactor and fixes

* refactor

* refactor

* Change signatures

* bit of refactor

* cleanup

* merged master

* Test

* format

* fixes

* format

* format

* persist when committing QC

* merge conflicts

* merge fixes

* votepool type

* concurrent vote pool

* added log

* isigner

* comment

* comments

* implement initial vote filtering

* refactor vote manager

* implement XdcPool for votes and timeouts

* ensure valid votes before processing qc

* format

* implement pool for timeouts and votes

* add tests for vote handling

* fix errors after merge

* format

* fix for QC manager

* format

* refactors and add tests

---------

Co-authored-by: ak88 <[email protected]>
Co-authored-by: cicr99 <[email protected]>
Co-authored-by: Carmen Irene Cabrera Rodríguez <[email protected]>
* test

* Error codes

* Adjust errors

* More error codes

* Fix build

* Fix tests

* known failing tests

* Move simulate error codes
@kamilchodola kamilchodola marked this pull request as ready for review October 27, 2025 09:45
@kamilchodola kamilchodola merged commit 2120f63 into kch/autotrace-with-blockhash Oct 27, 2025
221 of 223 checks passed
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.