Skip to content

Conversation

@LukaszRozmej
Copy link
Member

Based on and replaces #9439

Fix: Blocktest validation bypass and exception handling logic

Description

This PR fixes two critical bugs in blockchain test validation that allowed invalid blocks to pass tests and caused incorrect test failure detection.

Problems

1. Validation Bypass Vulnerability

The bug in BlockchainTestBase.cs line 190 had this logic:

if (!test.SealEngineUsed || blockValidator.ValidateSuggestedBlock(...))

When SealEngineUsed was false (NoProof seal engine), all validation was completely bypassed, allowing blocks with invalid consensus parameters (baseFee, gasLimit, etc.) to be accepted. This violates Ethereum consensus rules because:

  • NoProof should only skip seal/PoW validation
  • Consensus rules like baseFee, gas limits, and other header validations MUST still be enforced
  • The seal validator framework already handles conditional seal validation internally

2. Inverted Exception Handling Logic

The exception handling logic had inverted null checks on ExpectedException:

Validation failure path (line 205):

if (correctRlp[i].ExpectedException is not null)  // WRONG: inverted logic
{
    Assert.Fail($"Unexpected invalid block {correctRlp[i].Block.Hash}");
}

This caused tests to fail when blocks were expected to be invalid but correctly failed validation.

Exception handler path (line 213):

if (correctRlp[i].ExpectedException is not null)  // WRONG: inverted logic
{
    Assert.Fail($"Unexpected invalid block {correctRlp[i].Block.Hash}: {e}");
}

This caused tests to fail when blocks were expected to throw exceptions.

Missing validation pass check:
There was no check to detect when a block unexpectedly passes validation when it should have failed.

Solution

1. Removed Validation Bypass

// Before (vulnerable):
if (!test.SealEngineUsed || blockValidator.ValidateSuggestedBlock(...))

// After (secure):
if (blockValidator.ValidateSuggestedBlock(correctRlp[i].Block, parentHeader, out var _error))

Now all blocks undergo proper consensus rule validation regardless of seal engine type. The seal validation itself remains conditional within the validator framework.

2. Fixed Exception Handling Logic

Added validation pass check:

if (blockValidator.ValidateSuggestedBlock(...))
{
    // Validation PASSED
    if (correctRlp[i].ExpectedException is not null)
    {
        Assert.Fail($"Expected block to fail with '{ExpectedException}', but it passed");
    }
    blockTree.SuggestBlock(correctRlp[i].Block);
}

Fixed validation failure check:

else
{
    // Validation FAILED
    if (correctRlp[i].ExpectedException is null)  // FIXED: now correct
    {
        Assert.Fail($"Unexpected invalid block: {_error}");
    }
    // else: Expected to fail and did fail → correct behavior
}

Fixed exception handler check:

catch (InvalidBlockException e)
{
    // Exception thrown during block processing
    if (correctRlp[i].ExpectedException is null)  // FIXED: now correct
    {
        Assert.Fail($"Unexpected invalid block: {e}");
    }
    // else: Expected to fail and did fail via exception → correct behavior
}

3. Enhanced Error Reporting

  • Validation errors now include actual error details from the validator
  • Clear comments document expected behavior in each code path
  • Better diagnostic messages for debugging test failures

4. Parse sealEngine Field Correctly

JsonToEthereumTest.cs now properly parses the sealEngine field from test JSON to set the SealEngineUsed flag.

5. Added Comprehensive Regression Tests

HeaderValidatorTests.cs includes tests that verify:

  • Invalid baseFee is rejected even with NoProof seal engine
  • Valid blocks still pass with NoProof seal engine
  • Expected test failures are handled correctly

Type of change

  • Bug fix (non-breaking change which fixes critical security and correctness issues)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Impact

Before This Fix:

❌ Blocks with invalid consensus parameters were accepted when using NoProof seal engine
❌ Tests incorrectly failed when blocks were expected to be invalid
❌ No detection of blocks that unexpectedly pass validation
❌ Poor error messages without validation details

After This Fix:

✅ All blocks properly validate consensus rules regardless of seal engine
✅ Tests correctly handle expected failures via validation and exceptions
✅ Tests fail when blocks unexpectedly pass or fail validation
✅ Detailed error messages aid in debugging
✅ Better alignment with Ethereum consensus requirements
✅ Improved test reliability and correctness

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Testing

Unit Tests Added

  • BaseFee_validation_must_not_be_bypassed_for_NoProof_seal_engine - Verifies invalid baseFee is rejected even with NoProof
  • Valid_baseFee_with_NoProof_seal_engine_should_pass - Verifies valid blocks still pass with NoProof

Manual Testing

  • Ran Ethereum Foundation blockchain tests with NoProof seal engine
  • Verified tests with expected failures now correctly pass
  • Verified invalid blocks are correctly rejected
  • Confirmed no regressions in existing test suites

Impact on Test Results

  • Previously passing invalid tests will now correctly fail (security improvement)
  • Previously incorrectly failing tests will now correctly pass (correctness improvement)
  • Better alignment with reference implementations (Geth, Besu, etc.)

Files Changed

  • src/Nethermind/Ethereum.Test.Base/BlockchainTestBase.cs - Fix validation bypass and exception handling logic (+19 lines, -4 lines)
  • src/Nethermind/Ethereum.Test.Base/JsonToEthereumTest.cs - Parse sealEngine field (+9 lines)
  • src/Nethermind/Nethermind.Blockchain.Test/Validators/HeaderValidatorTests.cs - Add comprehensive regression tests (+116 lines)

Total Changes: 3 files changed, 140 insertions(+), 4 deletions(-)

Security Considerations

This PR addresses a critical security vulnerability where consensus rules could be bypassed. The validation bypass allowed:

  • Invalid baseFee values to be accepted
  • Invalid gas limits to be accepted
  • Other consensus rule violations to go undetected

This fix ensures all consensus rules are properly enforced during blockchain testing, improving the reliability of Nethermind's validation logic.

Related Issues

Fixes validation bypass bug and exception handling logic errors discovered during fuzzing where:

  1. Blocks with invalid baseFee were incorrectly accepted when sealEngine was set to "NoProof"
  2. Tests with expected failures were incorrectly reporting failures
  3. Blocks that unexpectedly passed validation were not being caught

Additional Notes

The seal validation framework already has internal logic to conditionally validate seals based on the seal engine type. The outer bypass condition was redundant and created a security hole. This fix removes that bypass while maintaining the correct seal validation behavior through the validator framework's internal logic.

bshastry and others added 8 commits October 15, 2025 11:03
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]>
@LukaszRozmej LukaszRozmej marked this pull request as ready for review October 17, 2025 17:55
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes critical bugs in blockchain test validation that allowed invalid blocks to bypass consensus rule validation and caused incorrect test failure detection. The fix addresses security vulnerabilities where blocks with invalid baseFee, gasLimit, and other consensus parameters were being accepted when using NoProof seal engines.

Key changes:

  • Removed validation bypass logic that completely skipped consensus rule validation for NoProof seal engines
  • Fixed inverted exception handling logic that caused tests to fail when blocks were expected to be invalid
  • Enhanced error reporting with detailed validation messages and comprehensive test coverage

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
src/Nethermind/Nethermind.Core/BlockHeader.cs Removed unused SealEngineType property from BlockHeader class
src/Nethermind/Nethermind.Blockchain.Test/Validators/HeaderValidatorTests.cs Removed SealEngineType assignments from existing tests and added comprehensive regression tests for baseFee validation with NoProof seal engines
src/Nethermind/Ethereum.Test.Base/BlockchainTestBase.cs Fixed critical validation bypass bug and corrected inverted exception handling logic with improved error reporting
src/Nethermind/Ethereum.Test.Base/BlockchainTest.cs Removed unused SealEngineUsed property from BlockchainTest class

@LukaszRozmej LukaszRozmej merged commit 654ff91 into master Oct 18, 2025
80 checks passed
@LukaszRozmej LukaszRozmej deleted the bshastry/fix/blocktest-validation-bypass branch October 18, 2025 18:40
kamilchodola added a commit that referenced this pull request Oct 27, 2025
* Fix delegation in eth_simulate (#9490)

* Test

* Test

* Try fix

* Delegation in GetCachedCodeInfo

* Do not trace delegate call

* Fix known-failing-tests.txt

* Fix suggestions

* Remove passing eth_getBlockByNumber hive tests (#9462)

Removed known failing tests related to eth_getBlockByNumber.

* fix: Use correct Docker Hub secrets across workflows (#9495)

* fix: Use correct Docker Hub secrets across workflows

* Update release workflow

---------

Co-authored-by: Ruben Buniatyan <[email protected]>

* Fix batched trie visitor missed storage (#9496)

* Move static/trusted nodes file to the data dir (#9477)

* Update Dockerfiles (#9497)

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

* Fix: Blocktest exception handling logic  (#9491)

* 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]>

* Update OP Superchain chains (#9500)

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

* Improve Hive RPC compat. (#9489)

* 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 tool (#9472)

* Update send blobs docs and fix an option

* Fix dockerfile

* Make AuthorizationListForRpc.JsonConverter public for attribute-based activation (#9506)

* Add CancelAfter to Maintain_correct_pointers_for_beacon_sync_in_archi… (#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 (#9486)

disable osaka chiado hardfork

Co-authored-by: Marc Harvey-Hill <[email protected]>

* Feature/xdc block sealer (#9505)

* xdc block sealer

* Test

* Format

* Use correct Bmi2 intrinsic support check (#9510)

* Fix nonce handling in eth_simulate (#9499)

* 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

* Replace GitHub token (#9515)

* Fix fast sync settings workflow (#9519)

* Auto-update fast sync settings (#9522)

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

* fix/crypto-random-secure-rng (#9513)

* 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]>

* Slight logging change (#9520)

* Remove overseer tests (#9527)

* fix: CompositeTxTracer aggregates IsTracingLogs and gates ReportLog correctly (#9511)

* Log index (preparation) (#9481)

* 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

* Persist genesis state after genesis loader to prevent unclean shutdown 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 for taiko (#9538)

* fix leading zero issue

* add new test

* use Hash256 instead of ValueHash256

* Fix incorrect BlockRangeUpdateMessage.EarliestBlock in some edge cases (#9542)

* Add support for block producer based on global world state instance. (#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

* Remove Holesky (#9525)

Co-authored-by: Ruben Buniatyan <[email protected]>

* Retry requesting pooled transactions (#9128)

* 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]>

* fix culture-dependent metric name generation (#9543)

Update PrometheusPushGatewayMetricsReporter.cs

* Fix: Include exception details in SimpleConsoleLogger.Error() (#9544)

* Update SimpleConsoleLogger.cs

* Update src/Nethermind/Nethermind.Logging/SimpleConsoleLogger.cs

---------

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

* Perf/Add ArrayPoolListRef to avoid some allocations (#9537)

* Add ArrayPoolListRef

* Apply usages ArrayPoolListRef when possible (no need for it to go on heap)

* Pass ArrayPoolListRef via in

* fix

* fixes

* small improvements

* small fix in test

* fix

* fix

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Update src/Nethermind/Nethermind.Core/Collections/ArrayPoolListRef.cs

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Remove unused custom array pool

* fix build

* AddMarkUnknownHashes to ArrayPoolListRef

---------

Co-authored-by: Ben {chmark} Adams <[email protected]>

* Fix merge gone wrong in #9537

* [WIP] Automatically lower max open file limit to prevent crashes (#9504)

* Initial plan

* Add automatic MaxOpenFiles detection and adjustment

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

* Simplify MaxOpenFiles adjustment by mutating DbConfig directly

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

* Ensure MaxOpenFiles mutation happens only once with initialization flag

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

* Fix whitespace formatting

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

* Change MaxOpenFiles calculation to use 80% of system limit

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

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: asdacap <[email protected]>

* Fix IndexOutOfRangeException on missing or mismatched receipts in BlockValidator (#9534)

* Initial plan

* Fix index out of range exception on missing/mismatched receipts

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

* Address PR feedback: move receipt count check and fix tests

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

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: asdacap <[email protected]>

* Handle static/trusted nodes old location (#9545)

* Improve build version handling (#9547)

* XDC  :  Add Header and Block Stores  (#9528)

* 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 for rpc-compat (#9551)

proper fix for key property in storage proof. revert change to ValueHash256Converter.cs to always return leading zeros.

* Xdc timeout handler (#9475)

* 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]>

* Xdc Pool for timeouts and votes (#9521)

* implement pool for timeouts and votes

* remove unnecessary array allocation

* merged

---------

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

* XDC : EpochSwitchInfo Manager (#9299)

* 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 (#9552)

* 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 to 1.36.0 (#9556)

bump: nethermind version on props

* Changes for Arbitrum mainnet (#9473)

* 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

* XDC block producer (#9512)

* block producer

* format

* test

* block production test

* format

* use the constant

* use timestamp from attributes

* default for timestamp

* name

* merged

* merge fix

* Validate sizes and types (#9546)

* 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]>

* Use trace instead of warn (#9563)

* use trace

* if

* Validate sizes and types (#9564)

Fix logs

* XDC : Votes Manager  (#9296)

* 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]>

* Update OP Superchain chains (#9568)

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

* Auto-update fast sync settings (#9567)

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

* Fix simulate errors (#9565)

* test

* Error codes

* Adjust errors

* More error codes

* Fix build

* Fix tests

* known failing tests

* Move simulate error codes

* Don't recache if from cache

* Improve ClockCache fast path

* Use smaller keys for Block and Header caches

* Pass via in

* Add number cache

* formatting

* sp

---------

Co-authored-by: Nikita Mescheryakov <[email protected]>
Co-authored-by: Marek Moraczyński <[email protected]>
Co-authored-by: Mario Apra <[email protected]>
Co-authored-by: Ruben Buniatyan <[email protected]>
Co-authored-by: Amirul Ashraf <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Lukasz Rozmej <[email protected]>
Co-authored-by: Bhargava Shastry <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Alexey Osipov <[email protected]>
Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com>
Co-authored-by: emlautarom1 <[email protected]>
Co-authored-by: Ahmad Bitar <[email protected]>
Co-authored-by: Galoretka <[email protected]>
Co-authored-by: Marc <[email protected]>
Co-authored-by: Marc Harvey-Hill <[email protected]>
Co-authored-by: ak88 <[email protected]>
Co-authored-by: Ben {chmark} Adams <[email protected]>
Co-authored-by: sashaodessa <[email protected]>
Co-authored-by: Forostovec <[email protected]>
Co-authored-by: Alex <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: asdacap <[email protected]>
Co-authored-by: Diptanshu Kakwani <[email protected]>
Co-authored-by: Damian Orzechowski <[email protected]>
Co-authored-by: Marcos Antonio Maceo <[email protected]>
Co-authored-by: viktorking7 <[email protected]>
Co-authored-by: Alvarez <[email protected]>
Co-authored-by: Ayman Bouchareb <[email protected]>
Co-authored-by: ak88 <[email protected]>
Co-authored-by: Carmen Irene Cabrera Rodríguez <[email protected]>
Co-authored-by: cicr99 <[email protected]>
Co-authored-by: Stavros Vlachakis <[email protected]>
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.

4 participants