Releases: nknorg/nkn
v2.2.1
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.
What's Changed
- Add unittest for election.go by @bufrr in #930
- Fix nknc getnonce command invalid params by @yilunzhang in #936
- Add websocket session connectTime to avoid deleting cached message too early by @billfort in #939
- Fix: Replace hardcoded int literal with variable by @omani in #943
- Provide UnmarshalJSON() for common.uint160 by @omani in #944
- Change ci badge from travis-ci to github actions by @yilunzhang in #953
- Regenerate dashboard yarn.lock using official npm registry by @yilunzhang in #954
- fix findSuccessorAddrs has wrong params in comment by @yilunzhang in #956
- Support WebRTC communication by @billfort in #961
- make config.json optional by @yilunzhang in #963
- reduce webrtc error log lvl by @yilunzhang in #964
- gofmt by @yilunzhang in #965
- Add OnOfferConnected channel for synchronize connected event for client by @billfort in #966
- Check if nil before closing WebRTC channels by @billfort in #967
- remove some debug log by @yilunzhang in #968
Full Changelog: v2.2.0...v2.2.1
v2.2.0
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.
What's Changed
- Create localNode interface by @billfort in #871
- Implement websocket client connection authorization by @billfort in #874
- Implement client message cache expiration and memory limitation by @billfort in #876
- Implement transaction pool sync by @billfort in #872
- Upgrade docker build base image by @yilunzhang in #889
- replace deprecate lib ioutil with new one by @bufrr in #907
- add ledger mode to node data and getnodestate rpc response by @yilunzhang in #905
- support multiple domain name for node certificate by @bufrr in #910
- support wildcard certs by @bufrr in #928
- remove ledger usage when create localnode by @bufrr in #931
New Contributors
Full Changelog: v2.1.9...v2.2.0
v2.1.9
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.
What's Changed
- Add config to replace txn in txpool when generate id by @yilunzhang in #841
- Filter nanopay txn by sender in GetAllTransactionsBySender method by @yilunzhang in #842
- Implement nanopay txn replacement in txpool by @yilunzhang in #843
- Change txn sorting to fee per size by @yilunzhang in #845
- Allow json rpc params to be omitted by @yilunzhang in #851
- Fix: check on symbol flag in nknc and typo in txvalidator by @omani in #856
- Dynamically adjust state sync RAM usage by @bufrr in #858
- Rewrite CLI: nknc and nknd by @omani in #857
- Fix password argument incompatibiltity with previous version by @yilunzhang in #860
- Add per ip rate limiter by @yilunzhang in #859
New Contributors
Full Changelog: v2.1.8...v2.1.9
v2.1.8
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.
v2.1.7
This version introduces fast sync and light sync for faster block sync and smaller ledger size.
Experimental release of fast sync and light sync
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
andgettransaction
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.
How to enable fast sync and light sync
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"
toconfig.json
to enable fast sync, or add"SyncMode": "light"
toconfig.json
to enable light sync.
You should only choose one sync mode, not both.
Other changes
- Add
getheader
RPC method - Add result cache to
getsubscriberscount
RPC method - Add
MaxRollbackBlocks
into config
v2.1.6
This version has two major changes:
- Change bonus mining reward adjust interval from 1,576,800 blocks to 1 block. This change only affects the bonus mining reward from donation contribution (including Generate ID fee contribution). The bonus mining reward will still be released at the rate of 50% per 1,576,800 blocks just as before, but with more smooth release curve. The change will be effective at block height 3,030,000. After the effective height, mining reward is expected to increase immediately by 0.58 NKN.
- Add get trie state message and handler as the phase 1 of fast sync upgrade. This change will enable nodes to respond to get trie state messages, in preparation of the next phase of fast sync.
Due to consensus change, this version is a mandatory upgrade. Please upgrade before block height 3,030,000.
v2.1.5
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.
v2.1.4
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.
v2.1.3
This version contains a few important sigchain related consensus upgrades that will greatly increase network security:
- Introduce sighash left shift mechanism
- Implement sighash left shift for sigchain with skipped hops
- Implement sighash left shift for sigchain with recent miners
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:
- Reduce the log level of some common message
- Fix the bug that node with certain local ledger cannot join the network
- Prevent nknc from creating empty log file on each start