Parallelizable statediffing process that extracts from an offline levelDB
Go to file
2021-10-21 15:44:56 +05:30
.github/workflows github actions integration 2020-11-09 12:15:50 -06:00
cmd fix CLI bug 2021-10-20 16:25:52 -05:00
environments cli and toml bindings; fix unit tests; remove unused code 2021-10-19 16:49:04 -05:00
pkg cli and toml bindings; fix unit tests; remove unused code 2021-10-19 16:49:04 -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 Upgrade geth-statediff to version v1.10.11-statediff-0.0.27 2021-10-21 15:44:56 +05:30
go.sum Upgrade geth-statediff to version v1.10.11-statediff-0.0.27 2021-10-21 15:44:56 +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