本文介绍如何在 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。
#开放端口
如果运行门罗节点的机器上有重要数据,那么不建议开放任何端口。但是一个公共门罗节点,对门罗的稳定,安全,是有帮助的,决定权在你。