Commit Graph

74 Commits

Author SHA1 Message Date
761d60acdf Geth 1.13 (Deneb/Cancun) update (#5)
The Geth `core/state` and `trie` packages underwent a big refactor between `v1.11.6` and `1.13.14`.
This code, which was adapted from those, needed corresponding updates. To do this I applied the diff patches from Geth directly where possible and in some places had to clone new parts of the Geth code and adapt them.

In order to make this process as straightforward as possible in the future, I've attempted to minimize the number of changes vs. Geth and added some documentation in the `trie_by_cid` package.

Reviewed-on: #5
2024-05-29 10:00:12 +00:00
6f79445570 Merge pull request 'additional StateDB and stateObject methods required for tracing' (#4) from ian/v5_additions into v5
Reviewed-on: #4
2023-11-06 13:24:11 +00:00
i-norden
4faef8b509 go mod
All checks were successful
Run tests / Run unit tests (pull_request) Successful in 6m1s
2023-11-06 07:22:41 -06:00
i-norden
c09d19b68b additional StateDB and stateObject methods required for tracing
Some checks failed
Run tests / Run unit tests (pull_request) Failing after 5m58s
2023-11-01 15:02:07 -05:00
e52a00e9d4 Update plugeth-statediff to v0.1.4 (#2)
Reviewed-on: #2
2023-09-30 05:54:44 +00:00
aa2dbd84d7 Refactor to use plugeth-statediff (#1)
Reviewed-on: #1
2023-09-20 06:16:44 +00:00
bd877020d0
Merge pull request #19 from cerc-io/roy/v5-dev
* Rewrite trie_by_cid package to be read-write
* add CI workflows
2023-05-19 01:11:39 +08:00
b392e12bdd CI workflows 2023-05-19 01:08:07 +08:00
5eb6cd2ba8 Update README 2023-05-19 01:08:07 +08:00
7381b35dc6 Redo trie_by_cid package to be read-write
* use logrus instead of geth log
* remove benchmarks
* impl NodeIterator.ParentPath
* update go mods
2023-05-19 01:08:07 +08:00
c839739320 Test cleanup 2023-05-15 00:12:49 +08:00
0eba6888c1
Merge pull request #18 from cerc-io/roy/v5-dev
* Refactor redundant DB code

* Fix storage paths

GetState takes a slot, not a leaf path

* Add trie_by_cid/state.TryGetNode

used in ipld-eth-server

* Reorganize packages

* direct_by_leaf/ is original StateDB package
* sql/ for SQL DB interfaces

* Test NodeBlob

* Fix node resolution; use Cid struct as key

was erroneously storing the cid in the fullNode's flag.cache

* Add basic trie tests
2023-04-25 15:01:12 +08:00
4b2aba4fc7 Add basic trie tests 2023-04-24 21:38:11 +08:00
88e7a394d0 Fix node resolution; use Cid struct as key
was erroneously storing the cid in the fullNode's flag.cache
2023-04-24 18:34:49 +08:00
3f0e36c0a3 Test NodeBlob 2023-04-24 18:34:49 +08:00
3625e22949 Reorganize packages
* direct_by_leaf/ is original StateDB package
* sql/ for SQL DB interfaces
2023-04-24 18:34:49 +08:00
5790ff0439 Add trie_by_cid/state.TryGetNode
used in ipld-eth-server
2023-04-24 18:34:49 +08:00
e3e4e1e41c Fix storage paths
GetState takes a slot, not a leaf path
2023-04-24 18:34:49 +08:00
49177ee0ab Refactor redundant DB code 2023-04-24 18:34:49 +08:00
ced8041f72 fix package oops 2023-04-24 18:34:42 +08:00
b6ef6d4e12
Proof tests (#17)
* Port proof tests from geth
* Scale trie size, seed rand
2023-04-24 05:04:13 -05:00
Ian Norden
32e4994b09
Merge pull request #16 from cerc-io/ian/v5_dev
Merge StateDB and Trie that use CIDs and trie traversal access pattern to interface with ipld.blocks
2023-04-10 23:58:29 -05:00
3ddb592d6b expose NodeIterator 2023-04-10 16:43:36 +08:00
a5a95c2a9f clean up 2023-04-10 16:43:27 +08:00
49f3d43e46 update statedb
add transient storage
2023-04-10 16:43:27 +08:00
i-norden
7575a88b03 add a bit to the README about the alt implementation 2023-04-09 12:59:07 -05:00
i-norden
cee8f21984 some fixes 2023-04-09 12:42:19 -05:00
i-norden
804b321c42 updated deps 2023-04-09 12:25:11 -05:00
i-norden
0cea5840f8 move to trie_by_cid 2023-04-09 12:01:26 -05:00
0573da1982 trie iterator and tests 2023-04-09 12:01:26 -05:00
ed5238a742 unused pkg 2023-04-09 12:01:26 -05:00
33e3d2f0ec Implement StateDB using IPFS-backed trie and supporting types 2023-04-09 12:01:26 -05:00
i-norden
f8648b51a7 initial commit 2023-04-09 12:01:26 -05:00
Ian Norden
c7d05bb86e
Merge pull request #11 from cerc-io/ian/v5_dev
create database abstraction to make it easier to use different drivers
2023-03-16 07:32:03 -05:00
i-norden
73bb6cf62b clean up 2023-03-13 16:58:59 -05:00
i-norden
784860a7f0 create database abstraction to make it easier to use different drivers; add sqlx driver support to make integrating into ipld-eth-server database metrics easier 2023-03-13 14:07:01 -05:00
Ian Norden
9f53f99fc6
Merge pull request #10 from cerc-io/ian/v5_dev
add `SetStorage` methods to StateDB and StateObject
2023-03-13 11:08:29 -05:00
i-norden
04a4cc7014 add SetStorage methods to StateDB and StateObject 2023-03-13 10:41:45 -05:00
Ian Norden
ac6d1918e2
Merge pull request #8 from cerc-io/ian/v5_dev
Additional unit tests
2023-03-09 09:04:44 -06:00
i-norden
02d148c5ef review fixes 2023-03-09 09:03:47 -06:00
i-norden
31aec61d7e fix for difficult to identify bug due to block_num arg being overriden by optimistic get_storage_at path which then can mess up the pessimistic path in very particular scenarios 2023-03-08 16:44:49 -06:00
i-norden
f354dca32d another test case to check handling when non-canonic blocks are present 2023-03-08 12:46:11 -06:00
Ian Norden
c09bc65a92
Merge pull request #7 from cerc-io/ian/v5
Use `get_storage_at` procedures
2023-03-08 12:45:42 -06:00
i-norden
96067bd223 review fixes 2023-03-08 11:20:16 -06:00
i-norden
2a004e887c add one more case 2023-03-08 10:03:48 -06:00
i-norden
affaeeb481 add simple unit test cases to test behavior when slots or contracts are destructed 2023-03-07 20:41:53 -06:00
i-norden
bd7a73afe8 update to use get_storage_at functions 2023-03-07 20:41:53 -06:00
Ian Norden
1ed81b588d
Merge pull request #2 from cerc-io/ian/v5
ipld-eth-statedb
2023-03-06 12:11:23 -06:00
i-norden
3a5606673a removeu unused method hash arg 2023-03-06 11:46:07 -06:00
Ian Norden
d68c12706f
Merge pull request #5 from cerc-io/roy/unit-tests
Add unit tests and fixes
2023-03-06 11:38:26 -06:00