Closed abdulrabbani00 closed 2 years ago
LGTM!
For the Foundry proposal 2.ii. "Creates a container with the ipld-eth-server
" not sure I follow why the container in this rpeo would need to include ipld-eth-server.
Good catch, I meant the ipd-eth-db
not server.
vulcanize/go-ethereum
repository. But it might be moved into a repository of its own.
Currently, this framework works for local testing, but it's not great and hasn't been standardized. The next steps are:
statediff
using Hive.Once we have gotten appropriate feedback and used both frameworks for real-world testing, we can do the following:
dapptools
out of existing pipelines.Reopen more specific task issues
Current Testing
Currently, there are two sorts of tests that developers can run for
vulcanize-geth
.Unit Tests
The unit tests are written directly in the
vulcanize-geth
code base. They follow the same standard asethereum-geth
unit tests.Manual Integration Tests
If we want to test the behavior of a running
vulcanize-geth
node, on a private network, we need to do the following:Although manual integration tests are helpful in many contexts, primarily to study code change behavior at the start of development, they don’t provide full code coverage. Furthermore, the current process for standing up a private network and connecting it to Geth spans two repositories and takes and takes a long time to build.
Improvements
@Ian Norden and I propose the following two solutions:
Ideology
Programmatic Integration Tests
There is no way to write proper programmatic integration tests against the geth codebase. There are various issues open now that could leverage programmatic integration testing.
Proposal
ipld-eth-db
.vulcanize-geth
works.Immediate Use Cases
Replace Dapptools with Foundry for Manual Integration Testing on a Private Network
Currently, the pain point with dapptools is:
vulcanize-geth
.The benefits to Foundry are:
Proposal
vulcanize-geth
forfoundry
.ipld-eth-db
Immediate Use Cases
ipld-eth-db
, and run it in GitHub actions.Estimated Time
The following captures the estimated time and effort required to make both changes.
Foundry
Hive or Hive-Like Solution
vulcanize-geth
vulcanize-geth
and connect it to anipld-eth-db
vulcanize-geth
.vulcanize-geth
has been implemented, I would want to do the following:vulcanize-geth
repository that runs the tests in Hive.vulcanize-geth
into Hive.