今天凌晨在 Fractal Bitcoin 上出的协议,建议创建一个 ubuntu 服务器来跑,避免环境部署问题,可以选用腾讯云等云服务器。注意选择国外服务器避免拉取、安装问题,注意配置CPU 2 核、内存 4GB,并且使用按量付费
如果不担心安全问题的也可以参考一键部署教程:
首先安装 Docker、docker-compose和 node.js 环境
sudo apt-get update
sudo apt-get install docker.io -y
VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
DESTINATION=/usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION
sudo apt-get install npm -y
sudo npm install n -g
sudo n stable
sudo npm i -g yarn
拉取 github 的仓库,并且进行编译
git clone https://github.com/CATProtocol/cat-token-box
cd cat-token-box
sudo yarn install
sudo yarn build
CAT 是在 Fractal 主网上的协议,所以需要在服务器上运行一个 Fractal 全节点,由于现在 Fractal 网络的区块不多,所以同步是特别快的
运行 Fractal 节点:
cd ./packages/tracker/
sudo chmod 777 docker/data
sudo chmod 777 docker/pgdata
sudo docker-compose up -d
同时,CAT Protocol 需要运行一个本地的索引器,下面是编译和运行的命令
cd ../../
sudo docker build -t tracker:latest .
sudo docker run -d \
--name tracker \
--add-host="host.docker.internal:host-gateway" \
-e DATABASE_HOST="host.docker.internal" \
-e RPC_HOST="host.docker.internal" \
-p 3000:3000 \
tracker:latest
在完成 Docker 的运行后,可以创建本地的钱包,首先要创建 package/cli 目录下的 config.json文件,到达这一步你应该在 /cat-token-box 目录下,逐步运行以下指令
cd packages/cli
vim config.json
然后复制下面的配置信息,在服务器上按一下 i 键(下面 username和password需要和 tracker/.env 的一致,可以根据需要修改),复制之后按 esc 键,然后输入 :wq
再回车保存
{
"network": "fractal-mainnet",
"tracker": "http://127.0.0.1:3000",
"dataDir": ".",
"maxFeeRate": 30,
"rpc": {
"url": "http://127.0.0.1:8332",
"username": "bitcoin",
"password": "opcatAwesome"
}
}
至此,所有的配置项目都完成了,执行下面的指令创建新钱包
sudo yarn cli wallet create
如果显示类似下面的信息,那么就是创建完成了(这里码住了助记词)
运行下面的指令进行 mint
sudo yarn cli mint -i 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0 5
每次的 mint 指令只能铸造一次,所以需要脚本来重复执行,在当前的 cli 目录下创建一个 script.sh 文件,内容复制下面的:
#!/bin/bash
command="sudo yarn cli mint -i 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0 5"
while true; do
$command
if [ $? -ne 0 ]; then
echo "命令执行失败,退出循环"
exit 1
fi
sleep 1
done
然后添加运行权限 chmod +x script.sh
最后运行这个脚本文件就可以重复 mint 了,如果需要后台执行的可以查一下 nohup
和screen
指令