Skip to content
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

ForkId calculation polish #5068

Conversation

LukaszRozmej
Copy link
Member

Changes

  • Refactor & Optimize- mainly ChainSpecBasedSpecProvider

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 fix or a feature that would cause existing functionality not to work as expected)
  • Documentation update
  • Code style update (formatting, renaming)
  • Refactoring (no functional or API changes)
  • Build-related changes
  • Other: description

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes
  • No

Comment on lines 255 to 266
// TODO: Is this actually needed? Can this be tricked with invalid activation check if someone would fake timestamp from the future?
if (activation.Timestamp is not null)
{
for (int i = 0; i < _transitions.Length; i++)
if (_timestampOnlyTransitions.TryGetSearchedItem(activation, CompareTransitionOnTimestamp, out (ForkActivation Activation, ReleaseSpec Spec) timestampTransition))
{
if (_transitions[i].Activation.Timestamp is null)
continue;
ulong transitionTimestamp = _transitions[i].Activation.Timestamp.Value;
if (transitionTimestamp < activation.Timestamp)
if (timestampTransition.Activation.Timestamp < activation.Timestamp
&& timestampTransition.Activation.BlockNumber > activation.BlockNumber)
{
if (_transitions[i].Activation.BlockNumber > activation.BlockNumber)
{
if (_logger.IsWarn) _logger.Warn("Chainspec file is misconfigured! Timestamp transition is configured to happen before the last block transition.");
}
if (_logger.IsWarn) _logger.Warn("Chainspec file is misconfigured! Timestamp transition is configured to happen before the last block transition.");
}
}
}
Copy link
Member Author

Choose a reason for hiding this comment

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

I would delete this code. This could trigger also when someone else's Chainspec is misconfigured.

Copy link
Member Author

Choose a reason for hiding this comment

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

I get it debugging advantages. But we could hide it under #IF DEBUG or some flag.

Copy link
Member Author

Choose a reason for hiding this comment

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

Managed to simplify it

@LukaszRozmej LukaszRozmej merged commit 25f696a into fix/forkId_calculation_is_wrong_after_timestamp_activation_fix Dec 30, 2022
@LukaszRozmej LukaszRozmej deleted the fix/forkId_calculation_is_wrong_after_timestamp_activation_fix_refactor branch December 30, 2022 16:18
MarekM25 added a commit that referenced this pull request Jan 11, 2023
* More test fixes

* Fix for init and meter

* Make withdrawals decoding optional

* include 4895 in chainspecParameters

* introduce WithdrawalTimestamp

* Fix `PayloadAttributes` handling when null

* Fix withdrawals length calculation

* Refactor and add checks for withdrawals for RPC methods of v1

* Add engine_getPayloadV2

* Format whitespaces

* Refactor and remove redundant "V1"

* started adding Enginge V2 tests - V2_processing_block_should_serialize_valid_responses

* formatting

* formatting

* Implement withdrawal root validation

* working on tests and fixes

* fix block for processing

* BlockValidator WithdrawalRoot

* Fix withdrawal trie proof validation

* add WithdrawalApplier

* Remove redundant withdrawals hash check

* Remove withdrawal check for null

* Add withdrawals test chain spec

* Reformat whitespaces

* add withdrawalApplier to blockchainProcessor

* add withdrawals to ExecutionPayload

* test fixes

* fix EVM.test

* fix EthereumTests

* fix Benchmarks.sln

* Revise withdrawals representation according to the spec and refactor

* Rename `IWithdrawalApplier` to `IWithdrawalProcessor`

* Add tests for withdrawal encoding/decoding

* Rename `Recipient` to `Address`

* Reformat whitespaces

* Revise withdrawals length calculation in block encoding

* HasBody?

* Remove redundant withdrawals hash check

* fix withdrawals_test chainspec && added IReleaseSpec.WithdrawalsEnabled

* Fixes

* fix GenesisLoader

* fix extra-data

* Refactor withdrawal validation by implementing `IWithdrawalValidator`

* Fix failing tests

* Reformat whitespaces

* fix withdrawalsTimestamp

* temporary change validation

* null handling?

* Applying Marek's suggestion. Not sure about this one

* Fix Ethereum tests

* Fix test cases

* Fix benchmark build

* Fix payload attributes validation

* Remove "V1" from `IForkchoiceUpdatedHandler` name

* Update tests

* hack AuRa tests for now

* fix more tests

* fix more tests

* fix build

* + fix one more tests

* fix Synchronization tests

* Update tests to 0aa59689101f64cab8fa1526d9cf6e647ddba946

* fixed withdrawal chainspec

* withdrawals block validator tests

* Implement Engine API tests

* Reformat code

* fix chainspec?

* Fix withdrawals decoding

* fix chainspec timestamp

* Add and fix Engine API tests

* Revise block decoder tests

* Revise file headers

* Revise file headers

* Add missing file headers

* fix AuRa test

* adjusting comments

* load genesis tests

* Lukasz suggestions

* formating

* Fix build

* withdrawals_hivetests.json + cosmetic

* Add more unit tests

* spacing

* Try on fixing timestamp activation with same value as genesis timestamp

* Fix gnosis and chiado ForkId Calculations

* fix tests

* Cleanup and more tests

* Janky but working solution to very rare edge case?

* Fix flakiness of caused by Parallelizable

* adding engine tests

* working on more tests

* add loop in test

* Can_apply_withdrawals_correctly test

* more test cases

* Update withdrawals hive tests configuration

* Refactor and fix some null reference warnings

* Expose withdrawals to JSON-RPC modules

* Fix broken tests

* Revise `ForkchoiceUpdatedHandler` string output

* fix Can_apply_withdrawals_correctly

* fix whitespaces

* fix whitespaces

* more whitespaces fixes

* work on Withdrawals_transition test cases

* adjust CustomSpecProvider

* Introduce IEip1995Spec

* small changes in tests

* Fix license

* add comments

* Apply Marek Suggestion

* Adjust Lic to Rubo

* Marek Suggestions

* Fix

* fix withdrawals in ChainLevelHelper

* fix hive sync tests

* fix?

* Revise withdrawals root hash encoding/decoding and its tests

* fix PayloadAttributes ToString

* add more temp logs to investigate hive tests

* more logs

* revert not needed logs

* fix test

* ignore incorrect tests

* Fix tests broken by withdrawals decoding revision

* Revise file headers

* Final appraoch, removed GetSpec complexity

* Forgotten changes

* SecondsPerSlot to BlocksConfig

* Minor + config changes

* Typo fix

* remove empty line

* Move BlocksConfig to Nethermind.Config project

* Benchmark build fix

* Rename `ExecutionPayloadV1` to `ExecutionPayloadV2`

* Revise withdrawals check

* Refactor tests

* Optimize withdrawals root hash decoding in block header

* Implements ForkId tests that are ub EIP-6122

* Spacing

* Fix build

* Fix ForkId Test case

* Removing 3675 and using MergeForkId Transition

* Final test fix

* Fix tests

* Rename `ExecutionPayloadV2` to `ExecutionPayload`

* add one more line in Nlog (temp)

* Revert NLog for jsonRpc

* fix missing body?

* adjust TxPool logs

* Add more test cases for `BlockBodiesMessageSerializer`

* Add tests for `BlockHeader.HasBody`

* Revise `null` handling for `BlockHeader.HasBody`

* fix BlockBody empty

* cosmetic

* fix CI

* Revise tests

* Update null checks with pattern matching

* Refactor block body initialization and add tests

* Revise whitespaces

* cosmetic

* ForkId calculation polish (#5068)

* Refactor - mainly ChainSpecBasedSpecProvider

* fixes

* Better warning message

* Simplify sanity check

* one more simplification

* Revise Clique block production according to withdrawals rules

* Add withdrawals to `eth_getBlockByNumber` tests

* SecondsPerSlot move to BlocksConfig (#4944)

Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
Resolves #4871

* fix build

* removed duplicated NSubstitute

* Add missing file headers

* resolved some review comments

* more review comments

* more review related changes

* fix Benchmarks build

* Refactor tests

* refactor tests - review comment

* cosmetic

* Revise suggested block validation messages

* Refactor patricia tries

* fix InvalidBlockInterceptor for Withdrawals

* fix whitespaces

* fix tests

Co-authored-by: smartprogrammer <smartprogrammer@windowslive.com>
Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com>
LukaszRozmej added a commit that referenced this pull request Jan 20, 2023
* Add engine_getPayloadV2

* Format whitespaces

* Refactor and remove redundant "V1"

* started adding Enginge V2 tests - V2_processing_block_should_serialize_valid_responses

* formatting

* formatting

* Implement withdrawal root validation

* working on tests and fixes

* fix block for processing

* BlockValidator WithdrawalRoot

* Fix withdrawal trie proof validation

* add WithdrawalApplier

* Remove redundant withdrawals hash check

* Remove withdrawal check for null

* Add withdrawals test chain spec

* Reformat whitespaces

* add withdrawalApplier to blockchainProcessor

* add withdrawals to ExecutionPayload

* test fixes

* fix EVM.test

* fix EthereumTests

* fix Benchmarks.sln

* Revise withdrawals representation according to the spec and refactor

* Rename `IWithdrawalApplier` to `IWithdrawalProcessor`

* Add tests for withdrawal encoding/decoding

* Rename `Recipient` to `Address`

* Reformat whitespaces

* Revise withdrawals length calculation in block encoding

* HasBody?

* Remove redundant withdrawals hash check

* fix withdrawals_test chainspec && added IReleaseSpec.WithdrawalsEnabled

* Fixes

* fix GenesisLoader

* fix extra-data

* Refactor withdrawal validation by implementing `IWithdrawalValidator`

* Fix failing tests

* Reformat whitespaces

* fix withdrawalsTimestamp

* temporary change validation

* null handling?

* Applying Marek's suggestion. Not sure about this one

* Fix Ethereum tests

* Fix test cases

* Fix benchmark build

* Fix payload attributes validation

* Remove "V1" from `IForkchoiceUpdatedHandler` name

* Update tests

* hack AuRa tests for now

* fix more tests

* fix more tests

* fix build

* + fix one more tests

* fix Synchronization tests

* Update tests to 0aa59689101f64cab8fa1526d9cf6e647ddba946

* fixed withdrawal chainspec

* withdrawals block validator tests

* Implement Engine API tests

* Reformat code

* fix chainspec?

* Fix withdrawals decoding

* fix chainspec timestamp

* Add and fix Engine API tests

* Revise block decoder tests

* Revise file headers

* Revise file headers

* Add missing file headers

* fix AuRa test

* adjusting comments

* load genesis tests

* Lukasz suggestions

* formating

* Fix build

* withdrawals_hivetests.json + cosmetic

* Add more unit tests

* spacing

* Try on fixing timestamp activation with same value as genesis timestamp

* Fix gnosis and chiado ForkId Calculations

* fix tests

* Cleanup and more tests

* Janky but working solution to very rare edge case?

* Fix flakiness of caused by Parallelizable

* Correct usage of chain ID and network ID

* adding engine tests

* working on more tests

* add loop in test

* Can_apply_withdrawals_correctly test

* more test cases

* Update withdrawals hive tests configuration

* Refactor and fix some null reference warnings

* Expose withdrawals to JSON-RPC modules

* Fix broken tests

* Revise `ForkchoiceUpdatedHandler` string output

* fix Can_apply_withdrawals_correctly

* fix whitespaces

* fix whitespaces

* more whitespaces fixes

* add more tests

* Fix chainId loading from spec

* Rename for clarity

* work on Withdrawals_transition test cases

* adjust CustomSpecProvider

* Introduce IEip1995Spec

* Make test NetworkId vs ChainId different

Changing ChainId to another number breaks a lot of test, that are based to hashes and RLP. Let at least test if the values differ

* small changes in tests

* Fix license

* add comments

* Apply Marek Suggestion

* Adjust Lic to Rubo

* Marek Suggestions

* Fix

* fix withdrawals in ChainLevelHelper

* Fix chainid for account abstraction; add and improve tests; fix a tutorial link

* Fix naming in other projects, whitespaces

* Fix more renaming

* fix hive sync tests

* fix?

* Revise withdrawals root hash encoding/decoding and its tests

* fix PayloadAttributes ToString

* add more temp logs to investigate hive tests

* more logs

* revert not needed logs

* fix test

* ignore incorrect tests

* Fix tests broken by withdrawals decoding revision

* Revise file headers

* Final appraoch, removed GetSpec complexity

* Forgotten changes

* SecondsPerSlot to BlocksConfig

* Minor + config changes

* Typo fix

* remove empty line

* Move BlocksConfig to Nethermind.Config project

* Benchmark build fix

* Rename `ExecutionPayloadV1` to `ExecutionPayloadV2`

* Revise withdrawals check

* Refactor tests

* Optimize withdrawals root hash decoding in block header

* Implements ForkId tests that are ub EIP-6122

* Spacing

* Fix build

* Fix ForkId Test case

* Removing 3675 and using MergeForkId Transition

* Final test fix

* Fix tests

* Rename `ExecutionPayloadV2` to `ExecutionPayload`

* add one more line in Nlog (temp)

* Revert NLog for jsonRpc

* fix missing body?

* adjust TxPool logs

* Add more test cases for `BlockBodiesMessageSerializer`

* Add tests for `BlockHeader.HasBody`

* Revise `null` handling for `BlockHeader.HasBody`

* fix BlockBody empty

* cosmetic

* fix CI

* Revise tests

* Update null checks with pattern matching

* Refactor block body initialization and add tests

* Revise whitespaces

* cosmetic

* ForkId calculation polish (#5068)

* Refactor - mainly ChainSpecBasedSpecProvider

* fixes

* Better warning message

* Simplify sanity check

* one more simplification

* Revise Clique block production according to withdrawals rules

* Add withdrawals to `eth_getBlockByNumber` tests

* SecondsPerSlot move to BlocksConfig (#4944)

Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
Resolves #4871

* fix build

* removed duplicated NSubstitute

* Fix network id in node info

* Rollback spec change

* Rename NetworkId class to BlockchainIds; more renaming and usage of TestBlockChainIds

* Improve a test

* Fix chainid/networkid usage

* Refactors

* Improve CustomSpecProvider ctor

* Use test provider

* ethstats fix

* whitespace

* Fix

Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: smartprogrammer <smartprogrammer@windowslive.com>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com>
flcl42 added a commit that referenced this pull request Jan 21, 2023
…4867)

* add WithdrawalApplier

* Remove redundant withdrawals hash check

* Remove withdrawal check for null

* Add withdrawals test chain spec

* Reformat whitespaces

* add withdrawalApplier to blockchainProcessor

* add withdrawals to ExecutionPayload

* test fixes

* fix EVM.test

* fix EthereumTests

* fix Benchmarks.sln

* Revise withdrawals representation according to the spec and refactor

* Rename `IWithdrawalApplier` to `IWithdrawalProcessor`

* Add tests for withdrawal encoding/decoding

* Rename `Recipient` to `Address`

* Reformat whitespaces

* Revise withdrawals length calculation in block encoding

* HasBody?

* Remove redundant withdrawals hash check

* fix withdrawals_test chainspec && added IReleaseSpec.WithdrawalsEnabled

* Fixes

* fix GenesisLoader

* fix extra-data

* Refactor withdrawal validation by implementing `IWithdrawalValidator`

* Fix failing tests

* Reformat whitespaces

* fix withdrawalsTimestamp

* temporary change validation

* null handling?

* Applying Marek's suggestion. Not sure about this one

* Fix Ethereum tests

* Fix test cases

* Fix benchmark build

* Fix payload attributes validation

* Remove "V1" from `IForkchoiceUpdatedHandler` name

* Update tests

* hack AuRa tests for now

* fix more tests

* fix more tests

* fix build

* + fix one more tests

* fix Synchronization tests

* Update tests to 0aa59689101f64cab8fa1526d9cf6e647ddba946

* fixed withdrawal chainspec

* withdrawals block validator tests

* Implement Engine API tests

* Reformat code

* fix chainspec?

* Fix withdrawals decoding

* fix chainspec timestamp

* Add and fix Engine API tests

* Revise block decoder tests

* Revise file headers

* Revise file headers

* Add missing file headers

* fix AuRa test

* adjusting comments

* load genesis tests

* Lukasz suggestions

* formating

* Fix build

* withdrawals_hivetests.json + cosmetic

* Add more unit tests

* spacing

* Try on fixing timestamp activation with same value as genesis timestamp

* Fix gnosis and chiado ForkId Calculations

* fix tests

* Cleanup and more tests

* Janky but working solution to very rare edge case?

* Fix flakiness of caused by Parallelizable

* Correct usage of chain ID and network ID

* adding engine tests

* working on more tests

* add loop in test

* Can_apply_withdrawals_correctly test

* more test cases

* Update withdrawals hive tests configuration

* Refactor and fix some null reference warnings

* Expose withdrawals to JSON-RPC modules

* Fix broken tests

* Revise `ForkchoiceUpdatedHandler` string output

* fix Can_apply_withdrawals_correctly

* fix whitespaces

* fix whitespaces

* more whitespaces fixes

* add more tests

* Fix chainId loading from spec

* Rename for clarity

* work on Withdrawals_transition test cases

* adjust CustomSpecProvider

* Introduce IEip1995Spec

* Make test NetworkId vs ChainId different

Changing ChainId to another number breaks a lot of test, that are based to hashes and RLP. Let at least test if the values differ

* small changes in tests

* Fix license

* add comments

* Apply Marek Suggestion

* Adjust Lic to Rubo

* Marek Suggestions

* Fix

* fix withdrawals in ChainLevelHelper

* Fix chainid for account abstraction; add and improve tests; fix a tutorial link

* Fix naming in other projects, whitespaces

* Fix more renaming

* fix hive sync tests

* fix?

* Revise withdrawals root hash encoding/decoding and its tests

* fix PayloadAttributes ToString

* add more temp logs to investigate hive tests

* more logs

* revert not needed logs

* fix test

* ignore incorrect tests

* Fix tests broken by withdrawals decoding revision

* Revise file headers

* Final appraoch, removed GetSpec complexity

* Forgotten changes

* SecondsPerSlot to BlocksConfig

* Minor + config changes

* Typo fix

* remove empty line

* Move BlocksConfig to Nethermind.Config project

* Benchmark build fix

* Rename `ExecutionPayloadV1` to `ExecutionPayloadV2`

* Revise withdrawals check

* Refactor tests

* Optimize withdrawals root hash decoding in block header

* Add fields, spec, header encoding

* Implements ForkId tests that are ub EIP-6122

* Spacing

* Fix build

* Fix ForkId Test case

* Removing 3675 and using MergeForkId Transition

* Final test fix

* Fix tests

* Rename `ExecutionPayloadV2` to `ExecutionPayload`

* add one more line in Nlog (temp)

* Revert NLog for jsonRpc

* fix missing body?

* adjust TxPool logs

* Add more test cases for `BlockBodiesMessageSerializer`

* Add tests for `BlockHeader.HasBody`

* Revise `null` handling for `BlockHeader.HasBody`

* fix BlockBody empty

* cosmetic

* fix CI

* Revise tests

* Update null checks with pattern matching

* Refactor block body initialization and add tests

* Revise whitespaces

* cosmetic

* ForkId calculation polish (#5068)

* Refactor - mainly ChainSpecBasedSpecProvider

* fixes

* Better warning message

* Simplify sanity check

* one more simplification

* Revise Clique block production according to withdrawals rules

* Add withdrawals to `eth_getBlockByNumber` tests

* SecondsPerSlot move to BlocksConfig (#4944)

Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
Resolves #4871

* fix build

* removed duplicated NSubstitute

* Fix network id in node info

* Rollback spec change

* Rename NetworkId class to BlockchainIds; more renaming and usage of TestBlockChainIds

* Improve a test

* Fix chainid/networkid usage

* Refactors

* Improve CustomSpecProvider ctor

* Use test provider

* ethstats fix

* whitespace

* Fix

* Fix header encoding: loading from genesis

* Remove fork, simplify codfe, fix merge conflicts

* Improve tests, fix spaces

* Fix whitespaces

* Fix tests

* Fix space

* Fix Rlp for headers

Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
Co-authored-by: smartprogrammer <smartprogrammer@windowslive.com>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com>
flcl42 added a commit that referenced this pull request Jan 21, 2023
* Reformat whitespaces

* add withdrawalApplier to blockchainProcessor

* add withdrawals to ExecutionPayload

* test fixes

* fix EVM.test

* fix EthereumTests

* fix Benchmarks.sln

* Revise withdrawals representation according to the spec and refactor

* Rename `IWithdrawalApplier` to `IWithdrawalProcessor`

* Add tests for withdrawal encoding/decoding

* Rename `Recipient` to `Address`

* Reformat whitespaces

* Revise withdrawals length calculation in block encoding

* HasBody?

* Remove redundant withdrawals hash check

* fix withdrawals_test chainspec && added IReleaseSpec.WithdrawalsEnabled

* Fixes

* fix GenesisLoader

* fix extra-data

* Refactor withdrawal validation by implementing `IWithdrawalValidator`

* Fix failing tests

* Reformat whitespaces

* fix withdrawalsTimestamp

* temporary change validation

* null handling?

* Applying Marek's suggestion. Not sure about this one

* Fix Ethereum tests

* Fix test cases

* Fix benchmark build

* Fix payload attributes validation

* Remove "V1" from `IForkchoiceUpdatedHandler` name

* Update tests

* hack AuRa tests for now

* fix more tests

* fix more tests

* fix build

* + fix one more tests

* fix Synchronization tests

* Update tests to 0aa59689101f64cab8fa1526d9cf6e647ddba946

* fixed withdrawal chainspec

* withdrawals block validator tests

* Implement Engine API tests

* Reformat code

* fix chainspec?

* Fix withdrawals decoding

* fix chainspec timestamp

* Add and fix Engine API tests

* Revise block decoder tests

* Revise file headers

* Revise file headers

* Add missing file headers

* fix AuRa test

* adjusting comments

* load genesis tests

* Lukasz suggestions

* formating

* Fix build

* withdrawals_hivetests.json + cosmetic

* Add more unit tests

* spacing

* Try on fixing timestamp activation with same value as genesis timestamp

* Fix gnosis and chiado ForkId Calculations

* fix tests

* Cleanup and more tests

* Janky but working solution to very rare edge case?

* Fix flakiness of caused by Parallelizable

* Correct usage of chain ID and network ID

* adding engine tests

* working on more tests

* add loop in test

* Can_apply_withdrawals_correctly test

* more test cases

* Update withdrawals hive tests configuration

* Refactor and fix some null reference warnings

* Expose withdrawals to JSON-RPC modules

* Fix broken tests

* Revise `ForkchoiceUpdatedHandler` string output

* fix Can_apply_withdrawals_correctly

* fix whitespaces

* fix whitespaces

* more whitespaces fixes

* add more tests

* Fix chainId loading from spec

* Rename for clarity

* work on Withdrawals_transition test cases

* adjust CustomSpecProvider

* Introduce IEip1995Spec

* Make test NetworkId vs ChainId different

Changing ChainId to another number breaks a lot of test, that are based to hashes and RLP. Let at least test if the values differ

* small changes in tests

* Fix license

* add comments

* Apply Marek Suggestion

* Adjust Lic to Rubo

* Marek Suggestions

* Fix

* fix withdrawals in ChainLevelHelper

* Fix chainid for account abstraction; add and improve tests; fix a tutorial link

* Fix naming in other projects, whitespaces

* Fix more renaming

* fix hive sync tests

* fix?

* Revise withdrawals root hash encoding/decoding and its tests

* fix PayloadAttributes ToString

* add more temp logs to investigate hive tests

* more logs

* revert not needed logs

* fix test

* ignore incorrect tests

* Fix tests broken by withdrawals decoding revision

* Revise file headers

* Final appraoch, removed GetSpec complexity

* Forgotten changes

* SecondsPerSlot to BlocksConfig

* Minor + config changes

* Typo fix

* remove empty line

* Move BlocksConfig to Nethermind.Config project

* Benchmark build fix

* Rename `ExecutionPayloadV1` to `ExecutionPayloadV2`

* Revise withdrawals check

* Refactor tests

* Optimize withdrawals root hash decoding in block header

* Add fields, spec, header encoding

* Implements ForkId tests that are ub EIP-6122

* Spacing

* Fix build

* Fix ForkId Test case

* Removing 3675 and using MergeForkId Transition

* Final test fix

* Fix tests

* Rename `ExecutionPayloadV2` to `ExecutionPayload`

* add one more line in Nlog (temp)

* Revert NLog for jsonRpc

* fix missing body?

* adjust TxPool logs

* Add more test cases for `BlockBodiesMessageSerializer`

* Add tests for `BlockHeader.HasBody`

* Revise `null` handling for `BlockHeader.HasBody`

* fix BlockBody empty

* cosmetic

* fix CI

* Revise tests

* Update null checks with pattern matching

* Refactor block body initialization and add tests

* Revise whitespaces

* cosmetic

* ForkId calculation polish (#5068)

* Refactor - mainly ChainSpecBasedSpecProvider

* fixes

* Better warning message

* Simplify sanity check

* one more simplification

* Revise Clique block production according to withdrawals rules

* Add withdrawals to `eth_getBlockByNumber` tests

* SecondsPerSlot move to BlocksConfig (#4944)

Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
Resolves #4871

* fix build

* removed duplicated NSubstitute

* Fix network id in node info

* Rollback spec change

* Rename NetworkId class to BlockchainIds; more renaming and usage of TestBlockChainIds

* Improve a test

* Fix chainid/networkid usage

* Refactors

* Improve CustomSpecProvider ctor

* Use test provider

* ethstats fix

* whitespace

* Fix

* Fix header encoding: loading from genesis

* Remove fork, simplify codfe, fix merge conflicts

* Improve tests, fix spaces

* Fix whitespaces

* Fix tests

* Fix space

* Fix Rlp for headers

* Add DATAHASH opcode

* LogFinder should be initialized befre UserOperationPools

* Fix postmerge

* Add no blobs for benchmarks, let's add it with DATAHASH benchmarks

Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
Co-authored-by: MarekM25 <marekm2504@gmail.com>
Co-authored-by: smartprogrammer <smartprogrammer@windowslive.com>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com>
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.

None yet

2 participants