6b9419e547
It turns out that we often save lots of states in the database that are the result of empty slot processing only - here, we make sure to only save a state if a block follows - this fixes several issues: * empty slot states are not always pruned leading to state database size explosion * storing states is (very) slow which slows down processing in general, so we should only do it when it's likely to be useful * attestation processing doesn't get stuck on saving random states that won't appear in the chain history |
||
---|---|---|
.. | ||
.gitignore | ||
README.md | ||
ncli.nim | ||
ncli_db.nim | ||
ncli_query.nim | ||
nim.cfg |
README.md
Introduction
ncli
is a set of low level / debugging tools to interact with the nimbus beacon chain specification implementation, simliar to zcli. With it, you explore SSZ, make state transitions and compute hash tree roots.
Tools
- transition: Perform state transition given a pre-state and a block to apply (both in SSZ format)
- hash_tree_root: Print tree root of an SSZ object
- pretty: Pretty-print SSZ object as JSON
Building
Follow the instructions from nimbus-eth2
git clone https://github.com/status-im/nimbus-eth2.git
cd nimbus-eth2
make
Usage
# Build with minimal config
../env.sh nim c -d:const_preset=minimal ncli_transition
# Build with mainnet config
../env.sh nim c -d:const_preset=mainnet ncli_transition
# Run..
./ncli_transition --help