Official Go implementation of NKN full node.
This version supports WebRTC for client-node communication. WebRTC will be used to replace WSS for JavaScript clients running in https environments. It is the final and most important step towards fully decentralized communication in browsers. In addition, this version contains several performance optimization, bug fixes and security patches. Upgrade is required to support new WebRTC clients.
Full Changelog: https://github.com/nknorg/nkn/compare/v2.2.0...v2.2.1
This version adds a few major features including client authorization, client message cache, transaction pool sync. In addition, this version contains several performance optimization, bug fixes and security patches. Upgrade is highly recommended.
Full Changelog: https://github.com/nknorg/nkn/compare/v2.1.9...v2.2.0
This version introduces new txn fee priority mechanism based on fee per size. In addition, this version contains several performance optimization, bug fixes and security patch. Upgrade is highly recommended.
Full Changelog: https://github.com/nknorg/nkn/compare/v2.1.8...v2.1.9
This version introduces uptime-based routing, proposed in NKP-0021. The uptime and latency will be used together to compute an effective latency, resulting in a routing rule that prefers neighbors with lower latency (fast) and higher uptime (stable).
This is the initial implementation of NKP-0021. The curve and parameters are subject to change in later versions while we collect more data and feedbacks of this version.
This version introduces fast sync and light sync for faster block sync and smaller ledger size.
In this version we are introducing two new sync mode: fast sync and light sync.
Fast sync: node will sync the same full block history as before, but much faster by syncing the state trie directly. Think of it as a decentralized replacement of the ChainDB snapshot that many people are using.
Light sync: node will only sync headers of old blocks without transactions. The local ledger size will be much smaller than before (ChainDB size is about 4GB at the time of the release), but node will not be able to respond to getblock
and gettransaction
RPC requests for old blocks/transactions. We recommend using light sync only when node disk space is not enough.
Currently fast sync and light sync mode are still in experimental stage, and not enabled by default.
Please note that fast sync and light sync can only be enabled when node has NO local ChainDB directory (i.e. a fresh sync). You need to remove the ChainDB
directory and let node do a fresh sync if you want to enable them.
There are two ways to enable fast sync and light sync:
Add --sync fast
argument when starting nknd to enable fast sync, or add --sync light
argument when starting nknd to enable light sync.
Add "SyncMode": "fast"
to config.json
to enable fast sync, or add "SyncMode": "light"
to config.json
to enable light sync.
You should only choose one sync mode, not both.
getheader
RPC methodgetsubscriberscount
RPC methodMaxRollbackBlocks
into configThis version has two major changes:
Due to consensus change, this version is a mandatory upgrade. Please upgrade before block height 3,030,000.
This version introduced enhanced security mechanism for sigchain miner selection, including using block random beacon as salt when selecting miner, and truncated exponential weight for each sigchain element. The new mechanisms will be activated at block height 2,900,000. Please make sure all nodes upgrade before this height.
This version adjusts a few sigchain related consensus parameters to enhance network security. The change will be effective at block height 2,651,000. Please make sure all nodes upgrade before this height.
This version contains a few important sigchain related consensus upgrades that will greatly increase network security:
The new mechanism will be enabled at block height 2,633,000. Please make sure all nodes upgrade before this height.
In addition, a few improvements and bug fixes are included in this version:
This version disables sigchain objection. This mechanism will be re-enabled after switching to new ID.