diff --git a/README.md b/README.md index 1b6b5e3..a8eefb5 100644 --- a/README.md +++ b/README.md @@ -1 +1,12 @@ # ipld-eth-statedb + +Implementation of the geth [vm.StateDB](https://github.com/ethereum/go-ethereum/blob/master/core/vm/interface.go#L28) on top of +[ipld-eth-db](https://github.com/cerc-io/ipld-eth-db), to allow us to plug into existing EVM functionality. Analogous to +[ipfs-ethdb](https://github.com/cerc-io/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. diff --git a/state_object.go b/state_object.go index 086d75a..a28c8bc 100644 --- a/state_object.go +++ b/state_object.go @@ -6,11 +6,10 @@ import ( "math/big" "time" - "github.com/ethereum/go-ethereum/metrics" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/metrics" "github.com/ethereum/go-ethereum/rlp" ) @@ -247,7 +246,7 @@ func (s *stateObject) setBalance(amount *big.Int) { // Attribute accessors // -// Returns the address of the contract/account +// Address returns the address of the contract/account func (s *stateObject) Address() common.Address { return s.address }