CAT20铸造手把手教程-从零开始新手指南
September 14th, 2024

本人主要分享撸毛|打新|套利相关项目信息,欢迎关注我的推特@qingchejun

UNISAT上的FBCAT-20 MINT结束了,我重新梳理了一个教程,本文主要内容如下:

• 服务器部署与环境配置

• CAT Protocol 安装与编译

• Docker 容器运行

• 钱包创建与管理

• 节点同步状态监控

• 手动铸造操作

• 自动化铸造工具使用

适合: 初学者到中级用户,预计1~2小时可完成。


0.准备工作

  1. 部署服务器:我用的是阿里云的 Ubuntu 服务器。选择适当的配置,确保有足够的存储空间(2CPU+4G+至少 50GB硬盘),按量付费会比较灵活,服务器购买入口(未夹带私货):https://ecs-buy.aliyun.com/ecs?spm=5176.8789780.J_4267641240.2.7c4e39fbB77NYx#/custom/postpay/ap-northeast-1,按下图选择即可,未注明的按默认处理

2. 连接到服务器:使用 SSH 客户端(如 PuTTY 或终端)连接到您的服务器。

以通过终端(Terminal)使用SSH命令连接到服务器为例:

基本格式为: ssh 用户名@服务器IP地址,例如: ssh root@123.456.789.10

如果是首次连接到该服务器,你可能会看到类似这样的提示: The authenticity of host '123.456.789.10 (123.456.789.10)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? 输入 yes 并按回车键。 输入服务器密码 系统会提示你输入密码。输入时,屏幕上不会显示任何字符,这是正常的安全措施。 输入完成后按回车键,即可登录。

3. 更新系统(必做):

sudo apt-get update && sudo apt-get upgrade -y

说明:这个命令会更新系统软件包列表并升级已安装的软件包。

1. 环境配置

安装 Docker、docker-compose 和 Node.js 环境。

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

说明:这些命令会依次安装 Docker、docker-compose、npm、Node.js 和 Yarn。每个命令可能需要一些时间来完成,请耐心等待。

验证安装:

docker --version
docker-compose --version
node --version
npm --version
yarn --version

说明:这些命令会显示各个工具的版本号。如果正确安装,应该能看到版本信息而不是错误消息。


2. 拉取 Git 仓库和编译

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

说明:

  • git clone 会下载 CAT Protocol 的源代码到当前目录。

  • cd cat-token-box 进入下载的目录。

  • yarn install 安装项目依赖,这可能需要几分钟。

  • yarn build 编译项目,也可能需要一些时间。


3.运行 Docker 容器

3.1 运行 Fractal 节点:

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

说明:

  • cd ./packages/tracker/ 进入 tracker 目录。

  • chmod 命令更改目录权限,确保 Docker 可以访问这些目录。

  • docker-compose up -d 启动 Fractal 节点。-d 参数使容器在后台运行。

3.2 运行 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

说明:

  • cd ../../ 返回到项目根目录。

  • docker build 构建 Docker 镜像。

  • docker run 运行 CAT Protocol 索引器。确保 3000 端口未被占用。


4. 创建钱包

创建配置文件:

cd packages/cli
nano config.json

说明:nano config.json会打开 nano 文本编辑器。

在 config.json 中添加以下内容:

{
  "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"
  }
}

保存并退出:在 nano 中,按 Ctrl+X,然后按 Y 确认保存,最后按 Enter 确认文件名。

创建钱包:

yarn cli wallet create

说明:这将创建一个新的钱包。执行后,会看到上图所示的一串助记词,请务必安全地保存好。


5. 查看节点同步状态

输入以下命令,可以随时查看全节点同步情况

sudo docker exec tracker-bitcoind-1 /usr/local/bin/bitcoin-cli -rpcuser=bitcoin -rpcpassword=opcatAwesome getblockchaininfo

6. 进行铸造(Mint)操作

确保节点已完全同步后,可以使用以下命令进行铸造:

sudo yarn cli mint -i 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0 5

说明:

  • 请确保使用正确的输入(UTXO)。

  • 5 表示铸造 5 个 CAT 代币,您可以根据需要调整这个数字。

  • 执行此命令可能需要一些时间,取决于网络状况。

  • 可以在最后加上“--fee-rate 数字”,自定义GAS,以500GAS为例就是这样

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

7. 自动化 Mint 工具

使用说明

为了简化 Mint 过程,我编写了一个可自动匹配实时GAS的全自动化MINT工具,实现了自动循环MINT CAT 代币。

主要组件:

  • get_fee_rate.py:获取当前 GAS 费率的 Python 脚本

  • script.sh:执行 Mint 操作的 主脚本

使用方法

  1. 确保 get_fee_rate.py 和 script.sh 在同一目录下。

  2. 安装依赖: pip install playwright playwright install chromium 说明:这会安装必要的 Python 库和浏览器。

  3. 给予 script.sh 执行权限: chmod +x script.sh 说明:这使得脚本可以被执行。

  4. 运行脚本: ./script.sh 说明:这会启动自动化 Mint 过程。脚本会持续运行,自动处理 Mint 操作。

get_fee_rate.py

cd cat-token-box

进入cat-token-box目录。

复制以下内容到文件中:

from playwright.sync_api import sync_playwright
import sys

def get_fractal_fee_rate():
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        try:
            page.goto('https://explorer.unisat.io/fractal-mainnet/block')
            page.wait_for_load_state('networkidle')
            xpath = '//*[@id="__next"]/div[1]/div[2]/div[2]/div/div/span[1]'
            fee_element = page.wait_for_selector(xpath, state="attached", timeout=30000)
            
            if fee_element:
                text = fee_element.inner_text().strip()
                if text.isdigit():
                    fee = int(text)
                    adjusted_fee = int(fee * 1.03)  # 将费率提高 3%
                    print(f"{fee},{adjusted_fee}")
                    return
                else:
                    print(f"提取的文本不是数字: {text}", file=sys.stderr)
            else:
                print("未找到匹配的GAS费率元素", file=sys.stderr)
        except Exception as e:
            print(f"获取Fractal网络GAS费率时出错: {e}", file=sys.stderr)
        finally:
            browser.close()
    print("error")

if __name__ == "__main__":
    get_fractal_fee_rate()

保存并退出:按 Ctrl+X,然后 Y,最后 Enter。

script.sh

创建文件:

nano script.sh

复制以下内容到文件中:

#!/bin/bash

last_used_index=-1

get_next_input() {
    local base_txid="45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b"
    last_used_index=$((last_used_index + 1))
    echo "${base_txid}_${last_used_index}"
}

get_gas_fee() {
    local result=$(python3 get_fee_rate.py 2>/dev/null)
    if [[ $result == *","* ]]; then
        IFS=',' read -ra FEES <<< "$result"
        echo "${FEES[1]}"
    else
        echo ""
    fi
}

while true; do
    current_fee=$(get_gas_fee)
    if [[ $current_fee =~ ^[0-9]+$ ]]; then
        echo "当前GAS费用: $current_fee sats/vB"
        
        new_input=$(get_next_input)
        echo "尝试使用输入: $new_input"
        
        command="sudo yarn cli mint -i $new_input 5 --fee-rate $current_fee"
        output=$($command 2>&1)
        
        if echo "$output" | grep -q "No token found for tokenId"; then
            echo "无可用UTXO,尝试下一个输入"
            continue
        elif echo "$output" | grep -q "Start merging your \[CAT\] tokens"; then
            echo "Mint操作开始..."
            if echo "$output" | grep -q "mint failed"; then
                echo "Mint操作失败,等待60秒后重试"
                sleep 60
            else
                echo "Mint操作成功"
            fi
        else
            echo "未知错误,等待60秒后重试"
            sleep 60
        fi
    else
        echo "无法获取有效的GAS费用,等待10秒后重试"
        sleep 10
    fi

    sleep 1
done

保存并退出:按 Ctrl+X,然后 Y,最后 Enter。

至此,在终端中运行 ./script.sh,回车即可。

本教程完。


本文参考教程:

Subscribe to 青澈君
Receive the latest updates directly to your inbox.
Nft graphic
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from 青澈君

Skeleton

Skeleton

Skeleton