Nano vs Light vs Full: What do they verify?

From Marvin in the Discord (#coders-watercooler):

Nano consensus does not verify transactions at all. It’s only purpose is to verify the current state, not the history how we got there.

Light consensus verifies transactions of the last N blocks as well as the state of N blocks back (and thus the state of all blocks in between). It also verifies new transactions to be valid according to the current state.

Full consensus verifies all transactions (old and new transactions) and the state of all blocks

1 Like

From the protocol reference.

Node Types

Distinct Node types are used for different usecases and they differentiate from one another in the amount of data they need to download in order to join and synchronize with the network, which directly affects the time it takes each Node type to establish consensus and be able to process and validate transactions.

Full Nodes

Nodes of this type download the full blockchain thus requiring more storage. We expect this node type to be used solely with NodeJS Clients although theoretically it could run also in a browser.

Light Nodes

This type of nodes securely sync to almost full consensus by downloading just about 100 MB. To do that they use a LightChain which is initialized by using NiPoPoWs instead of the full blockchain history, but after initialization, it behaves as a regular full blockchain.

Nano Nodes

The preferred Node type for the Browser Clients since they require less data to be downloaded (~ 1MB) in order to establish consensus.


I think I saw the term Pico consensus as well. Is that an improvement of the current Nano consensus?

I haven’t really read the source code about the Pico consensus yet but how I currently understand it is that it’s not an improved version of the Nano consensus.

Actually it’s a lighter version than the Nano consensus. Meaning that even less information has to be transferred in order to reach consensus. This can results in even faster syncing times than the Nano consensus.

What I also know about the Pico consensus is that if at some point it needs more information than it initially downloaded during sync, it can ‘upgrade’ itself to Nano consensus by downloading some more information.