Parallelizable statediffing process that extracts from an offline levelDB
Go to file
2021-10-25 18:54:54 -05:00
.github/workflows github actions integration 2020-11-09 12:15:50 -06:00
cmd make DB stats collector registration optional 2021-10-25 18:54:54 -05:00
environments make DB stats collector registration optional 2021-10-25 18:54:54 -05:00
monitoring fix type 2021-10-21 13:29:30 -05:00
pkg finish prom metrics 2021-10-25 15:40:11 -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 add sudo and user permissions to Dockerfile, update startup_script.sh with overlay commands 2021-10-21 19:02:22 +00:00
go.mod finish prom metrics 2021-10-25 15:40:11 -05:00
go.sum finish prom metrics 2021-10-25 15:40:11 -05:00
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 add trailing space to start script 2021-10-21 19:07:19 +00: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