Node Operators
Running a V1 Node
14min
supported platforms we support running a full node on ubuntu 22 04 lts minimum hardware requirements 8 cores of cpu and 16 gigabytes of memory (ram) fixed size hard disk, 2tb or elastic volumes, 2tb software prerequisites install docker https //docs docker com/engine/install/#server https //docs docker com/engine/install/#server install docker compose plugin https //docs docker com/compose/install/compose plugin/#installing compose on linux systems https //docs docker com/compose/install/compose plugin/#installing compose on linux systems storing the node data in a different directory (optional) the default node data directory( /node data ) is in the same directory as the docker compose yml file mount a new host folder, replace the path /node data in docker compose yml with the new directory running a full node build docker image locally(optional) make build run node(if the docker image does not exist, pull the image from docker hub automaticlly ) docker compose up d stop the full node docker compose down download the node data archive file(recommend) note that this process may take several hours due to the size of the blockchain nohup sudo curl sl https //caduceus foundation/downloads/node data tar gz o /node data tar gz & sudo tar xzvf /node data tar gz docker compose down sudo cp r /node data/node0 /node data/node0 bak sudo mv /data/ db /node data/node0/data/ docker compose up d checking the last synced block if you change the default data directory for node, replace the path " /node data" with your new directory or run the command in the same directory as the docker compose yml file you maybe need to wait about serval minutes, and then the node will sync blocks and generate committed logs tail /node data/node0/stdout cmpd txt f | grep committed restarting a node sometimes a node can get stuck you can restart the node by finding the docker container name by doing docker ps and then copying the name (in our case the name was cmp mainnet node and doing docker restart cmp mainnet node testing the rpc curl x post h 'content type application/json' data '{"jsonrpc" "2 0","method" "eth getblockbynumber","params" \["latest", true],"id" 1}' http //127 0 0 1 26658