Part of [Support running go-nitro node in/out of process in ipld-eth-server](https://www.notion.so/Support-running-go-nitro-node-in-out-of-process-in-ipld-eth-server-f592e29f0e5b474aa65db1509e5ddf1b)
- Added in-process go-nitro node support
- To be handled in upcoming PRs:
- Out of process go-nitro node support to be added in an upcoming PR
- Refactoring and remaining todos
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Reviewed-on: #256
Co-authored-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
Co-committed-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
Co-authored-by: Roy Crihfield <roy@manteia.ltd>
Reviewed-on: #3
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
In addition to the module updates, because the new indexer code will automatically flag pre-existing blocks as non-canonical when new block is added at the same height, I had to re-order the test setup to insert non-canonical blocks first.
Now uses:
* ipld direct_by_leaf StateDB for basic queries
* trie_by_cid StateDB for trie slice and proof queries
Also:
* vulcanize => cerc refactor
* Backend method to close dbs
* state tests are in multiple packages, to allow separate ginkgo suites
* removes gap-filler module
* integration tests and github workflows
* run stack-orchestrator for testnet
* fix various issues with tests, hardhat server, dockerfile
* fix cmd flags / env vars
* fix flaky tests and clean up code
* remove unused code, scripts
* remove outdated docs
* update version
1. Improve logging to include API method, user ID, etc in the output. We do this by intercepting the request details in the "middleware" and adding them to the request context, as well as adding a wrapper to logrus that simplifies including the fields in the output.
2. Breakdown API metrics by method. This will allow us to differentiate call counts and durations by API method (eg, eth_call vs eth_getStorageAt).
* Implement getSlice API for state nodes
* Implement getSlice API for storage nodes
* Fix the helper function to create a slice of required paths
* Fix query to get state leaf key for given storage root
* Add a test to get state slice for root path
* Add checks in queries to get canonical data
* Add tests to get state slice
* Add a todo for using an iterator
* Avoid filtering out removed nodes
* Add tests to get storage slice
* Remove logs
* Populate extra contract leaves field in the response
* Update tests
* Avoid EOAs in additional data in response
* Use iterator based approach for getSlice
* Skip undesired nodes from stem and head iterators
* Update storage slice tests
* Fix meta data updates
* Use state trie to get stem nodes directly using paths
* Bugfix - Continue processing other trie nodes on encountering a leaf
* Remove unnecessary TODO
* Add optional block number filter to getLogs API
* Use block number while fetching block with transactions
* Fix for failing tests
* Use block number when fetching block objects
* Use block number when fetching a tx by hash
* Add back methods to get block objects by block hash
* Update run_unit_test.sh
Removing echo command, as it seems to be only change in CICD.
* Increase wait time for db setup in unit test job
Co-authored-by: Michael <michael@abastionofsanity.com>
* Avoid joins with header and transaction tables while getting logs
* Update getLogs GQL API to accept multiple addresses
* Update version
* Update unit tests