Parallelizable statediffing process that extracts from an offline levelDB
Go to file
2021-10-19 16:19:44 -05:00
.github/workflows github actions integration 2020-11-09 12:15:50 -06:00
cmd Add RPC endpoint to write statediff. 2021-10-19 17:27:51 +05:30
environments Write directly to PostgreSQL (port from geth statediff) 2020-11-15 15:18:34 +08:00
pkg make cache configurable 2021-10-19 16:19:44 -05:00
.gitignore go mod 2020-08-19 01:13:48 -05:00
docker-compose.yml begin docker stuff 2020-08-19 15:37:30 -05:00
Dockerfile fix Dockerfile 2020-11-09 12:49:33 -06:00
go.mod Add RPC endpoint to write statediff. 2021-10-19 17:27:51 +05:30
go.sum Update go.mod 2021-10-19 11:41:23 +05:30
LICENSE cobra init 2020-08-18 23:27:37 -05:00
main.go cobra init 2020-08-18 23:27:37 -05:00
Makefile Makefile 2020-11-09 12:19:31 -06:00
README.md doc headers 2020-12-03 10:08:20 +08:00
startup_script.sh begin docker stuff 2020-08-19 15:37:30 -05:00

eth-statediff-service

Go Report Card

standalone statediffing service ontop of leveldb

Purpose:

Stand up a statediffing service directly on top of a go-ethereum leveldb instance. This service can serve historical state data over the same rpc interface as statediffing geth without needing to run a full node

Usage

serve

To serve state diffs over RPC:

eth-statediff-service serve --config=<config path>

Available RPC methods are:

  • statediff_stateTrieAt()
  • statediff_streamCodeAndCodeHash()
  • statediff_stateDiffAt()
  • statediff_writeStateDiffAt()

write

To write state diffs directly to a database:

eth-statediff-service write --config=<config path>

This depends on the database settings being properly configured.

Configuration

An example config file:

[leveldb]
    path = "/Users/user/Library/Ethereum/geth/chaindata"
    ancient = "/Users/user/Library/Ethereum/geth/chaindata/ancient"

[server]
    ipcPath = "~/.vulcanize/vulcanize.ipc"
    httpPath = "127.0.0.1:8545"

[write]
    ranges = [[1, 2], [3, 4]]
[write.params]
    IntermediateStateNodes   = true
    IntermediateStorageNodes = false
    IncludeBlock             = true
    IncludeReceipts          = true
    IncludeTD                = true
    IncludeCode              = false

[statediff]
    workers = 4

[log]
    file = "~/.vulcanize/statediff.log"
    level = "info"

[eth]
    chainID = 1