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”
{"chain_id":40,"epoch":9,"ledger_version":"14361032","ledger_timestamp":"1657300237152539","node_role":"validator"}
{"chain_id":40,"epoch":9,"ledger_version":"14363130","ledger_timestamp":"1657300319369843","node_role":"full_node"}
If this has helped you or you think this article is useful, please vote for me.