Releases: nknorg/nkn
v2.2.5
What's Changed
- upgrade nnet by @yilunzhang in #1015
- update docker build by @yilunzhang in #1018
Full Changelog: v2.2.4...v2.2.5
v2.2.4
What's Changed
- use all neighbors for gossip by @yilunzhang in #1012
- set sync state to persist finished when resetting mvh by @yilunzhang in #1013
- rollback and reset expected height when resetting mvh by @yilunzhang in #1014
Full Changelog: v2.2.3...v2.2.4
v2.2.3
What's Changed
- add mechanism and const for network reset by @yilunzhang in #1011
Full Changelog: v2.2.2...v2.2.3
v2.2.2
What's Changed
- fix make docker not building amd64 image when running on arm by @yilunzhang in #970
- fix MarshalJSON undefined for non-pointer Uint160 by @yilunzhang in #971
- increase default LowFeeTxnSizePerBlock to 8192 by @yilunzhang in #972
- increase default rpc client timeout by @yilunzhang in #974
- chore: fix some function names by @mountdisk in #976
- maintenance by @nbdy in #977
- fix dependency/github workflow compatibility with go 1.20 by @yilunzhang in #978
- Bump ws from 7.5.9 to 7.5.10 in /dashboard/web by @dependabot[bot] in #973
- Bump golang.org/x/net from 0.29.0 to 0.33.0 by @dependabot[bot] in #987
- chore: make function comment match function name by @growfrow in #994
- chore: fix some typos in comment by @dropbigfish in #998
- refactor(api): replace []byte(fmt.Sprintf) with fmt.Appendf by @studystill in #1002
- chore: fix some comments by @findmyhappy in #1003
- Change default sync mode from full to light by @yilunzhang in #1004
- recompiled with new protoc so we can use the modern proto go libs by @MutsiMutsi in #1006
- change ws data handle error to debug to prevent log spam by @yilunzhang in #1009
- dashboard: replace node-sass with sass by @yilunzhang in #1010
- chore: fix function in comment by @shangchenglumetro in #1005
New Contributors
- @mountdisk made their first contribution in #976
- @nbdy made their first contribution in #977
- @growfrow made their first contribution in #994
- @dropbigfish made their first contribution in #998
- @studystill made their first contribution in #1002
- @findmyhappy made their first contribution in #1003
- @MutsiMutsi made their first contribution in #1006
- @shangchenglumetro made their first contribution in #1005
Full Changelog: v2.2.1...v2.2.2
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
getblockandgettransactionRPC 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 fastargument when starting nknd to enable fast sync, or add--sync lightargument when starting nknd to enable light sync. -
Add
"SyncMode": "fast"toconfig.jsonto enable fast sync, or add"SyncMode": "light"toconfig.jsonto enable light sync.
You should only choose one sync mode, not both.
Other changes
- Add
getheaderRPC method - Add result cache to
getsubscriberscountRPC method - Add
MaxRollbackBlocksinto 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.