Summary
Our test suite only uses Anvil, which doesn't accurately replicate real execution client behavior. As seen in Robust-Provider#6 there are non-trivial differences between Anvil and real clients (Geth, Nethermind, Reth, etc.) that cause production issues. We need integration tests against variety of real nodes for a stable release.
Problem
- Anvil differs from production clients in WebSocket behavior, error responses, and RPC semantics
- Bugs may slip through that would be caught with real client testing
Solution
Use ethereum-package via Kurtosis to spin up ephemeral Ethereum networks with real execution clients for integration testing.
Tasks
- Add Kurtosis to CI pipeline
- Create integration test suite (feature-gated, separate from unit tests)
- Test against multiple clients: Geth, Nethermind, Reth
- Cover key scenarios: subscriptions, reconnection, error handling
- Run on merges to main and release branches (not every PR)
Summary
Our test suite only uses Anvil, which doesn't accurately replicate real execution client behavior. As seen in Robust-Provider#6 there are non-trivial differences between Anvil and real clients (Geth, Nethermind, Reth, etc.) that cause production issues. We need integration tests against variety of real nodes for a stable release.
Problem
Solution
Use ethereum-package via Kurtosis to spin up ephemeral Ethereum networks with real execution clients for integration testing.
Tasks