nimbus-eth2 icon indicating copy to clipboard operation
nimbus-eth2 copied to clipboard

Nimbus Hive Docker build failing due to use of SECONDS_PER_SLOT

Open marioevz opened this issue 2 years ago • 4 comments

Describe the bug Nimbus hive docker image (https://github.com/ethereum/hive/tree/master/clients/nimbus-bn) is consistently failing with the following exception:

stack trace: (most recent call last)
/nimbus-eth2/beacon_chain/networking/network_metadata.nim(227, 24)
/nimbus-eth2/beacon_chain/networking/network_metadata.nim(205, 18) loadCompileTimeNetworkMetadata
/nimbus-eth2/beacon_chain/networking/network_metadata.nim(205, 18) Error: Failed to load network metadata at '/nimbus-eth2/beacon_chain/networking/../../vendor/eth2-networks/shared/mainnet': Cannot override config (compiled: SECONDS_PER_SLOT=6 - config: SECONDS_PER_SLOT=12)
make: *** [Makefile:413: nimbus_beacon_node] Error 1

Nimbus needs to be compiled with SECONDS_PER_SLOT of 6 to be compatible with the configuration of the rest of the consensus clients.

To Reproduce

git clone https://github.com/ethereum/hive.git
cd hive/clients/nimbus-bn
docker build .

Additional context The docker build was working for merge tests but we have been not able to test withdrawals for nimbus in hive just recently.

marioevz avatar Jan 16 '23 22:01 marioevz

It's mainnet but with 6 second slots, not minimal (which already includes 6 second slots)?

tersec avatar Jan 17 '23 09:01 tersec

Yes, if I understand correctly I think we used this parameter to change all presets to 6 seconds, but I'm not sure if the behavior resulting from this parameter changed in the past months.

On the other hand it would be worth it to instead try to change the preset to minimal for all tests in hive suites.

marioevz avatar Jan 17 '23 17:01 marioevz

I tried to remove the compile time parameter and basically increase the SECONDS_PER_SLOT value for the testnet to the mainnet default when nimbus is involved, but we are now getting another error at startup because we are trying to modify another parameter:

"Cannot override config (compiled: TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH=18446744073709551615 - config: TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH=0)" 

What alternative we have to modify these genesis config parameters for nimbus in hive to be able to interop with other clients ?

These are the parameters we are currently modifying: https://github.com/ethereum/hive/blob/eee9107bcaa34145bbbbca39abe74f684ea72957/simulators/eth2/common/testnet/prepared_testnet.go#L135

Any help will be much appreciated!

marioevz avatar Jan 17 '23 19:01 marioevz

TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH

Nimbus doesn't use TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH.

tersec avatar Jan 24 '23 10:01 tersec