status-im / nimbus-eth1

Nimbus: an Ethereum Execution Client for Resource-Restricted Devices

Home Page:https://status-im.github.io/nimbus-eth1/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make Portal state-interop hive tests pass for Fluffy

kdeme opened this issue · comments

The state-interop test suite on hive fails for a lot of tests for Fluffy.

See also https://portal-hive-experimental.ethdevops.io/ (e.g. https://portal-hive-experimental.ethdevops.io/suite.html?suiteid=1717426303-49120e0e56335ef3ddcccf85635f70ad.json&suitename=state-interop).

Note that the production hive (https://portal-hive.ethdevops.io/) does not show these tests for Fluffy, as only clients that pass ~100% will be added there in the future.

I've ran them locally with only fluffy as client and they also fail:

...
INFO[06-03|20:43:58] simulation portal/state finished         suites=2 tests=47 failed=29
29 tests failed

First step would be to get that working, can be ran by doing:

git clone https://github.com/ethereum/hive
cd ./hive
go build .

./hive --sim state --client fluffy 

cc @web3-developer

Thanks @kdeme . I'm looking into it.

@kdeme It looks like Fluffy is failing because it is trying to look up the block header in order to get the stateroot required for validation. The Hive state tests don't setup history network data so there is no way for Fluffy to get this data.

It turns out that Trin doesn't yet validate the offered state content against the state root so that is why the tests are passing for them.

I'm planning to update Fluffy to support disabling the state root validation for the hive tests.

This PR should fix all the broken hive portal state tests: #2333

I've also created a PR to update the Fluffy startup options in the Portal hive tests, see here: ethereum/hive#1118