# 分型网生态 CAT Protocol 铸造教程

By [sddcg](https://paragraph.com/@sddcg) · 2024-09-11

---

晚上看到各个群里都在打cat，我也来凑凑热闹，感谢乐于奉献的大佬们提供教程，让我明白了如何部署，为了让更多小伙伴少走弯路，我就借花献佛也出份教程。（后面新增疑难杂症环节）

> 我已经准备了4台服务器，有需要代打的小伙伴可以联系我，代打费用比 三方网站便宜很多，只收取10%的费用，欢迎有需要的老板联系。另外自己部署环境有困难的也可以找我，帮你部署cat20环境。
> 
> 联系方式wx: t52861700

1\. 准备工作
========

因为分型链需要在21000区块后才做索引，我们先要铸造CAT，需要自己准备不少东西

1.  服务器一台
    
    建议创建一个 **ubuntu 服务器**来跑，避免环境部署问题，可以选用腾讯云、contabo等云服务器。**注意选择国外服务器避免拉取、安装问题**，注意配置CPU 2 核、内存 4GB，并且使用按量付费。
    
    服务器用于部署 Fractal 全节点、索引器， 并运行 mint脚本
    
2.  FB代币
    
    分型连使用FB作为gas，需要准备足够的FB，目前链上gas被打到1800聪了，建议准备1FB起步吧，想大批量那就需要更多，另外大批量的最好进行utxo的拆分
    
3.  SSH远程工具
    
    比如FinalShell、xshell 等用来远程登录服务器进行操作
    

2\. 服务器基本环境部署
=============

### **首先安装 Docker、docker-compose和 node.js 环境**

    sudo apt-get update
    
    # 安装docker
    sudo apt-get install docker.io -y
    
    # 安装 docker-compose
    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
    
    # 安装npm及nodejs
    sudo apt-get install npm -y
    sudo npm install n -g
    sudo n stable
    
    # 安装yarn
    sudo npm i -g yarn
    

### **拉取cat的代码并编译**

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

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

3\. Fractal 全节点部署
-----------------

CAT 是在 Fractal 主网上的协议，所以需要在服务器上运行一个 Fractal 全节点，由于现在 Fractal 网络的区块不多，所以同步是特别快的，这个和网络速度有关系。

部署Fractal 节点命令如下

    cd ./packages/tracker/
    sudo chmod 777 docker/data
    sudo chmod 777 docker/pgdata
    sudo docker-compose up -d
    

运行完他会自动进行同步的，直接进行下一步就可以了

4\. 索引器部署
=========

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
    

5\. 创建配置文件及本地钱包
===============

在完成全节点和索引器的运行后，接下来要创建配置文件。首先要在 cat-token-box/package/cli 目录下创建 config.json文件，命令如下：

    cd ~/cat-token-box/packages/cli
    vim config.json
    

然后复制下面的配置信息，在服务器上按一下 i 键，然后鼠标邮件进行粘贴，之后按 esc 键，然后输入 `:wq` 再回车保存。

> 注意 **其中maxFeeRate为gas**，这个要根据当前网络情况进行调整，可以在配置文件中调整也可以在后面的命令行中设置

    {
      "network": "fractal-mainnet",
      "tracker": "http://127.0.0.1:3000",
      "dataDir": ".",
      "maxFeeRate": 1800,
      "rpc": {
          "url": "http://127.0.0.1:8332",
          "username": "bitcoin",
          "password": "opcatAwesome"
      }
    }
    

6\. 创建本地钱包并转入FB
===============

执行下面的指令创建新钱包

    sudo yarn cli wallet create
    

如果显示类似下面的信息，那么就是创建完成了（这里码住了助记词），**注意自己要保管好助记词哦**

![](https://storage.googleapis.com/papyrus_images/d8124d9cb1adbd64ab56a40c8d23fa1c8c6373a4920e4a117a311b1962da847a.png)

将助记词导入到自己的钱包中，就可以得到对应的地址了。也可以通过如下命令查看地址：

    yarn cli wallet address
    

然后给这个地址转入足够的FB就可以了

7\. 等待同步到位
==========

在mint前需要等待区块同步到位，可以通过查看钱包余额的方式来检查是否同步完成

    yarn cli wallet balances
    

如果没同步完，会显示如下内容，据说90%以上的比例就可以进行mint了，也有人说80%就行，但我80%试了不行

![](https://storage.googleapis.com/papyrus_images/2d069515c11a91551470d41dddd63b10446ed56016721d7e48019d493b1bd106.png)

8\. mint cat
============

单次mint使用如何命令：

    sudo yarn cli mint -i 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0 5 --fee-rate 1800
    

> 这里可以加后面 --fee-rate 1800 参数，也可以不加，不加的话自动取配置文件中设置的gas

每次的 mint 指令只能铸造一次，所以需要脚本来重复执行，在当前的 cli 目录下创建一个 script.sh 文件，内容复制下面的：

    #!/bin/bash
    
    command="sudo yarn cli mint -i 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0 5 --fee-rate 1800"
    
    while true; do
        $command
    
        if [ $? -ne 0 ]; then
            echo "命令执行失败，退出循环"
            exit 1
        fi
    
        sleep 1
    done
    

然后添加运行权限 `chmod +x script.sh`

最后运行这个脚本文件就可以重复 mint 了，如果需要后台执行的可以查一下 `nohup` 和`screen` 指令。

> 其他相关命令待补充
> 
> 检查mint数量，在packages/cli目录下输入： yarn cli wallet balances

疑难杂症环节：
=======

大家可能会遇到可能千奇百怪的问题，部分问题是钱包地址原因，还有部分问题是节点原因，解决办法有：

1.  如果是钱包问题
    
    *   先看看区块同步进度是否正常
        
    *   然后就检查钱包余额，是否有交易卡住了，
        
    *   如果都没问题还提示余额不足，那就钱包进行几次自转，再不行就换个钱包
        
2.  如果是服务器区块问题，就重启全节点和索引器
    
        # 重启全节点
        cd ~/cat-token-box/packages/tracker
        docker compose down
        docker compose up -d
        #查看节点日志
        docker compose logs -f
        
        # 重启索引器
        docker restart tracker
        
        # 查看索引器日志
        docker logs -f -n 100 tracker
        
    
3.  另外就是区块同步很慢的问题，这个大家如果能找到现成的数据，可以通过hsql进行导入，免去漫长的索引过程。 如果找不到数据，又不想等的话，也可以联系我。

---

*Originally published on [sddcg](https://paragraph.com/@sddcg/cat-protocol)*
