Commit Graph

61 Commits

Author SHA1 Message Date
i-norden
175c840bac fix err overshadowing in defers 2023-05-31 17:57:42 -05:00
6d7487152c Upgrade to v5 schema
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
2023-05-25 21:39:48 +08:00
i-norden
df8bec1ad0 adapt uncle retrieval methods to work for v5 2023-03-13 12:48:25 -05:00
i-norden
aab5a2ef0b use ipld-eth-statedb for eth_call and graphql endpoints 2023-03-13 11:25:19 -05:00
i-norden
6f1bfc7fce combine ipld and cid retriever into one struct. the original reason for the separation of concerns was because we used to fetch cids directly from the database but then use those to fetch iplds using an ipfs.BlockService abstraction ontop of our database (and/or a ipfs.BlockExchange). But now they are both accessed directly in the local DB. Additionally, some of the queries should be further refined/refactored/combined as we no longer need to take two trips but can retrieve cid and ipld in the same query. 2023-03-07 21:49:38 -06:00
190d0d7ac9
Improved logging and metrics. (#227)
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).
2023-01-20 19:39:26 -06:00
prathamesh0
cc17368c0d
Optimize GQL and getBlock APIs (#201)
* 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>
2022-11-04 10:02:09 +05:30
prathamesh0
33602aa0e0
Optimize getLogs GQL API (#198)
* Avoid joins with header and transaction tables while getting logs

* Update getLogs GQL API to accept multiple addresses

* Update version

* Update unit tests
2022-10-05 15:14:17 +05:30
prathamesh0
2c03c8cbd0
Support debug_traceCall API (#192)
* Implement debug_traceCall API

* Use API implementation from geth with custom backend

* Update refs in GitHub workflow
2022-09-21 17:15:03 +05:30
Michael
fc0d7a6dd6
Cerc refactor (#193)
* cerc refactor waiting on unpublished dependencies

* cerc refactor updates for dependencies

* Describe imports got removed

* cleaning up more vulcanize refs in ci/cd

* another test lost Describe imports

* another test lost Describe imports... not caught in go build -a???

* more cerc-io migrations to utilize new git.vdb.to gitea instance

* switching back to github for running unit test

* first try at git.vdb.to as conatiner repository

* targeted tag was incomplete
2022-09-20 11:52:06 -04:00
Michael Shaw
0e91e42128 first pass updating for statediffing geth 1.10.23... filters changed 2022-09-01 18:37:51 -04:00
prathamesh0
b90c28906a
Add log while serving getBlockByNumber (#176)
* Add log while serving getBlockByNumber

* Update GQL API to return empty result when header not found for hash
2022-07-15 16:19:31 +05:30
nikugogoi
221114cf56 Merge changes to implement postgraphile graphql queries 2022-06-07 17:37:01 +05:30
nikugogoi
1fc53ccab1 Rename Cid to CID 2022-06-06 16:46:53 +05:30
nikugogoi
31e9a7dc5e Review changes 2022-06-06 15:54:06 +05:30
6bd563e3d5 Use GORM to retrieve data from database 2022-06-03 15:08:45 +05:30
b3d9e01d67 Add test for ethTransactionCidByTxHash query 2022-06-03 15:05:46 +05:30
0c44882cb2 Added test for allEthHeaderCids query 2022-06-03 15:05:46 +05:30
7f15befdee Add custom implementation for Bytes to be returned as string 2022-06-03 15:05:46 +05:30
217cfc63ec Return empty headerCIDs and commit db tx 2022-06-03 15:05:46 +05:30
9550d60467 Add query ethTransactionCidByTxHash 2022-06-03 15:05:46 +05:30
da1c8b2332 Implement single query for transactions and blockByMhKey 2022-06-03 15:05:46 +05:30
fe7329c284 Add custom implementation for graphql scalar BigInt 2022-06-03 15:04:54 +05:30
f144d932cd Implement graphql query to get header with transactions 2022-06-03 15:04:54 +05:30
ace12fbc35 Update module path for v4 2022-05-20 18:50:50 +05:30
705835512e Update module path for v3 2022-05-18 13:35:16 +05:30
4b697b2a98 Upgrade dependencies 2022-05-02 17:48:03 +05:30
77812f2673 Move SetupTestStateDiffIndexer to shared test helpers 2022-04-21 17:06:29 +05:30
56c85709c1 Add unit tests for fill service 2022-04-21 17:03:59 +05:30
43ddbc7eea Update unit tests 2022-04-19 14:01:24 +05:30
Arijit Das
fcd2b963b0 Get DB config from env. 2021-10-12 12:33:48 +05:30
Arijit Das
20c04a98bc Update DB name. 2021-10-12 12:33:48 +05:30
Arijit Das
25b49f784b Use ipld-eth-db docker image. 2021-10-12 12:33:48 +05:30
Arijit Das
1973e8032d Bump up daptools image tag and geth version. 2021-10-07 15:07:23 +05:30
Arijit Das
cc6822f7a6 Update eth_call code. 2021-09-29 10:57:11 +05:30
Arijit Das
54db8f23e0 Refactor the code 2021-09-22 16:18:15 +05:30
n0cte
70c539c8d7 fix encoding when storage is empty 2021-09-22 16:00:57 +05:30
Ashwin Phatak
2de9c5bd48
Use groupcache pool for state db access (#91)
* Use groupcache pool for state db access

* Group cache config and logging stats on timer

* Integrate state validator into server

* Use tagged ipfs-ethdb

* groupcache config for tests

* Work around duplicate registration of groupcache error in tests

* Use tagged version of eth-ipfs-state-validator

* State validation command.

* Validator for static replicas to keep cache warm

* Update docker go-version and go.mod.

* Address comments and self review.

* Fix ipfs-ethdb version.

Co-authored-by: Arijit Das <arijitad.in@gmail.com>
2021-09-21 17:40:55 +05:30
Arijit Das
ed4171a1ab Revert "Add status field for pre-byzantium blocks."
This reverts commit 04a0f9a751.
2021-09-15 17:14:25 +05:30
Arijit Das
04a0f9a751 Add status field for pre-byzantium blocks. 2021-09-14 17:25:48 +05:30
Arijit Das
4d9edd2008 Minor change. 2021-09-02 19:17:04 +05:30
Arijit Das
121c75cc1d Change getLogs GQL API to take nil contract address. 2021-09-02 19:12:33 +05:30
Arijit Das
967c148eff Add test for graphql. 2021-09-01 18:25:22 +05:30
Arijit Das
71837c4b24 Self review. 2021-08-31 18:10:41 +05:30
Arijit Das
d0c3241730 Add reciept status in log for graphql. 2021-08-31 12:01:06 +05:30
Arijit Das
a28892f1d3 Fix get log API to use log_cids table. 2021-08-30 21:25:39 +05:30
Arijit Das
d8a5358a70 Remove ipld-eth-indexer dependency. 2021-08-12 11:56:29 +05:30
Ashwin Phatak
70f7face75
getLogs API changes to return txHash, make contract arg optional. (#81)
* getLogs API changes to return txHash, make contract arg optional.

* Populate log index.

* Add test for txn hash in GetLogs request.

* Convert tx string to common.Hash after fetching.

Co-authored-by: Arijit Das <arijitad.in@gmail.com>
2021-07-26 15:43:38 +05:30
Arijit Das
f1a61d0991 Add graphql tests. 2021-07-02 14:35:01 +05:30
Ashwin Phatak
0a14bd9f0f Update method used to get storage slot. 2021-06-29 12:23:10 +05:30