Geth StateDB that works ontop of ipld-eth-db, leveraging its unique indexes
c7d05bb86e
create database abstraction to make it easier to use different drivers |
||
---|---|---|
internal | ||
.gitignore | ||
access_list.go | ||
config.go | ||
database.go | ||
go.mod | ||
go.sum | ||
interfaces.go | ||
journal.go | ||
pgx.go | ||
README.md | ||
sql.go | ||
sqlx.go | ||
state_database.go | ||
state_object.go | ||
statedb_test.go | ||
statedb.go |
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.