运行节点
环境设置
安装 go-quai,Quai Network 的 Go 实现。
安装依赖项
要运行 go-quai 实例,您需要安装一些依赖项。运行节点需要以下依赖项:
Go v1.21.0+
Linux Snap Install:
sudo snap install go –classic
MacOS Brew 安装:
brew install go
Git & Make
Linux安装:
sudo apt install git make
MacOS 安装:
brew install git make
安装
现在您已经安装了基本依赖项,克隆 Go-Quai
克隆 go-quai 存储库并进入目录:
git clone https://github.com/dominant-strategies/go-quai
cd go-quai
此命令将主分支安装到本地计算机。
节点配置
成功安装 go-quai 后,您需要配置节点。network.env.dist
是一个样板节点配置文件。将样板文件复制到 network.env
中,以便我们可以创建自己的自定义配置。
cp network.env.dist network.env
network.env
文件包含许多重要参数,我们将配置这些参数以正确运行节点。下面列出的变量需要为每个经验水平正确设置。
COINBASE
:每个链(位置)中支付采矿奖励的地址。请注意,每个分片有一个币库地址。网络
:您的节点正在运行的网络(测试网、开发网等)。
此文件还包含许多本文不涉及的更高级的参数。
在您喜欢的文本编辑器或 IDE(如 VSCode)中打开配置文件。如果您正在挖矿,请将您打算开采的链的虚拟币库地址替换为您自己的地址。如果您不这样做,您的挖矿奖励将不会发送到您的地址。
将 NETWORK
变量设置为您计划运行的网络。可用的网络选项
运行客户端
要启动节点,我们首先需要构建源代码。您可以通过运行以下命令通过生成文件进行构建:
make go-quai
开始
现在我们已经构建了源代码,我们需要决定要运行的节点类型。根据个人用例和硬件选择全局节点或基本节点。
运行全局节点
全局节点验证 Quai 网络中的所有链。要启动全节点运行,请执行以下操作:
make run-all
运行基本节点
基本节点运行所谓的Quai Network的“切片”。切片是验证素数链、一个区域链和一个区域链的网络子集。在代码库中,切片由其区域和区域索引标识。区域和区域索引为 0 索引,范围为 0-2。
要启动切片节点,请选择区域和区域索引并运行:
make run-slice REGION=0 ZONE=0
节点运营商应自行选择对它们来说最不潜在,以最小化其叔字节速率并最大化网络带宽。为地理组织提供初步建议将加快延迟的最小化。
验证
启动节点将在后台运行 go-quai 的所有实例,并创建一个名为 nodelogs 的目录。来自节点的输出将通过管道传输到nodelogs中特定于上下文.log文件。要查看特定位置的最后 100 行日志输出,请使用:
tail -fn 100 nodelogs/prime.log 或者使用 tail -fn 100 nodelogs/region-2.log 也或者 tail -fn 100 nodelogs/zone-0-0.log
如果您正在运行基本节点,则日志将仅在节点正在验证的上下文中填充。
检查节点日志输出是验证整个节点是否正常运行的最佳方法。
正常运行的节点的输出应如下所示:
INFO [01-30|19:55:15.397] Starting Quai 0.1.0-pre.0 on local testnet
INFO [01-30|19:55:15.414] Maximum peer count ETH=50 total=50
WARN [01-30|19:55:15.460] Disable transaction unindexing for archive node
INFO [01-30|19:55:15.460] Enabling recording of key preimages since archive mode is used
INFO [01-30|19:55:15.460] Set global gas cap cap=50,000,000
INFO [01-30|19:55:15.460] Allocated trie memory caches clean=307.00MiB dirty=0.00B
INFO [01-30|19:55:15.461] Allocated cache and file handles database=/Users/user/Library/Quai/local/zone-0-0/quai/chaindata cache=512.00MiB handles=5120
INFO [01-30|19:55:17.727] Opened ancient database database=/Users/user/Library/Quai/local/zone-0-0/quai/chaindata/ancient readonly=false
INFO [01-30|19:55:17.728] Writing custom genesis block
根据您的节点当前正在执行的操作,您的日志可能看起来与上述不完全相同。
停止
停止节点应在更改配置文件时或在关闭计算机之前完成。可以通过运行以下命令来终止节点实例:
make stop
这将杀死您机器上的所有 go-quai
实例。这有时可能需要几秒钟才能完成。
如果您正在运行矿工,则运行 make stop
将不起作用。您必须在停止节点之前终止矿工进程。
保持
确保您的节点正常运行 对于任何依赖基础设施的功能和整个网络都至关重要。
更新
要更新节点,首先确保使用上述 stop 命令杀死所有 go-quai 实例。
停止节点后,应使用以下方法提取任何更新的代码:
git pull origin main
并使用以下方法重建源代码:
make go-quai
拉取任何新代码并重建源代码后,您可以安全地重新启动节点并继续运行。
在节点或管理器当前运行时启动节点更新过程可能会导致问题。请确保在更新之前停止所有进程。
处理器矿工,GPU还未开放
环境设置
在这里,我们将安装 quai-cpu-miner,Quai Network CPU miner 的 Go 实现。本教程重点介绍 Linux 发行版和 MacOS 系统。如果您使用的是 Windows 计算机,我们建议您使用WSL2.
安装依赖项
要运行 quai-cpu-miner 实例,您需要安装并配置 Quai 节点。这先决条件安装和运行矿工与节点相同。
如果您尚未设置节点,我们建议您通过“运行节点”页在继续之前。
安装芯片矿机
现在我们已经安装了基本依赖项并配置了节点,我们可以继续克隆quai-cpu-miner 回购.
要安装 quai-cpu-miner 并导航到其目录,请运行以下命令:
git clone https://github.com/dominant-strategies/quai-cpu-miner.git
cd quai-cpu-miner
此命令会将主分支安装到本地计算机。
配置
只需将配置模板文件 config.yaml.dist 复制到名为 config.yaml
的本地配置文件中即可。这可以通过导航到配置目录并运行以下命令来完成:
cp config.yaml.dist config.yaml
默认配置足以满足本教程的持续时间。对于更高级的用户,配置文件可用于设置与码头层代理.
在继续之前,请确保导航回 quai-cpu-miner 根目录。
运行矿工
建
与节点类似,我们需要构建源代码来运行矿工。要通过生成文件构建源代码,请运行:
make quai-cpu-miner
开始
在运行矿工之前,您必须连接到完全同步的节点,无论是本地节点还是远程节点。连接到同步节点后,您可以启动矿工的实例。
类似于基节点,矿工在网络层次结构中挖掘一个“切片”,其中包括 prime、一个区域和一个区域链。要启动矿工,您需要指定要挖掘的区域和区域链。区域和区域索引为 0 索引,范围为 0-2。
要启动矿工,请选择区域和区域索引并运行:
# run in terminal
make run-mine region=0 zone=1
# run in background, save log output
make run-mine-background region=2 zone=1
在选择要挖掘的上下文时,需要考虑一些重要事项:
- 每种情况下的块难度(较低的难度 = 找到块的几率较高)
- 对等连接延迟(与对等方的地理距离有关)
优化延迟会大大降低找到获得减少块奖励的叔块的机会。选择区块难度最低的上下文并最小化对等延迟的矿工通常最成功。我们的团队提供了一个 通知最佳上下文选择的指南 基于矿工的地理位置。
验证
根据矿工是否在后台运行,日志将可以在不同的位置查看。
如果您在终端中运行,日志将直接通过管道传输到终端,并且不会保存。如果矿工在后台运行,矿工输出将通过管道传输到具有路径 logs/slice-R-Z.log
的特定于采矿位置.log文件。要查看 Cyprus-100 中最后 1 行日志输出,请运行:
tail -n 100 logs/slice-0-0.log
您还可以通过自己喜欢的IDE轻松查看矿工日志,我们建议使用此方法。日志是验证您的矿工是否正常运行并查看有关效率和开采区块信息的最佳方式。
正在积极挖矿的矿工应该具有类似于以下内容的日志输出:
2023/01/11 12:51:23 Mining Block: [16 22 78] location [0 0] difficulty [29209917 7353733 1913341]
2023/01/11 12:51:25 Zone block : [16 22 78] 0x0000086297dd6d1f635b01e3dc3d0c27d0ed9a571ae4e3e22ba89e876e71e398
2023/01/11 12:51:25 Mining Block: [16 22 79] location [0 0] difficulty [29209917 7353733 1914275]
2023/01/11 12:51:30 Zone block : [16 22 79] 0x000007c8d5b6ce6e7958eef2e3d12524538602400d1291744358efc43f57f266
2023/01/11 12:51:30 Mining Block: [16 22 80] location [0 0] difficulty [29209917 7353733 1915209]
2023/01/11 12:51:31 Zone block : [16 22 80] 0x000008094cf87697189620a51357b54827828fb9a693cc1e082b36736a406fcd
2023/01/11 12:51:31 Mining Block: [16 22 81] location [0 0] difficulty [29209917 7353733 1915209]
2023/01/11 12:51:33 Zone block : [16 22 81] 0x000006fb38aa98adddc3a6b0e5b887a55ea21065f05a5801ddca6aca0deba290
2023/01/11 12:51:33 Mining Block: [16 22 82] location [0 0] difficulty [29209917 7353733 1916144]
2023/01/11 12:51:34 Quai Miner : Hashes per second: 734038.5899168133
矿工日志提供当前正在开采的区块、区块类型、机器的哈希/秒以及许多其他有用的数据。
停
您应该在计划拉取更新、出于任何原因停止节点或关闭机器时停止矿工。在后台运行的矿工实例可以通过运行以下命令来终止:
make stop
如果矿工在您的终端内运行,您可以使用 CTRL+C 终止进程。
保持
确保您的矿工正常运行对于 矿工和整个网络的成功至关重要。有几种方法可以验证您的矿工是否平稳运行。
更新
在更新您的矿工之前,请确保使用上面的 stop 命令杀死任何 quai-cpu-miner
实例。停止矿工后,通过运行以下命令提取任何新代码:
git pull origin main
使用以下方法重建源:
make quai-cpu-miner
完成上述步骤后,您可以重新启动矿工并继续挖矿。
在节点或矿工运行时启动矿工更新过程可能会导致问题。请确保在更新之前停止所有进程。