Exploring the Frontier: What's Ahead for V27 of the Nano Node
This year has been a productive one, our refinement of the Nano node continues in the expectation of a major milestone - the release of Version 27 (V27) named Denarius. With our sights firmly set on enriching the network's robustness especially in terms of spam prevention, scalability, and the overall user experience, V27 brings the Nano network closer to Commercial Grade than ever before.
V27: Core Enhancements Unveiled
Fair Queueing enhancements
The fair queue component designed by Piotr Wójcik has been added to the nano node. The fair queue orders requests in a fair, round-robin fashion which is needed by several components in the node. The fair queue was added to block, network message, bootstrap request, and vote request processing. The fair queue ensures that each network peer gets equal processing time within each component.
Election/block handling improvements
A number of performance and maintainability improvements were added to election and block handling which improve performance when under load. Both block processing and vote processing were reimplemented using fair queueing. Networking operations were separated from block processing which both improved maintainability and performance.
Representative handling improvements
Multiple parts of rep handling were improved including weight tracking, vote request aggregation, and rep crawling. Memory use for rep handling has been significantly improved, performance for request aggregation has been improved, and a number of changes to reduce vote bandwidth usage have been made including only replying to vote requests with final votes and not using the vote cache when responding to requests.
Network handling rewrite
Significant portions of the networking stack have been rewritten and simplified. Legacy code that handled half-duplex TCP channels has been removed and all TCP connections now operate full-duplex. Asynchronous callback-style code has been replaced with coroutines in several places simplifying code flow.
Network Flow Control Improvements
Network Flow Control Improvements refers to a set of algorithms and protocols designed to regulate the rate of transaction processing and data flow across the network to prevent congestion, ensure network stability, and maintain optimal throughput.
The primary goal of improving flow control in V27 is to enhance the Nano network's resilience to spam and denial-of-service attacks, improve overall transaction processing efficiency, and ensure equitable resource distribution across the network. By intelligently managing how transactions are processed and propagated, V27 aims to maintain high throughput and low latency, ensuring Nano remains a fast and reliable decentralised payment system, even as it scales.
Rate-Limiting: This is a mechanism that limits the number of transactions that can be processed or propagated by a node within a certain timeframe. Rate-limiting is essential to prevent DDoS attacks and to manage the load on nodes, ensuring that they do not get overwhelmed by too many transactions at once.
Adaptive Algorithms: The V27 update employs algorithms that can adapt based on real-time network conditions. These adaptive mechanisms ensure that the flow control settings are dynamically optimised, whether the network is under heavy load or operating normally.
Flow control in V27 of the Nano node represents a sophisticated suite of features designed to optimise network performance, safeguard against malicious activities, and ensure the Nano network remains scalable and efficient as it grows.
Configurable Logging: Tailored Diagnostic Insights
Acknowledging the pivotal role that effective logging plays in the realms of network diagnostics and monitoring, V27 is set to unveil a logging system that boasts efficiency and high configurability. This system empowers node operators with the capability to custom-tailor logging levels and outputs, simplifying the process of debugging and health monitoring of nodes. This method is designed to balance the need for detailed logs with keeping disk space use low and avoiding log clutter, marking a vast improvement in how the system works.
Voting Mechanism Reinvented: Up to 255 Votes Per Message
In an ambitious move to amplify the network's scalability and voting efficacy, V27 will extend its support to encapsulate up to 255 votes per message, marking a leap from the previous limit of 12. This enhancement is set to dilute the network congestion and diminish voting traffic, which, in turn, bolster the consensus mechanism's robustness. By amalgamating a larger quota of votes into fewer messages, Nano strides closer to a scalable future, ensuring the network's resilience proliferates in tandem with its activity.
Bounded Block Backlog Preparation: Reimagining QoS
Culminating the array of enhancements, V27 lays the foundational stones for an initial rewrite of the Bounded Block Backlog functionality. This pioneering stride towards enhancing the network's Quality of Service (QoS) embodies a smart transaction prioritisation strategy, ensuring that critical transactions are swiftly processed even amidst elevated network loads such as spam attacks. This move underscores a commitment to a more stable and consistent user experience irrespective of network dynamics.
A Beacon of Continuous Improvement
V27 encapsulates Nano's ethos of perpetual innovation and evolution despite the noise of our space. By heralding significant improvements across critical dimensions such as bootstrapping efficiency, logging operability, scalability through an enhanced voting mechanism, and a reimagined approach towards network QoS, V27 doesn’t just augment the network’s performance; it takes on the learnings of the more recent past attacks and brings Nano ever closer to Commercial Grade.
For a more detailed exploration of V27 and to partake in its developmental discourse, visit the discussion for V27.
If you would like to contribute, please check out our GitHub, or the core development documentation page.
For those interested in why we have chosen the name Denarius for V27, denarius coins of Roman antiquity were made by hammering. A piece of metal would be heated up and placed on an anvil with a punch on top. Then the punch would be hit with a hammer, sometimes more than once, to impress onto the coin the designs contained in both the punch and the anvil with this process leaving very distinctive marks on the coins. Coins made from silver of high purity might show flow marks, lines radiating out from the centre of the coin. With flow control being such a major feature of V27 and as we near ‘Commercial Grade’ which is our Aurus (gold) standard, we felt Denarius was a fitting name!
Nano Foundation does not endorse or approve products and/or services used or developed by third parties. Any links to third party software or sites are for informational purposes only. Nano Foundation bears no responsibility for the operability, accuracy, legality or content of third party products and/or services. Any questions regarding third party material should be directed to that party.