Parallelizable statediffing process that extracts from an offline levelDB
.github/workflows | ||
cmd | ||
environments | ||
pkg | ||
.gitignore | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md | ||
startup_script.sh |
eth-statediff-service
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