This is a major release that introduced various features, security updates, and performance optimization. Feature highlights:
Database:
- Implement state pruning that can greatly reduce ChainDB size by removing unused states. State pruning is still be beta phase and is not enabled by default. You can enable it by setting
StatePruningMode
to"lowmem"
inconfig.json
, or start nknd with--pruning lowmem
argument. In the future state pruning will be enabled by default. When state pruning is enabled, every time nknd starts, it will first prune local ChainDB, which might take a long time depending on last pruned height. Pruning an unpruned ChainDB can take a few days depending on your node's disk I/O speed, so please be patient or start from a pruned snapshot (e.g. https://nkn.org/ChainDB_pruned_latest.zip or https://nkn.org/ChainDB_pruned_latest.tar.gz)
Consensus:
- Implement random sampling neighbors in voting and gossip
Security:
- Add block verification when syncing and persisting blocks
Client:
- Implement multicast and compression protocol
Others:
- Fix the bug that nanopay txn not in txpool gets removed
- Fix the bug that nknc return code is not correct