Hi Aptos fam! We hope these additions will help you avoid some of the issues we had when installing public full node in Aptos testnet.
This guide is an addition to the official guide to running Public Fullnode on a testnet.
Step 1. We described server configuration and protection here.
Step 2. Install Docker
Step 3. Setup a node
mkdir testnet && cd testnet mkdir data wget -O fullnode.yaml https://raw.githubusercontent.com/aptos-labs/aptos-core/testnet/docker/compose/aptos-node/fullnode.yaml wget -O genesis.blob https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/testnet/genesis.blob wget -O waypoint.txt https://raw.githubusercontent.com/aptos-labs/aptos-networks/main/testnet/waypoint.txt
Editing the fullnode.yaml file:
base: role: "full_node" data_dir: "/opt/aptos/data" waypoint: from_file: "/opt/aptos/etc/waypoint.txt" execution: genesis_file_location: "/opt/aptos/etc/genesis.blob" full_node_networks: - network_id: "public" discovery_method: "onchain" listen_address: "/ip4/0.0.0.0/tcp/6182" api: enabled: true address: "0.0.0.0:8080"
Since the node will not be able to start synchronization with the genesis block, before launching, you should download the database by any means and place it in the
You can use a snapshot (Bootstrap Fullnode from Snapshot | Aptos Docs) or backup/restore (Bootstrap Fullnode from Backup | Aptos Docs) and that should give your node more up-to-date seed peer information.
note: In the next release (1.7), we’ll automatically be injecting seeds to testnet and mainnet nodes, meaning these nodes should always be able to connect (even if they only have the genesis blob). https://github.com/aptos-labs/aptos-core/tree/aptos-release-v1.7.
Step 4. Starting the node:
docker run -d --pull=always \ --rm -p 8080:8080 \ -p 9101:9101 -p 6180:6180 \ -v $(pwd):/opt/aptos/etc -v $(pwd)/data:/opt/aptos/data \ --workdir /opt/aptos/etc \ --name=aptos-fullnode aptoslabs/validator:mainnet aptos-node \ -f /opt/aptos/etc/fullnode.yaml
Useful commands and links:
Looking at the logs:
Copy container id and write the command:
docker logs [Container ID] --tail 100
docker logs 665c711d377e --tail 100
You can find the latest block using the REST API using this: https://fullnode.devnet.aptoslabs.com/v1/spec#/operations/get_block_by_version.
The index page will tell you the latest node version (e.g., ledger_version): https://fullnode.mainnet.aptoslabs.com/v1.
Use the ledger_version to lookup the block that it belongs to, e.g.,: https://fullnode.mainnet.aptoslabs.com/v1/blocks/by_version/253141079
Thanks for reading!