Cardano Notes
Cardano Node
I took ~3 days to sync from origin
Start a Node:
mkdir -p /data-nvme/CARDANO/node-config
cd /data-nvme/CARDANO/node-config
curl -O https://book.world.dev.cardano.org/environments/mainnet/config.json
curl -O https://book.world.dev.cardano.org/environments/mainnet/topology.json
curl -O https://book.world.dev.cardano.org/environments/mainnet/byron-genesis.json
curl -O https://book.world.dev.cardano.org/environments/mainnet/shelley-genesis.json
curl -O https://book.world.dev.cardano.org/environments/mainnet/alonzo-genesis.json
curl -O https://book.world.dev.cardano.org/environments/mainnet/conway-genesis.json
sed -i config.json -e "s/127.0.0.1/0.0.0.0/g" # <- Allows you to access prometheus metrics from outside (be careful on cloud and public instances)
docker run -d \
--restart=always \
--name cardano-node-mainnet \
-p 12798:12798 \
-p 12788:12788 \
--log-driver syslog --log-opt syslog-address="udp://localhost:5514" --log-opt syslog-format="rfc3164" --log-opt tag="cardano-node" \
-v /data-nvme/CARDANO/node-config:/configuration \
-v /data-nvme/CARDANO/data:/data/db \
-v /data-nvme/CARDANO/ipc:/ipc \
-e CARDANO_CONFIG=/configuration/config.json \
-e CARDANO_TOPOLOGY=/configuration/topology.json \
-e CARDANO_SOCKET_PATH=/ipc/node.socket \
-e CARDANO_DATABASE_PATH=/data/db \
inputoutput/cardano-node:8.1.2 run
or
--log-driver json-file --log-opt max-size="200k" --log-opt max-file="10" \
Ogmios
No need to sync
Start Ogmios:
mkdir -p /data-nvme/CARDANO/config/{genesis,cardano-node}
cd /data-nvme/CARDANO/config
cd /data-nvme/CARDANO/config/genesis
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/alonzo.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/byron.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/conway.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/shelley.json
cd /data-nvme/CARDANO/config/cardano-node
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/cardano-node/config.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/cardano-node/topology.json
docker run -d \
--name ogmios-mainnet \
-p 1337:1337 \
-v /data-nvme/CARDANO/config:/config \
-v /data-nvme/CARDANO/ipc:/ipc \
--log-driver syslog --log-opt syslog-address="udp://localhost:5514" --log-opt syslog-format="rfc3164" --log-opt tag="ogmios" \
cardanosolutions/ogmios:v5.6.0-mainnet \
--node-socket /ipc/node.socket \
--node-config /config/cardano-node/config.json \
--host 0.0.0.0
or
--log-driver json-file --log-opt max-size="200k" --log-opt max-file="10" \
Kupo
It took ~3 days to sync
Start Kupo:
mkdir -p /data-nvme/CARDANO/config/{genesis,cardano-node}
cd /data-nvme/CARDANO/config
cd /data-nvme/CARDANO/config/genesis
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/alonzo.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/byron.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/conway.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/genesis/shelley.json
cd /data-nvme/CARDANO/config/cardano-node
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/cardano-node/config.json
curl -O https://raw.githubusercontent.com/input-output-hk/cardano-configurations/master/network/mainnet/cardano-node/topology.json
docker run -d --name kupo \
-v /data-nvme/CARDANO/db-mainnet:/db \
-v /data-nvme/CARDANO/ipc:/ipc \
-v /data-nvme/CARDANO/config:/config \
-p 1442:1442 \
--log-driver syslog --log-opt syslog-address="udp://localhost:5514" --log-opt syslog-format="rfc3164" --log-opt tag="kupo" \
cardanosolutions/kupo:v2.5.0 \
--node-socket /ipc/node.socket \
--node-config /config/cardano-node/config.json \
--host 0.0.0.0 \
--workdir /db \
--since origin \
--match "*" \
--prune-utxo \
--defer-db-indexes
or
--log-driver json-file --log-opt max-size="200k" --log-opt max-file="10" \
Health Check
Kupo Health
curl http://192.168.2.19:1442/health
Ogmios Health
curl http://192.168.2.19:1337/health | jq
curl http://192.168.2.19:1337/metrics
Get mempool information for a cardano node
./cardano-node-8.1.2-macos/./cardano-cli query tx-mempool info --mainnet --socket-path /tmp/cardano.sock
{
"capacityInBytes": 178176,
"numberOfTxs": 0,
"sizeInBytes": 0,
"slot": 101955053
}
Cardano Submit API
docker run \
-d \
--name cardano-submit-api \
-e NETWORK=mainnet \
-v /data-nvme/CARDANO/ipc:/node-ipc \
-p 8090:8090 \
--restart=always \
--add-host=host.docker.internal:host-gateway \
--log-driver syslog \
--log-opt syslog-address="udp://localhost:5514" \
--log-opt syslog-format="rfc3164" \
--log-opt tag="cardano-submit-api" \
inputoutput/cardano-submit-api:8.1.2
docker logs -f cardano-submit-api