门罗币:运行一个门罗币节点(Monero Node)

本文介绍如何在 Debian 上运行一个门罗币节点,记录在一台甲骨文 ARM 机器(运行Debian 11)编译运行 monero 的过程。

运行门罗币节点最大的问题就是存储空间了,截至 2022 年 1 月 12 日,完整的门罗节点已经有 122G 了,磁盘空间小的建议运行一个 pruned node。

#安装

各大软件仓库都包括了 Monero,但是 Debian 仓库中当前的 monero/stable 0.17.2.0+~0+20200826-1 arm64 在甲骨文 ARM 机器上有 bug,同步节点到一半会 segment fault,找不出原因,所以自己编译,测试 github 仓库中 0.17.3 版本编译后,正常运行。

编译 Monero 请参照官方教程,下面记录了 Debian11 编译的命令顺序,不同系统可能不同。

sudo apt update && sudo apt install build-essential cmake pkg-config libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev libpgm-dev qttools5-dev-tools libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libudev-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev ccache doxygen graphviz

sudo apt install libgtest-dev
cd /usr/src/gtest
sudo cmake .
sudo make
sudo mv lib/libg* /usr/lib/ # 这里和官方教程里写的不一样,请自行判断文件位置

编译需要的工具已经准备好了,下面克隆仓库,并更新 submodule

git clone --recursive https://github.com/monero-project/monero
git submodule update --init --force

这种对安全性,稳定性要求较高的软件,推荐使用最新的 release 分支,但是Monero 对 p2pool 的支持从v0.17.3.0开始,所以切换到这个分支。如果没有特殊需求,请切换到最新的 Release 分支。

git checkout v0.17.3.0

然后开始编译

make -j$(nproc)

编译好的二进制文件,在monero/build/Linux/_HEAD_detached_at_v0.17.3.0_/release/bin里,把这个文件夹移动到用户根目录下,添加到 PATH 里,方便调用。

mv build/Linux/_HEAD_detached_at_v0.17.3.0_/release/bin ~/.bin

PATH="$PATH:$HOME/.bin"

#同步区块

要同步 122G 的区块,非常耗时,放在 screen 下面跑。

screen -S mo

打开一个叫 mo 的 screen,在里面运行

monerod

使用Ctrl + A + D退出 screen,等待门罗区块同步。使用

screen -r mo

重新打开运行 monerod 的 screen。

#开放端口

如果运行门罗节点的机器上有重要数据,那么不建议开放任何端口。但是一个公共门罗节点,对门罗的稳定,安全,是有帮助的,决定权在你。

图片来自互联网