Unit tests are another area with plenty of updates this release. They have been cleaned up and improved for more consistent feedback and stricter requirements on completion. Some additional improvements remain, including updating many to move away from using legacy blocks to the state blocks, but with V23 Follis the different test suites such as core_test, rpc_test and others become more useful.
As heavy code review and refactoring has continued, a number of issues have been discovered and investigated. The most notable is related to delays in block propagation and confirmation for non-Principal Representative nodes which immediately republishing blocks on arrival will help solve.
Other bug fixes have been merged, with additional ones to come. See the ongoing list with PRs that include the bug label on them:
Having consistent and clear naming for various elements and concepts within the Nano network is important. Some ambiguous terms have recently been discussed within the community and updates are being made in the documentation and within the node to reflect the consensus around these changes.
Pending out, receivable in
The term “pending” is being replaced, which refers to a send block which has been confirmed by the network but hasn’t yet had a matching receive block published and confirmed as well. “Receivable” will be used instead and updates to the node wallet are being made. “Ready to receive” and “ready to be received” are also used to describe this state in some contexts.
The original system of units used for Nano had 7 units, some with names which were case sensitive. Many threads have been started to help sort out the best way to remove the unit confusion and consensus showed that only 2 of these units have been consistently used over time.
The largest unit of “nano” (10³⁰) and smallest unit of “raw” (10⁰) will be the standard units going forward. Note that nano is not case sensitive anymore, so nano, Nano and NANO are all describing the same unit, although lowercase nano is preferred as that is how most currencies are written.
This new standard aligns well with existing wallets, services and exchanges which use the nano unit, while interactions with the node are standardized around the raw unit. It is important to note that this change has no impact on the supply of Nano, it is only providing different units to describe the existing and unchanging amount of supply.
Recent updates to the docs were made to help developers find the resources they need to more easily get up to speed on Nano. This includes areas for both protocol developers and those looking to integrate with the network.
A new top-level navigation item for Core Development was added. With details about code standards to follow, a guide for understanding the code better and other resources, this should help kickstart developers looking to get involved with coding the node and protocol. Send it to all your C++ expert friends and family!
A new overview of what is needed for a typical Nano integration has been added as the top-level Integration Guides page. This is a great resource to share with anyone digging into a Nano integration for the first time or returning to the ecosystem more recently.
It breaks down the needs and steps to getting started sending and receiving Nano — whether that is within a game, for accepting payments or creating a wallet application.
Despite this release being more focused on refactoring and cleanup, there is still a need for continued testing of developer builds on the beta network.
We recently released V23.0DB2 with a few bug fixes and general background improvements. As always we encourage anyone with the time and skills to run a beta node to help out.
As we get V23 polished for release, we are excited to get moving on improvements in future releases. One of the key areas will be additional spam protection measures, the details of which will be laid out further following the V23 Follis release.
But as always, there are good discussions around the various ideas and approaches to improving Nano, so here is a short list of threads to follow along with as we get closer to these updates: