Understand node types and what types of node community members are running

I’ve seen many people unable to distinguish between devnet and testnet since AIT1, but at that time, AIT1 use one docker-compose file to run both validator and fullnode. Now in AIT2 some people installed the wrong full node, and some even tried to upgrade from testnet to devnet after seeing the announcement of devnet release. So I decided to write this article about node types.
Views are my own. The official explanation shall prevail.

First, many of you may have read the official documentation. I was confused when I first saw it. There are only two types of nodes: validator and fullnode, but a third type in the topology called validator full node. Actually It is a fullnode but is run by the node opreator that also runs the validator node, just like the optional full node in AIT1 and AIT2.
Both testnet and devnet have these two type nodes, please do not mix use them. Community members in testnet run validator with optional fullnode also known as validator fullnode, while in devnet people run fullnode also known as public fullnode.

In the most familiar AIT1 AIT2, also known as testnet. Suppose only 5 validators are selected, none of them run the optional fullnode. And the APTOS team will run a validator node and a validator full node. That way the blue part is run by community users, and the green part is run by the team.

The situation totally different when it comes to devnet, where the APTOS team runs an infrastructure including validator nodes for developers to use. Developers can transact directly with devnet or run FullNodes locally and sync with devnet. Same the blue part is run by community users, and the green part is run by the team.

Devnet is under rapid development and will be updated once a week. chain_id will also be increased by 1 every week, currently devnet’s chain_id is 19. While testnet(AIT2)'s chain_id is 40.
If you are not sure which network you have installed, simply enter your serverIP:APIport in the browser address bar then you will see the chain_id in the output. Also validator will show “node_role”:“validator” and full node will show “node_role”:“full_node”


If this has helped you or you think this article is useful, please vote for me.


And this is really good information, and so simply explained. Not the first day in the industry and all this has already passed, but the availability of the explanation pleased me! LIKE


Glad you found it helpful

1 Like

Thank you for this interesting article!

Good Job Guguru :+1:
Keep going

Thanks fro contributing

Very interesting, your text helped me to better understand the topology and I came to some conclusions:

  • The existence of the Validator Fullnode is a smart way to isolate the Validator Network, so Validators can focus most of their resources on consensus and in keep other Validators in sync, it also helps against DDoS and increase security.

  • The Validator Fullnode is responsible for keeping Public Fullnodes in sync with the Validators and also serves to transmit Client requests to Validators.

  • It was also very clear that it is necessary to run the Validator and the Validator Fullnode on different machines, in order to maintain the isolation and protection of the Validator Network.

  • Ideally, the number of Validator Fullnodes should be the same as the number of Validators, to maintain good availability for quick synchronization of Public Fullnodes.

I believe that Aptos mainnet will require that every Validator also runs a Validator Fullnode, or else it will give greater incentives to those who run these two nodes.


Detailed explanation, very helpful

1 Like

Really helpful


Yes, good article but can you please answer this questions below :slight_smile:

  1. What is testnet and who uses testnet?
  2. What is devnet and who runs devnet?
  3. What is mainnet and who runs mainnet?

Thank you
Dave E
Aptos, East Africa


Great work, keep it up


Thank you for the great article


perfect work! :raised_hands:

good luck :slight_smile: