gnosischain/posdao-test-setup

Error generating the genesis block

Closed this issue · 7 comments

All three nodes report the same error on startup:

2019-01-16 15:07:52 UTC Starting Parity-Ethereum/v2.3.0-unstable-9333302a0-20190102/x86_64-linux-gnu/rustc1.33.0-nightly
2019-01-16 15:07:52 UTC Keys path parity-data/node1/keys/DPoSChain
2019-01-16 15:07:52 UTC DB path parity-data/node1/chains/DPoSChain/db/e21e3a996e8c7afb
2019-01-16 15:07:52 UTC State DB configuration: fast
2019-01-16 15:07:52 UTC Operating mode: active
2019-01-16 15:07:53 UTC Configured for DPoSChain using AuthorityRound engine
2019-01-16 15:07:53 UTC Error generating genesis epoch data: please ensure the contract and method you're calling exist! failed to decode empty bytes. if you're using jsonrpc this is likely due to jsonrpc returning `0x` in case contract or method don't exist. Snapshots generated may not be complete.
2019-01-16 15:07:53 UTC Public node URL: enode://1f32732dd14e7b043da2306d98d886af6cf13bdc643ebc100b57594a1bae660d1e99d5f375595f0771833d8cb9c3f04a4c57d2292eb3e2d400563f6bf1fe47b9@192.168.1.239:30301
2019-01-16 15:07:55 UTC Open new block failed with error Error(Engine(FailedSystemCall("Randomness error: LoadFailed(CallFailed(\"Transaction execution error (Couldn\\\'t find the transaction block\\\'s state in the chain).\"))")), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }). This is likely an error in chain specificiations or on-chain consensus smart contracts.

This can be an aura-pos issue, an issue with the contracts or a consequence of some misconfiguration.

This was a problem with the smart contracts. Fixed by https://github.com/poanetwork/pos-contracts/pulls/16

This is not yet fixed in master. I believe there is an error closing the genesis block. The error message is as follows:

2019-01-18 11:19:45 UTC Local tx 0xd47664894ae0b063dfe9834397b5966e9ba6f6e1d16c6e49584ba2f98ca28d2c below minimal gas price accepted
2019-01-18 11:19:45 UTC Closing the block failed with error Error(Engine(FailedSystemCall("please ensure the contract and method you\'re calling exist! failed to decode empty bytes. if you\'re using jsonrpc this is likely due to jsonrpc returning `0x` in case contract or method don\'t exist")), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }). This is likely an error in chain specificiations or on-chain consensus smart contracts.

Try to fix the unlock and engine_signer for the first node.

It must be 0xbdaa3987a2bbe67790e4c0bc11343bd3d58c603d in your case: https://github.com/poanetwork/pos-test-setup/blob/803dda9065e7d2a84dbd86697dbecf7437515206/scripts/network-spec#L9

Don't forget to change https://github.com/poanetwork/pos-test-setup/blob/master/parity-data/node1/keys/DPoSChain/validator1.json

Or just change INITIAL_VALIDATORS to INITIAL_VALIDATORS=0xbbcaa8d48289bb1ffcf9808d9aa4b1d215054c78,0x75df42383afe6bf5194aa8fa0e9b3d5f9e869441,0x522df396ae70a058bd69778408630fdb023389b2

We can simply correct INITIAL_VALIDATORS to contain the correct address of node 1: bbcaa8d48289bb1ffcf9808d9aa4b1d215054c78.

We can simply correct INITIAL_VALIDATORS to contain the correct address of node 1: bbcaa8d48289bb1ffcf9808d9aa4b1d215054c78.

Yes.

Corrected in 1d833a5.

The last fix is in 4ebd892. Although the test still doesn't seal block 0, we believe this is a configuration issue.