Mina 开发者文档
在本节中,我们将连接到主网网络并发送我们的第一个交易。让我们首先启动节点,然后开始发出命令。
连接到主网的第一步是安装最新的守护程序版本。请按照下面的操作系统说明操作。
首先删除旧的守护程序,防止在升级新版本时出现错误。然后可以通过下面的指令安装最新版本:
sudo apt-get remove -y mina-testnet-postake-medium-curves
echo "deb [trusted=yes] http://packages.o1test.net release main" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update
sudo apt-get install -y curl unzip mina-mainnet=1.1.5-a42bdee
通过运行mina version
检查守护进程是否正确安装。输出应该是Commit a42bdeef6b0c15ee34616e4df76c882b0c5c7c2a on branch master.
由于这种技术仍然相对较新,在一些罕见的情况下,您的节点可能会遇到一些问题。我们不希望您的节点被破坏,您却还没有意识到这个问题! 因此,我们为您制作了一些官方支持的自动重启流程。我们将在未来的版本中迭代这些内容。
首先,在使用自动重启流之前,我们将手动运行它,以确保一切正常运行。
注意:如果您使用的是赫兹纳(Hetzner)主机,那么我们目前正在经历这样的问题,我们的软件被赫兹纳(Hetzner)认为是恶意的。请参阅“故障诊断”页面的“网络”部分,来了解如何在启动节点之前缓解此问题。
运行以下命令启动一个Mina节点实例并连接到现有网络:
mina daemon --generate-genesis-proof true --peer-list-url https://storage.googleapis.com/mina-seed-
lists/mainnet_seeds.txt
如果您有一个带有质押的密钥,并且希望生成区块,在启动程序时请提供参数--block-producer-key /keys/my-wallet,如果不是默认值,则用您的私钥路径替换/keys/my-wallet。
上面指定的-peer-list参数指的是种子对等地址——这是我们将在网络上连接到的初始对等节点。因为Mina是一个点对点协议,所以我们并不依赖单一的集中式服务器。
请参阅此处了解首次运行节点时的常见问题。
您还没做完呢!现在您已经通过运行独立进程确认了一切正常,重要的是我们要以一种会在故障时自动重启的方式启动Mina。
首先用Ctrl-C关闭现有的Mina守护进程,然后继续阅读:
确保您注册的私钥位于~/keys/my-wallet。
添加一个文件~/.mina-env包含以下内容:
CODA_PRIVKEY_PASS="private key password"
EXTRA_FLAGS=" --file-log-level Debug"
您可以在合适的时候在EXTRA_FLAGS中添加额外的标记。
Mina将在一个名为~/peers.txt的文件中寻找它的对等节点,运行以下命令创建它:
curl https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt > ~/peers.txt
然后运行以下命令启动一个Mina节点实例并连接到现有网络:
systemctl --user daemon-reload
systemctl --user start mina
systemctl --user enable mina
sudo loginctl enable-linger
这些命令将允许节点在退出后继续运行,并在计算机重新启动时自动重新启动。
默认情况下,节点使用默认的8302外部端口连接网络。这可以使用-external-port标志来更改,您只需将其添加到EXTRA_FLAGS中即可。
您还可以查看在后台运行并自动重启的Mina进程本身。
这个命令会让您知道Mina在开始时是否有任何问题。
systemctl --user status mina
您可以停止Mina,并停止自动重启服务:
systemctl --user stop mina
手动重新启动它:
systemctl --user restart mina
查看日志:
journalctl --user -u mina -n 1000 -f
在某些情况下,为了查看日志,您需要执行以下命令:
journalctl --user-unit mina -n 1000 -f
该命令将显示最后1000行并从那里进行跟踪。
当使用Docker运行您的守护进程时,首先要确保您的私钥具有正确的权限。
cd ~
chmod 700 ~/keys
chmod 600 ~/keys/my-wallet
mkdir ~/.mina-config
现在只需使用密钥和安装的~/mina-config来运行镜像:
docker run --name mina -d \
-p 8302:8302 \
--restart=always \
--mount "type=bind,source=`pwd`/keys,dst=/keys,readonly" \
--mount "type=bind,source=`pwd`/.mina-config,dst=/root/.mina-config" \
-e CODA_PRIVKEY_PASS="YOUR PASSWORD HERE" \
minaprotocol/mina-daemon-baked:1.1.5-a42bdee \
daemon \
--block-producer-key /keys/my-wallet \
--insecure-rest-server \
--file-log-level Debug \
--log-level Info \
--peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
运行docke logs -f mina
并查看日志,如果它崩溃了,请将日志输出保存到文件docker logs mina > mina-log.txt
和将输出内容公布在 # mentor-nodes频道或将完整的~ / .mina-config/mina.log
附加到一个代码托管网站中,并在Discord中讨论这个问题。
运行docker exec -it mina mina client status
来监控网络的连接,您应该很快就会找到至少10个对等节点,并可以观察区块高度/最大观察区块高度的增加。
如果你在尝试运行Docker容器时遇到[Warn] Shutdown before Coda instance was created, not saving a visualization
, 请增加Docker容器被允许使用的资源.
现在我们已经启动了一个节点并运行了Mina守护进程,打开另一个shell并运行以下命令:
mina client status
当第一次启动时,mina client status
连接到守护进程可能需要一分钟。所以如果您看到Error: daemon not running,See mina daemon,
然后稍等一下,再试一次。由于我们使用mina client status命令通信的方式有点特别,如果您正在使用Sandbox节点的话,您需要在容器内部运行mina client status
:
docker exec -it mina bash
我们很有可能将看到一个包括以下字段的回应:
...
Peers: Total: 4 (...)
...
Sync Status: Bootstrap
如果您看到Sync Status: Bootstrap,这意味着节点正在引导,需要与网络的其他部分同步。在这里,您可能需要耐心,因为这一步可能需要节点花费一些时间来获得所需的所有数据。
一段时间后,您的节点应该连接到更多的对等节点,然后状态应该变为Sync Status: Catchup
,这意味着我们正在收集最近的区块和状态从而试图赶上最高的区块。
当同步状态达到Synced且节点连接到一个或多个对等节点时,我们将成功连接到网络。同步后,我们也会看到相应的守护进程日志:[Info] Mina daemon is now synced.
如果引导状态持续了一个多小时,那么端口配置可能有问题。
现在我们有了一个完全同步的节点,我们可以了解这个守护进程的一些更高级的特性,比如支付及质押和委托。如果您想赚更多的代币,请查看基金会委托项目。
测试网点数是专为追踪对测试网的贡献而设计的,测试网点数没有现金或其他货币价值。测试网点数不可转让,不可兑换或交换任何加密货币或数字资产。我们可以随时修改或删除测试网点数。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!