Cover photo

CAT Protocol 铸造教程

今天凌晨在 Fractal Bitcoin 上出的协议,建议创建一个 ubuntu 服务器来跑,避免环境部署问题,可以选用腾讯云等云服务器。注意选择国外服务器避免拉取、安装问题,注意配置CPU 2 核、内存 4GB,并且使用按量付费

如果不担心安全问题的也可以参考一键部署教程:

https://mirror.xyz/0x6e5f54B4c182baFDA14426235F24B80e638E109a/aN73xiebhmCABVeoQ11sfHomgyjpKkO0kIvtptamSj0

环境配置

首先安装 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

拉取 Git 和编译

拉取 github 的仓库,并且进行编译

git clone https://github.com/CATProtocol/cat-token-box
    cd cat-token-box
sudo yarn install
sudo yarn build

运行 docker 容器

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 了,如果需要后台执行的可以查一下 nohupscreen 指令