Releases: nknorg/nkn
v1.1-beta
Version 1.1 is a major release that introduced web GUI dashboard, new crypto puzzle mechanism, new txn type, and a lot performance optimization. Feature highlights:
- Add a web-based GUI dashboard that can be used to show node status and change configurations. By default the dashboard can be accessed from browser at
http://127.0.0.1:30000
. Note: in order to build the dashboard from source, you need to haveNode.js (v10 or higher)
andyarn
installed. But you don’t need them if you download the release version. - Reduce memory usage (and we are working on further reduce it in the future)
- Reduce disk IO usage when txn pool is full
- When new wallet joins the network for the first time (generate ID), it now needs to solve a crypto-puzzle which should take about 15 mins on average
- Faster block sync with default parameter
- Allow resubscribe and unsubscribe
v1.0.8-beta
This release helps new node to join the network when the low fee transactions are congested by allowing node to add txn fee for generate id txn automatically and also being able to include more small size low fee txn per block:
- Add RegisterIDTxnFee to control txn fee when generating id
- Add LowFeeTxnSizePerBlock to control low fee txn size per block (it is now recommended to use LowFeeTxnSizePerBlock instead of NumLowFeeTxnPerBlock to control low fee txn in block)
v1.0.7-beta
This release limits the memory usage of txpool and block syncing and also fix a few bugs. The following parameters in config.json can be used to control memory usage:
- TxPoolMaxMemorySize, in unit of MB, default to 32MB
- SyncBlocksMaxMemorySize, in unit of MB, default to 10% of max RAM
v1.0.6-beta
This release improves block building and syncing logic under massive spamming transactions:
- Add NumLowFeeTxnPerBlock config to control building block logic
- Dynamically adjust sync RAM usage based on total RAM
- Retry syncing block with halfing batch size if fails
v1.0.5-beta
This release contains the following changes:
- Limit subscribe txn metadata size
- Reduce maximum database file descriptor usage
- Hide panic stacktrace to avoid showing building path
- Add info -p pretty print for nknc -b, -t, --height
v1.0.4-beta
This release improves robustness to slow nodes:
- Increase measured RTT if ping msg timeout: This will avoid packets being routed to recently timeout neighbor
- Update lastRxTime only when receiving ping message: This may fix the case when remote node has extremely slow upstream bandwidth and all message timeout, but it still stays in other nodes' neighbors.
- ToRemoteNodeList only returns remote nodes that are not stopped
v1.0.3-beta
This release improves consensus convergence under slow network condition:
- Adjust consensus parameters for better convergence
- Excluding outdated neighbors when prefilling votes
v1.0.2-beta
- Attempts to fix the recent issue that some nodes get stuck occasionally
v1.0.1b-beta
- Disable register name transaction for now due to the recent abuse. It will come back later when there is a proper economic mechanism
- Enhance txn verification when proposing block and remove invalid txn from pool if not passing verification
v1.0-beta
v1.0-beta is the first public version of our MainNet 1.0 Narwhal. See launch overview at Narwhal: NKN Mainnet Launches with a Big Splash.
Feature Highlights
There are tons of new features and improvements introduced in our mainnet version 1.0, as you can see from the change stats. Here is a short list of highlighted features:
- Change account model from UTXO model to balance model
- Change signature scheme from ECDSA to Ed25519
- Implement a secure and verifiable public key infrastructure
- Use VRF to provide a secure random beacon per block
- Introduce NanoPay: a simple light-weighted off-chain nano payment channel
- Signature chain data structure redesigned: reduce 97+% bandwidth overhead
- Highly optimized block, transaction, sigchain propagation: reduce 80+% overall bandwidth usage
- Support client-side end to end encryption by default
- Support node side hop to hop encryption by default
- Implement connection multiplexing to avoid congestion
- Store account and other state in verifiable world state
- Migrate core data structure (e.g. block, transaction) to protobuf
- Transaction pool redesigned
- Support multiple native assets
- Add mining bonus address (MBA) for extra earning reward from donation
- NKN node image is now hosted on Docker Hub: you can now run full node in one line
Upgrade Guide from TestNet to MainNet
If you are running a node in testnet and are planning to upgrade to mainnet, there are a few things you need to do:
- Mainnet wallet is incompatible with testnet wallet, you need to create a new wallet for mainnet (as you did in testnet). The default wallet file name is now wallet.json instead of wallet.dat.
- Mainnet config.json is also different from testnet config.json, so you need to change the config file. You can use config.mainnet.json as a minimal working template to start with.
- In Mainnet, each node MUST have a unique wallet and cannot share the same wallet with other nodes, otherwise the node will not be able to join. It is recommended to use BeneficiaryAddr (in config.json) for both better security and convenience (if you run multiple nodes).
- When a node with a new wallet joins the network for the first time, it takes a few minutes to generate a node ID (automatically). After the first time, it will be as fast as before.
For more detailed information about how to build, configure, and run a node, please see the latest github readme.
If you are running one-click miner on DigitalOcean, AWS or Google Cloud, you just need to grab a drink and restart your one-click miner machine, and the rest will be automatic.
For more information on how to setup a one-click on your favorite cloud platform, follow the links below: