With a successful holiday season and end of 2019 behind us, we’ve got some exciting updates to the Nano node and protocol to share — let’s keep the momentum going in 2020!
The Wisdom of Athena
Athena is the first protocol upgrade of 2020 and will focus on making the Nano node even smarter, faster, and more spam-resistant. Taking inspiration from the Greek Goddess Athena — a symbol of wisdom popularly depicted on coinage from the classical Greek era — V21 of the Nano node will feature considerable improvements to the quality of network information shared by nodes and more intelligent use of network resources.
We are pleased to be able to outline some of the more significant features included in Athena and help aid understanding of how network performance will be improved.
Determining performance on the network can be tricky and resource-intensive by hitting various RPC calls or monitoring websockets closely to get high-level metrics. But with node telemetry, certain pieces of data are shared between nodes automatically, allowing a bigger picture of what is happening on the network to emerge.
Some examples of data included are block count, cemented count, uptime, protocol version, node version details, and more. See more details in the PR #2446 and PR #2524, and if you have ideas around other pieces of data that you’d like to see shared, drop a reply in the related forum discussion.
Node telemetry by wezrule · Pull Request #2446 · nanocurrency/nano-node
There are 10 pieces of telemetry data which can now be accessible, 6 of which were originally mentioned in the…
Note that this telemetry data can be forged, it should not be relied upon for critical, sensitive tasks. Instead, it offers an easier way to watch certain activities, behaviors, and performance on the network.
Better elections management
With code cleanup and design changes related to managing elections, Athena is unlocking some additional efficiencies with the process, while making the code and flow of elections easier to follow. Part of this involves moving into a state machine design that provides benefits in areas, even outside elections.
Other related updates will help provide additional throughput for nodes, such as passive elections, a larger vote cache, and various other caches being added, improved or expanded. With these updates together, the nodes will be able to process transactions more efficiently than ever.
Streamlined voting behavior
Earlier this month, community developer Srayman submitted a promising proposal for network optimization that was carefully reviewed by our team. Several suggestions contained within the proposal proved to be sound approaches to help make the network more efficient. As a result, the Athena release will include the streamlining of voting.
Proposal for Nano Node Network Optimizations
Proposed nano network changes to reduce vote messages sent by PR nodes by 80–90% and Non-PR nodes by over 50%.
This voting behavior update helps reduce network traffic and load on Principal Representatives (PRs) by:
- No longer having PRs relay votes
- No longer having non-PR nodes relay votes to PRs
- Having PRs announce their votes to all other PRs
This new voting communication scheme still allows for sufficient propagation of votes to reach quorum extremely fast while reducing bandwidth by about 50% during beta network testing.
We want to thank Srayman for making consistently high-quality contributions to Nano node development. Anyone with an interest in contributing to the Nano protocol can join the active team of community developers by visiting the docs to find out how to get started.
To provide more performant communication to the node, a major update to IPC functionality is approaching completion. Not only will communication be faster, but this new framework will also allow easier integration across various languages by supporting Flatbuffers and provide the foundation for more granular authorization of specific calls. The generation of OpenAPI specifications is also on the radar.
IPC 2.0 by cryptocode · Pull Request #2487 · nanocurrency/nano-node
This PR proposes “IPC 2.0”, on which RPC 2.0 and other things can be built…
These updates are also key as we move towards a major RPC 2.0 refactor, currently targeted for V22. If there are nagging RPC issues you’d like to see resolved or broader thoughts on how best to organize the node APIs, please join the forum discussion.
RPC 2.0 Refactor
RPC 2.0 will be a major refactor of the existing RPC, targeted for V22. The refactor will be a breaking change, and RPC…
Continued RocksDB progress
After adding support for RocksDB in V20, more broad testing of the new database was done on the beta network, and additional improvements to it are planned over the coming releases. As optimizations are made elsewhere in the node to save CPU and bandwidth resources, the database becomes a more likely bottleneck for performance, and RocksDB has the potential to improve over the current LMDB setup in many ways.
Some RocksDB updates will be included in V21, but it will remain as an experimental option for the release. We are still evaluating timing for RocksDB to be ready for production usage, which could be as early as V22 or V23. For anyone interested in helping us test, please learn more about joining the beta network efforts and dive in!
Work difficulty update
Over the past month, we have been soliciting feedback about changing minimum work difficulty levels on the network. As we get closer to the release and a final decision on this, we invite participants on the network to help weigh-in on the forums. There you will find various thoughts on what levels of change might be appropriate, taking into consideration the wide variety of use cases that exist.
As part of this, we are also exploring options to allow different block types to have different levels of work required. This may result in higher values for send blocks, lower for receive blocks, and even lower for epoch blocks to assist in the speed of the transition.
With work generation being a hot topic, we also recommend you check out the other forum discussions exploring different approaches to the feature. From work multipliers based on different factors and behaviors to memory requirements and new algorithm research, these can be found under the pow tag.
More robust network
This release follows a line of other node updates that have continually strengthened the Nano network over the past months. Faster confirmations, more efficient communication and better spam-prevention have been targets that the Athena release helps improve even further.
Although the features mentioned above are some of the larger updates in the release, there is plenty of others worth looking into if you’re excited about the details. Check out the GitHub V21.0 Milestone for all the ongoing and merged PRs, or if you have a more general question about the release, drop it in the V21 Athena Release forum topic.