nimbus-eth2/ncli
Zahary Karadjov 47f1f7ff1a More efficient reward data persistance; Address review comments
The new format is based on compressed CSV files in two channels:

* Detailed per-epoch data
* Aggregated "daily" summaries

The use of append-only CSV file speeds up significantly the epoch
processing speed during data generation. The use of compression
results in smaller storage requirements overall. The use of the
aggregated files has a very minor cost in both CPU and storage,
but leads to near interactive speed for report generation.

Other changes:

- Implemented support for graceful shut downs to avoid corrupting
  the saved files.

- Fixed a memory leak caused by lacking `StateCache` clean up on each
  iteration.

- Addressed review comments

- Moved the rewards and penalties calculation code in a separate module

Required invasive changes to existing modules:

- The `data` field of the `KeyedBlockRef` type is made public to be used
  by the validator rewards monitor's Chain DAG update procedure.

- The `getForkedBlock` procedure from the `blockchain_dag.nim` module
  is made public to be used by the validator rewards monitor's Chain DAG
  update procedure.
2022-01-18 01:56:56 +02: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 A simple script for fetching detailed deposit data 2021-05-28 19:34:20 +03:00
download_mainnet_deposits.sh A simple script for fetching detailed deposit data 2021-05-28 19:34:20 +03:00
e2store.nim update era file documentation / impl (#3226) 2022-01-07 11:13:19 +01:00
e2store.py update era file documentation / impl (#3226) 2022-01-07 11:13:19 +01:00
logtrace.nim switch result = foo to expression return; unexport rest of logtrace symbols (#2788) 2021-08-17 09:51:39 +00:00
ncli.nim move `state_transition` to `Result` (#3284) 2022-01-17 12:19:58 +01:00
ncli_common.nim More efficient reward data persistance; Address review comments 2022-01-18 01:56:56 +02:00
ncli_db.nim More efficient reward data persistance; Address review comments 2022-01-18 01:56:56 +02: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
nim.cfg minimize imports, specially for spec - cuts 2/3 of ncli build time (#500) 2019-10-25 12:59:56 +02:00
nimquery.nim Move tools (#2370) 2021-03-02 15:02:10 +01:00
resttest-rules.json Harden CommitteeIndex, SubnetId, SyncSubcommitteeIndex (#3259) 2022-01-09 01:28:49 +02:00
resttest.nim REST cleanups (#3255) 2022-01-08 22:06:34 +02:00
validator_db_aggregator.nim More efficient reward data persistance; Address review comments 2022-01-18 01:56:56 +02:00
validator_db_reports.ipynb More efficient reward data persistance; Address review comments 2022-01-18 01:56:56 +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