Skip to content

Nano - Digital money for the modern world

Part of work in progress Living Whitepaper

This page is part of the Living Whitepaper revisions currently underway to replace the original static whitepaper. These efforts include the Protocol Design and Node Implementation sections of the docs, which will cover and expand on details and topics covered in the original whitepaper.

See the bottom of the page for related whitepaper sections and other related details. Some of the sections and headers on this page may be in draft form or just suggestions/framework for later consideration. If you are interested in helping with revisions please connect with us on the #documentation channel on our Discord server.

Contributing to the code

If you are interested in helping develop the C++ based Nano node we will help you out! Check out our details on contributing code to the Nano node to get started.

The original whitepaper for Nano was last updated in November 2017, and since then, many improvements to the protocol have been made. The current node implementation has received updates every few months on average since 2018.1 As these updates continue to make the network stronger over time, the static nature of a traditional whitepaper required too much effort to continually update and publish. To ensure information about Nano is kept as up-to-date as possible, a new "Living Whitepaper" is being managed through the existing documentation website, which is easier to update and is open source.2

Protocol vs. Node

The two main sections of the Living Whitepaper are the Protocol Design and Node Implementation. Although they were structured to split the required elements to conform to the protocol (Protocol Design) away from optional improvements built into the current node (Node Implementation), there is some overlap between them. Where possible, these overlaps have been highlighted; however, those interested in contributing to the development of the protocol or building another node implementation should analyze more closely the differences between these to ensure the necessary rules are followed.

Protocol Design

This section contains details of the different messages shared between nodes and common data structures, which allow data to be stored and communicated consistently across the network. Because Nano is decentralized and uses network-wide consensus to validate transactions, participating on the network requires following the message and data designs, otherwise attempts at transacting will be ignored or not properly confirmed by the network.

Many changes done to elements outlined here require a change in the protocol version in addition to the node version.

Node Implementation

This section expands into methods and mechanisms built into the current node software that aren't required for compliance with protocol rules, but help provide better efficiency and performance for nodes running on the network. These details could be ignored or implemented in different ways by different types or versions of node software, while still maintaining compatibility with other nodes.

Existing whitepaper sections related to this page:

Other existing content related to this page: