Ubuntu 20安装Cardano Node(ada)
环境:ubuntu_20_04
4 vCPU 8 GiB
官方文档:https://docs.cardano.org/en/latest/
1、机器初始化
2、采用Building under Debian/Ubuntu or CentOS
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
需要互动操作
source ~/.ghcup/env
ghcup install ghc 8.6.5
ghcup set ghc 8.6.5
ghc --version
sudo apt-get update
sudo apt-get -y install pkg-config libgmp-dev libssl-dev libtinfo-dev libsystemd-dev zlib1g-dev libsodium-dev automake build-essential libffi-dev libgmp-dev libssl-dev make g++ tmux git jq wget libncursesw5 libtool autoconf
mkdir -p /home/www/.local/bin
$ vim .bashrc
export PATH="~/.local/bin:$PATH"
source .bashrc
cd /home/www
git clone https://github.com/input-output-hk/cardano-node
cd cardano-node
git fetch --all --tags
git checkout tags/1.21.1
#cabal build all
cabal build cardano-cli cardano-node
build 时间很长,耐心等待几个小时。
注:可以通过命令:ghcup tui 来切换ghc版本。
build完后
cp -p dist-newstyle/build/x86_64-linux/ghc-8.6.5/cardano-node-1.21.1/x/cardano-node/build/cardano-node/cardano-node ~/.local/bin/
cp -p dist-newstyle/build/x86_64-linux/ghc-8.6.5/cardano-cli-1.21.1/x/cardano-cli/build/cardano-cli/cardano-cli ~/.local/bin/
cardano-cli --version
cardano-node --version
mkdir -p cardano/{logs,store,config}
cd cardano/config
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-config.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-byron-genesis.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-shelley-genesis.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-topology.json
启动命令:
/home/www/.local/bin/cardano-node run --config config/mainnet-config.json --database-path store/db-mainnet --topology config/mainnet-topology.json --host-addr 0.0.0.0 --port 3001 --socket-path store/node.socket
启动后会同步线上区块链也会花费几个小时。
需要将node.socket路径写入环境变量:
vim .bashrc
export CARDANO_NODE_SOCKET_PATH=/home/www/cardano/store/node.socket
source .bashrc
通过获取当前提示来检查节点是否正在同步。同步时,slotNo应该增加。
cardano-cli shelley query tip --mainnet
{
"blockNo": 36322,
"headerHash": "3f1bea22be21452415851ae670f4bac9340471cb7f2f6a664fac56d7f60dbaad",
"slotNo": 888561
}
使用supervisor管理程序:
cat start.sh
#!/bin/bash
cardano_home=/home/www/cardano
/home/www/.local/bin/cardano-node run --config ${cardano_home}/config/mainnet-config.json --database-path ${cardano_home}/store/db-mainnet --topology ${cardano_home}/config/mainnet-topology.json --host-addr 0.0.0.0 --port 3001 --socket-path ${cardano_home}/store/node.socket
cat cardano.conf
[program:cardano]
command=/home/user/cardano/start.sh
user=user
autostart=true
autorestart=true
stopwaitsecs=60
startretries=100
stopasgroup=true
killasgroup=true
redirect_stderr=true
stdout_logfile=/home/www/cardano/logs/cardano_supervisor.log
其他操作查看官方文档。