Geth StateDB that works ontop of ipld-eth-db, leveraging its unique indexes
Go to file
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
internal add unit tests 2023-03-05 16:45:18 +08:00
.gitignore init commit 2023-02-22 18:57:42 -06:00
access_list.go port over required internal geth packages 2023-02-23 16:10:34 -06:00
config.go fix pgx dep; go.mod 2023-03-01 14:06:40 -06:00
database.go add unit tests 2023-03-05 16:45:18 +08:00
go.mod add unit tests 2023-03-05 16:45:18 +08:00
go.sum add unit tests 2023-03-05 16:45:18 +08:00
journal.go remove snapshot usage and unused internal methods; note this is different than the journaling used to simulate state transitions 2023-02-28 12:08:06 -06:00
README.md update readme 2023-03-01 22:36:17 -06:00
sql.go fixes 2023-03-05 16:31:01 +08:00
state_object.go update readme 2023-03-01 22:36:17 -06:00
statedb_test.go add unit tests 2023-03-05 16:45:18 +08:00
statedb.go fixes 2023-03-05 16:31:01 +08:00

ipld-eth-statedb

Implementation of the geth vm.StateDB on top of ipld-eth-db, to allow us to plug into existing EVM functionality. Analogous to ipfs-ethdb but at one database abstraction level higher. This allows us to bypass the trie-traversal access pattern normally used by the EVM (and which ipfs-ethdb allows us to replicate ontop of our Postgres IPLD blockstore in the "public.blocks" table) and access state and storage directly in the "state_cids" and "storage_cids" tables.

Note: "IPFS" is chosen in the name of "ipfs-ethdb" as it can function through an IPFS BlockService abstraction or directly ontop of an IPLD blockstore, whereas this repository is very tightly coupled to the schema in ipld-eth-db.