Geth StateDB that works ontop of ipld-eth-db, leveraging its unique indexes
Go to file
2023-04-09 12:01:26 -05:00
bycid Implement StateDB using IPFS-backed trie and supporting types 2023-04-09 12:01:26 -05:00
internal add unit tests 2023-03-05 16:45:18 +08:00
pkg/trie_builder_utils Implement StateDB using IPFS-backed trie and supporting types 2023-04-09 12:01:26 -05: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 clean up 2023-03-13 16:58:59 -05:00
database.go 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
go.mod 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
go.sum 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
interfaces.go clean up 2023-03-13 16:58:59 -05: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
pgx.go 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
README.md update readme 2023-03-01 22:36:17 -06:00
sql.go update to use get_storage_at functions 2023-03-07 20:41:53 -06:00
sqlx.go 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
state_database.go clean up 2023-03-13 16:58:59 -05:00
state_object.go 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
statedb_test.go clean up 2023-03-13 16:58:59 -05:00
statedb.go 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

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.