# CAT Protocol 实操疑难问题解答

By [Simon 写字的地方](https://paragraph.com/@simon-2) · 2024-09-12

---

前言
--

CAT Protocol 挖矿还是有一定门槛的，在具体实操时我也遇到一些问题，同时在社区和 Github Issue 中也看到不少人遇到了类似的问题，所以这里给大家梳理一些我遇到的常见问题，并且是如何解决的，确保你是新手也可以进行 CAT 挖矿。

### 操作环境

*   macOS Sonoma 14.6.1
    
*   Apple M1 Max Chip
    

QA
--

### **Q：目前有没有靠谱的教程**

A：目前实操下来，比较靠谱的教程是[这篇](https://mirror.xyz/3p-labs.eth/0IWdR6toFMACCRZTwTAF3XFAv2TiEAPEAHqzVF707g8)，但它不是通过 macOS 系统操作的，我根据该教程将重点内容重新理了一下，可以参照后续的 macOS 操作部分。

### **Q：mac 没有 nvm 和 brew 指令怎么办？（用来安装 node.js）**

A：nvm 和 brew 都可以用来安装 node.js，选其中一个安装即可，但推荐使用 nvm，可以比较好的调整版本。

**1\. 安装 Homebrew**

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

安装完成后，你可以通过以下命令确认 Homebrew 是否已安装成功：

    brew --version
    

**2\. 安装 NVM**

在 Homebrew 安装好之后，使用以下命令安装 NVM

安装完成后，需要在 .bash\_profile 或 .zshrc 文件中添加以下配置：

    export NVM_DIR="$HOME/.nvm"
    [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"
    

可以使用 vim 编辑文件，比如：

    vim ~/.zshrc
    

添加上面的配置后，运行以下命令以使更改生效：

    source ~/.zshrc
    

**3\. 安装 Node.js**

之后你可以使用 nvm 来管理 Node.js 的不同版本，例如：

    nvm use stable
    

⚠️ 这里需要注意，如果终端显示 `zsh: command not found: brew`，证明Homebrew 还没有正确安装，或者它没有添加到系统的路径中。以下是一些排查和解决步骤：

**1\. 确认 Homebrew 是否安装成功**

    ls /usr/local/Homebrew
    

如果没有任何输出，说明 Homebrew 没有成功安装。

**2\. 重新安装 Homebrew**

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

**3\. 检查 Homebrew 是否可以正常使用**

    brew --version
    

如果可以看到 Homebrew 的版本号，说明它已经安装成功。

**4\. 将 Homebrew 添加到 PATH 中**

如果安装了 Homebrew，但仍然提示 command not found，可能是它没有添加到你的 PATH 中。你可以手动将 Homebrew 添加到路径中。

**4.1 编辑 .zshrc 文件**

    vim ~/.zshrc
    

或者使用以下命令：

    nano ~/.zshrc
    

关于 nano 的使用方法，可以自行在网上查找，或者咨询 ChatGPT。

**4.2 在文件中添加 Homebrew 路径**

在 .zshrc 文件的最后添加以下内容：

    export PATH="/usr/local/bin:$PATH"
    

保存并退出编辑器。然后，在终端中运行以下命令来使更改生效：

    source ~/.zshrc
    

**5\. 重启终端**

完成上述步骤后，关闭并重新打开终端，再次输入 brew --version 来确认 Homebrew 是否可以正常运行。

**⚠️ 注意**

**macOS 版本问题**：某些 macOS 版本可能会有不同的默认路径。Homebrew 的默认安装路径在 `/usr/local/bin`，如果是 Apple Silicon 的 M1 或 M2 Mac，Homebrew 的安装路径可能在 `/opt/homebrew/bin`，你可以根据设备调整路径。对于 M1/M2 芯片的 Mac，添加以下路径到 .zshrc：

    export PATH="/opt/homebrew/bin:$PATH"
    

### Q：如何升级 node 版本

A：因为 CAT Protocol 运行需要 node.js >20 的版本，而系统中有时候会同时存在很多版本，即便下载了 >20 的版本，但可能真实使用的还是 <20 的版本，所以要学会正确切换版本。

**1\. 检查当前的 Node.js 版本**

    node -v
    

**2\. 升级版本**

    brew install node@20
    

或者，如果你希望直接升级现有的 Node.js 安装到最新的 20.x 版本，可以使用：

**3\. 切换到新版本的 Node.js**

    brew link --overwrite node@20
    

如果你之前安装了其他版本（比如 18），并且想要移除它们，你可以使用：

    brew uninstall node@18
    

完成安装后，运行以下命令确认当前 Node.js 版本是否为 20.x：

    node -v
    

### Q：如何确保 Docker 已启动

A：确保 Docker 应用程序在运行。如果你在 Mac 上使用 Docker Desktop，请打开 Docker Desktop 并确保其已启动，直到看到 “Docker is running” 的提示。如果 Docker Desktop 没有启动，请手动启动它。

**1\. 检查 Docker Daemon 状态**

如果 Docker Daemon 未启动，你可能会看到错误提示。确保 Docker Daemon 已启动。

**2\. 启动 Docker Daemon**

    open /Applications/Docker.app
    

这将会启动 Docker Desktop，并初始化 Docker 守护进程。

**3\. 重启 Docker**

有时候，简单的重启可以解决问题。你可以通过以下命令来重启 Docker：

### Q：`No token found for tokenId: 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0` 是什么意思？

A：这代表你的节点还没有同步完，随着现在 mint 的人数越来越多，节点同步越来越慢，所以没有拿到 token 信息，这需要你耐心等待，或者使用云服务器，使用家里的网络和 macOS 同步会比较慢。

### Q：如何修改 docker-compose.yml 文件

A：该文件在 packages/tracker/路径下，可使用 vim docker-compose.yml 来进行修改，也可以通过桌面进入文件夹，找到这个文件，通过其他的编辑器进行修改。

macOS 实操部分
----------

### 准备工作

1.  安装 Docker：[https://www.docker.com/](https://www.docker.com/)
    
2.  安装 node.js：[https://nodejs.org/en/download/package-manager](https://nodejs.org/en/download/package-manager)
    

注：以上安装我们会遇到一些问题，我会在 QA 部分进行解释。

**克隆项目**

    git clone https://github.com/CATProtocol/cat-token-box
    

**跳转到项目目录**

    cd cat-token-box
    

**编译**

**运行 docker**

1.  直接点击 docker app
    
2.  运行全节点，先跳转到 tracker 文件夹，所有的 docker 指令运行都在这里
    

    cd packages/tracker/
    

    sudo chmod 777 docker/data
    

    sudo chmod 777 docker/pgdata
    

    docker-compose up -d
    

**运行本地索引器**

构建 Docker 镜像

    docker build -t tracker:latest
    

运行 Docker 容器

    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
    

复制以下内容

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

vim 编辑器点击 i 通过方向键进行操作编译，编译完成后按 ESC，再输入`:wq` 保存退出。当然你也可以通过其他编辑器打开文件，保存编译，是一样的。

**创建钱包**

    yarn cli wallet create
    

### **开始 mint**

    yarn cli mint -i 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0 5
    

注：网上已经列了一些[教程](https://mirror.xyz/3p-labs.eth/0IWdR6toFMACCRZTwTAF3XFAv2TiEAPEAHqzVF707g8)，如果你会使用 ChatGPT 可以结合 GPT 将 Linux 或者 Unbuntu 的终端操作语言转化成 macOS 的操作语言。

写在最后
----

以上是我实操中遇到的一些问题以及在社区中看到的常见问题，如果你还有其他问题，欢迎留言补充，我会继续丰富，帮助更多的人。

---

*Originally published on [Simon 写字的地方](https://paragraph.com/@simon-2/cat-protocol)*
