The release of Nano Node version 11 included support for Universal Blocks to be turned on via a “canary block”. In preparation for the canary block, the Core team asks all users operating default Nano nodes to upgrade to version 11. In certain cases where developers are using block_create , the block type will need to be changed from the existing four block types to state_block . If users have any questions please contact us in the #support channel on our official discord server.

Version 11.2 can be found here or can be run using our official Docker repo at nanocurrency/nano .

The current timeline for the canary block to be launched is on April 12th, 2018.

How the Nano Protocol is Upgraded

Nano, like any other cryptocurrency, is a protocol, an agreed upon standard that allows computers to communicate with each other and agree on data.

Bitcoin uses a blockchain as its public ledger database. By design, the blockchain is synchronous, where batches of transactions are appended to the Bitcoin blockchain in blocks that the entire network agrees on. Data (transactions) can only be added to the blockchain in discrete steps.

Nano uses a block-lattice, a directed acyclic graph (DAG), as it’s public ledger database. By design, the Nano block-lattice is asynchronous, where transactions can be added independent of other transactions occurring on the network.

All nodes on a cryptocurrency network upgrading their protocol at the same time is crucial to the consensus and consistency in the network. Blockchains accomplish this by programming into the node software an upgrade block-height. At the x’th block in the blockchain, all nodes utilizing the new software will switch over from the old protocol to the upgraded protocol.

Since Nano doesn’t have an exact blockheight that all nodes can agree upon, we need a different signaling method for all nodes to simultaneously upgrade their protocol.

The method we use is to send out a canary transaction. A canary transaction is no different than any other send/receive/change/open transaction; for the sake of this article, lets assume that the canary block is a 0 Nano send from a certain account chain in control by Nano Core to itself. This transaction is already formed and stored away, unbroadcasted, and waiting to be utilized. All nodes that are running the upgraded software will be listening for the hash, the digital fingerprint, of this block as the signal to switch on the upgraded protocol.

During the upcoming days the Core team will give more details on the upgrade and will be available to answer any questions on Reddit or Discord. Thank you for your continued support!