Webux Lab

By Studio Webux

Cardano Notes

TG
Tommy Gingras Studio Webux 2023-08-27

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

Search