forked from flashbots/rbuilder
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Goal
Nethermind client should work as a state provider for rbuilder.
Firstly, the state will be provided via IPC RPC, and then we'll optimize (e.g., Rust <> C# FFI).
TODOs
- Implement necessary
SatateProviderFactorytraits - Implement necessary
StateProvidertraits - Implement
HeaderProvidertraits - Implement state root calculation (dependent on the Flashbots team to refactor the traits)
- Test using Backtest Builders
- Test using Live builder
Here is the list of the Traits we'll have to implement:
Column Already supported by NM? indicates that the:
- RPC call already exists in the NM client
- NM client supports both arg and return types (they are either "the same" or there is a small amount of work to be done to support the requirements fully)
If the args or return data needs to be adapted from/to NM-specific types, I propose adapters to be implemented on the rbuilder side where possible since this is specific to rbuilder and not the NM client.
StateProviderFactory
| Trait | Done? | Already supported by NM? |
|---|---|---|
| latest | ✅ | ✅ |
| history_by_block_hash | ✅ | ✅ |
| last_block_number | ✅ | ✅ |
StateProvider
| Trait | Done? | Already supported by NM? |
|---|---|---|
| storage | ✅ | ✅ |
| bytecode_by_hash | ✅ | ✅ |
| block_hash | ✅ | ✅ |
| basic_account | ✅ | ✅ |
HeaderProvider
| Trait | Done? | Already supported by NM? |
|---|---|---|
| header | ✅ | ✅ |