nimbus-eth2/ncli
Jacek Sieka e8379389e7
speed up state/block loading (#5207)
* speed up state/block loading

When loading blocks and states from db/era, we currently redundantly
check their CRC32 - for a state, this costs 50ms of loading time
presently (110mb uncompressed size) on a decent laptop.

* remove `maxDecompressedDbRecordSize` - not actually used on recent
data since we store the framed format - also, we're in luck: we blew
past the limit quite some time ago
* fix obsolete exception-based error checking
* avoid `zeroMem` when reading from era store

see https://github.com/status-im/nim-snappy/pull/22 for benchmarks

* bump snappy
2023-07-26 10:47:46 +03:00
..
.gitignore A simple script for fetching detailed deposit data 2021-05-28 19:34:20 +03:00
README.md update spec references from eth2.0-specs to consensus-specs and to v1.1.0-beta.2 (#2822) 2021-08-26 10:21:52 +02:00
deposit_downloader.nim avoid Nim 2.0 issue when loading config (#5202) 2023-07-19 20:26:30 +02:00
download_mainnet_deposits.sh A simple script for fetching detailed deposit data 2021-05-28 19:34:20 +03:00
e2store.nim speed up state/block loading (#5207) 2023-07-26 10:47:46 +03:00
e2store.py e2store: avoid uint48 (#4625) 2023-02-15 14:51:17 +01:00
logtrace.nim log `bls_to_execution_changes_len` in `shortLog` (#4949) 2023-05-13 04:29:46 +00:00
ncli.nim add capella/deneb support to ncli and clean up imports (#4771) 2023-03-29 11:34:22 +03:00
ncli_common.nim rename `stateFork` > `consensusFork` (#4718) 2023-03-11 00:35:52 +00:00
ncli_db.nim speed up state/block loading (#5207) 2023-07-26 10:47:46 +03:00
ncli_query.nim 12x speedup on state sim with 100k validators sans BLS by caching get_beacon_proposer_index(...) 2020-06-04 17:07:51 +00:00
ncli_split_keystore.nim reduce `nim-eth` dependencies just for RNG (#5099) 2023-06-19 22:43:50 +00:00
ncli_testnet.nim reduce `nim-eth` dependencies just for RNG (#5099) 2023-06-19 22:43:50 +00:00
nim.cfg enable `styleCheck:usages` (#3573) 2022-04-08 16:22:49 +00:00
nimquery.nim Move tools (#2370) 2021-03-02 15:02:10 +01:00
requirements.txt Bump pygments from 2.11.2 to 2.15.0 in /ncli (#5205) 2023-07-20 14:25:18 +00:00
resttest-rules.json remove removed getDebugChainHeadsV1; fix API links in documentations (#5058) 2023-06-15 09:58:38 +00:00
resttest.nim REST server metrics and connections API endpoints. (#5193) 2023-07-21 16:54:09 +02:00
resttest.nim.cfg Keymanager API for the validator client (#3976) 2022-08-19 13:30:07 +03:00
validator_db_aggregator.nim stylecheck fixes (#3595) 2022-04-15 12:46:56 +00:00
validator_db_reports.ipynb Streamline the validator reward analysis 2022-02-01 11:30:14 +02:00

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