CAT Protocol 挖矿还是有一定门槛的,在具体实操时我也遇到一些问题,同时在社区和 Github Issue 中也看到不少人遇到了类似的问题,所以这里给大家梳理一些我遇到的常见问题,并且是如何解决的,确保你是新手也可以进行 CAT 挖矿。
macOS Sonoma 14.6.1
Apple M1 Max Chip
A:目前实操下来,比较靠谱的教程是这篇,但它不是通过 macOS 系统操作的,我根据该教程将重点内容重新理了一下,可以参照后续的 macOS 操作部分。
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
brew install 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 install stable
之后你可以使用 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"
A:因为 CAT Protocol 运行需要 node.js >20 的版本,而系统中有时候会同时存在很多版本,即便下载了 >20 的版本,但可能真实使用的还是 <20 的版本,所以要学会正确切换版本。
1. 检查当前的 Node.js 版本
node -v
2. 升级版本
brew install node@20
或者,如果你希望直接升级现有的 Node.js 安装到最新的 20.x 版本,可以使用:
brew upgrade node
3. 切换到新版本的 Node.js
brew link --overwrite node@20
如果你之前安装了其他版本(比如 18),并且想要移除它们,你可以使用:
brew uninstall node@18
完成安装后,运行以下命令确认当前 Node.js 版本是否为 20.x:
node -v
A:确保 Docker 应用程序在运行。如果你在 Mac 上使用 Docker Desktop,请打开 Docker Desktop 并确保其已启动,直到看到 “Docker is running” 的提示。如果 Docker Desktop 没有启动,请手动启动它。
1. 检查 Docker Daemon 状态
docker info
如果 Docker Daemon 未启动,你可能会看到错误提示。确保 Docker Daemon 已启动。
2. 启动 Docker Daemon
open /Applications/Docker.app
这将会启动 Docker Desktop,并初始化 Docker 守护进程。
3. 重启 Docker
有时候,简单的重启可以解决问题。你可以通过以下命令来重启 Docker:
docker restart
No token found for tokenId: 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0
是什么意思?A:这代表你的节点还没有同步完,随着现在 mint 的人数越来越多,节点同步越来越慢,所以没有拿到 token 信息,这需要你耐心等待,或者使用云服务器,使用家里的网络和 macOS 同步会比较慢。
A:该文件在 packages/tracker/路径下,可使用 vim docker-compose.yml 来进行修改,也可以通过桌面进入文件夹,找到这个文件,通过其他的编辑器进行修改。
安装 Docker:https://www.docker.com/
注:以上安装我们会遇到一些问题,我会在 QA 部分进行解释。
克隆项目
git clone https://github.com/CATProtocol/cat-token-box
跳转到项目目录
cd cat-token-box
编译
yarn install
yarn build
运行 docker
直接点击 docker app
运行全节点,先跳转到 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
yarn cli mint -i 45ee725c2c5993b3e4d308842d87e973bf1951f5f7a804b21e4dd964ecd12d6b_0 5
注:网上已经列了一些教程,如果你会使用 ChatGPT 可以结合 GPT 将 Linux 或者 Unbuntu 的终端操作语言转化成 macOS 的操作语言。
以上是我实操中遇到的一些问题以及在社区中看到的常见问题,如果你还有其他问题,欢迎留言补充,我会继续丰富,帮助更多的人。