NKN testnet v0.5 Koala is officially released today, marking the completion of another key milestone on our roadmap. Since the v0.3 Lemur release two months ago, NKN development team have made the following major achievements:
- Developed and improved the NKN core software for quality and scalability: re-wrote the entire network layer which is released as a new top level repository nnet (https://github.com/nknorg/nnet); and enhanced the consensus layer.
- Completed phased system scalability optimization and efficiency improvement. With support from the community, NKN project expanded the scale of public testnet to over 4,000 nodes globally.
- Further enhanced and optimized the functionality of the client SDK and wallet SDK. This enables more community developers to join the NKN testnet and build dApps on top of NKN’s protocol.
At the same time, the community developers have become much more active and are playing an increasingly important role. They have created a large number of high quality contributions: ranging from dashboards, wallet, blockchain explorer, applications, clients in several programming language, to technical documentation and tutorials. This means that NKN is firmly marching towards true decentralization and is one big step closer to the mainnet release in the first half of next year.
GitHub source code activities
First of all, from the number of pull request and commits of NKN Github code repository, the main efforts have been focused on 5 repositories: nkn, nnet, nkn-client-js, nkn-wallet-js, and nkn-mining over the past two months.
During these short 2 months, there were 18 sub-releases which illustrates the tremendous and fast paced effort by the core development team.
Core software achievements
- The NKN network layer DDTN, the Chord-based distributed hash table (DHT) network layer function is further enhanced. Specifically, it includes fixing the error of finding the successor of the DHT for the blockchain; adding a timeout for the DHT entry connection to avoid port leakage; adding a locking function when changing the DHT entry connection; fixing DHT ingress connection concurrent mapping iteration and mapping write; fixing potential deadlock problem; adding function to send vote in synchronous mode if node has the ability to verify block; optimizing DHT connection handle logic; fixing the problem of possibly assigning empty nodes to the routing table; checking the successor node host and activity before updating; if all successor nodes are out of association, using the most recent available routing table as a successor list, allowing large-scale nodes being dropped to enhance network robustness.
- Consensus optimization and attack defense under the deployment of major-scale nodes were addressed in the v0.5 Koala version which will be used for testing the performance of the testnet in the next phase. The testnet core code repository is continuously updated and optimized. A total of 18 testnet versions have been released in the past two months, which helps further improve the stability of the v0.5 Koala version of the NKN testnet. For example, to solve the problem of overloading nodes caused by large-scale new block proposals, the development team adjusts the identifier of the block producer to the wallet address and node ID to ensure that the block producer is unique, preventing a fork; to solve the problem of network instability when most nodes are restarted at the same time, the development team dynamically estimates the length of the successor node list based on the network size. When the successor nodes in the list are all invalid, the “Finger Table” is used as an alternative to ensure the correctness and recoverability of the network topology. After solving the related problems, the number of mining nodes from the community members showed a large-scale growth, accounting for 94.5% of the total number of mining nodes.
- The optimization of the gossip algorithm for transaction information and block information has been implemented. With Chord DHT integration, we can use a more efficient gossip broadcast algorithm, which has been optimized for both bandwidth and transmission delay.
- The MOCA Consensus has completed core function development and improved the legality verification function of block producers in the Koala version. We further optimized the block synchronization function based on neighbor voting. To solve the problem of syncing to the wrong state when a node joins, the development team optimizes the code to ensure that the node uses most of its neighbors to determine the correct state and to ensure that it gets the correct block history.
- A few key functions have been implemented in NKN client and wallet SDK such as multicast, message cache for offline client, name service register and resolve.
nnet code repository release
NKN open sourced nnet: a fast, scalable, and easy-to-use p2p network stack. This is one of the four core components of NKN, now modularized and released as a separate top level repository. Written in Go, nnet will enable developers to build new p2p networks and connected applications using the next generation of decentralized infrastructure. For more details please see the github,:
Don’t forget to leave your star if you like it.
User facing product releases
To facilitate the community to participate in the NKN testnet and carry out experimental mining, the front-end team developed and released the GUI miner. A detailed mining guide has been released accordingly, which will help more community members participate in experimental mining that will further assist the development team to discover problems exposed in a large-scale testnet.
1-click GUI mining software for Mac OS and Linux:
In addition, public testnet monitoring dashboard has been implemented:
Mining Dashboard, web wallet, and blockchain explorer
- Space cats, a 3D realtime decentralized game: https://github.com/PlaySpaceCats/space-cats
- Name service: https://github.com/nknorg/nkn/pull/272
- Java: https://github.com/RealJohnSmith/nkn-java-client
- C#: https://github.com/trueinsider/nkn-client-csharp
- Exlir: https://github.com/termoose/nkn_client
Technical documentation and tutorials:
- Make your own NKM (New Kind of Miner) out of a Raspberry pi: https://medium.com/nknetwork/make-your-own-nkm-new-kind-of-miner-out-of-a-raspberry-pi-dbeeed6d8130
- Setting up a NKN Miner in 5 Minutes and run it free for 2 months with DigitalOcean: https://medium.com/nknetwork/setting-up-a-nkn-miner-in-5-minutes-and-run-it-free-for-2-months-with-digitalocean-76bafcd82ae8
- How to set up a NKN Miner on Windows 10 and run it as an automatic service: https://medium.com/nknetwork/how-to-set-up-a-nkn-miner-on-windows-10-and-run-it-as-a-automatic-service-63e5b7a6b792
- Script to set up a Raspberry Pi as a Plug & Play NKN miner: https://github.com/rxper/nkm-pi
Next release outlook
The V0.5 Koala release of the NKN testnet also kick-started the journey towards the v0.7 Meerkat release due January 31, 2019. This will be the final full-featured NKN testnet to achieve complete implementation and performance before transitioning to our mainnet development.
Looking ahead to the Meerkat milestone, the technology focus is to introduce a full-featured NKN testnet that includes fault tolerance, data transmission and routing, relay certification, and a fully implemented consensus algorithm. This consensus algorithm enables fast convergence in large-scale networks. In addition, NKN SDK 1.0 version will be released to accelerate the application development on top of NKN.
Call for developers
We invite all developers to join our flourishing technical community on our Discord channel and GitHub repoitory:
- Backend developer: help us to build new features, crush bugs in our core software
- Frontend developers: help us build better dashboards, blockchain explorers, wallets, and other toolkits for NKN users
NKN testnet v0.5 version Koala is NOT compatible with the previous v0.3 version of Lemur. We request that you update the software to v0.5 before joining the NKN testnet. For detailed instructions and links please follow our pinned message in Discord testnet channel.
We want to stress that the incompatibility of the software version will NOT affect the previous mining record or your wallet balance of test tokens. But to be extra safe, please make a backup copy of your wallet.dat and password before updating the software.
We plan to hold an online AMA event on Telegram during early November and release a more detailed guidance document of the NKN testnet experimental mining incentive policy. Please subscribe to our official news channel and stay tuned for the latest news!