在树梅派上安装beam钱包
在树梅派上安装beam钱包
TL;DR(最简化步骤)
如果你只是想体验一下树莓派运行beam钱包不想过多了解细节,下面是最简单的步骤:
第一步:安装依赖库,依次在终端输入下面命令:
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install libboost-all-dev
sudo apt-get install openssl
sudo apt-get install qt5-default
sudo apt-get install qtdeclarative5-dev libqt5svg5-dev
sudo apt-get install qttools5-dev-tools qttools5-dev
sudo apt-get install qml-module-qtquick-controls qml-module-qtquick-controls2
第二步:下载源代码:
git clone https://github.com/BeamMW/beam.git
cd beam
git checkout mainnet
第三步:更改一个小bug
终端中输入:
geany ./core/ecc.cpp
打开一个编辑器修改第149行代码:
修改前:if (read(hFile, p, nSize) == nSize)
修改为:if (read(hFile, p, nSize) == (ssize_t) nSize)
第四步:编译
在终端输入:
cmake -DARCH_NATIVE=1 . && make -j 3
第五步:在开始菜单创建beam快捷访问菜单:
sudo mkdir -p /opt/beam
sudo cp ./ui/BeamWallet /opt/beam
sudo cp ./ui/icons/beam_mainnet.png /usr/share/pixmaps/
sudo geany /usr/share/applications/BeamWallet.desktop
在打开的文本编辑器中输入:
[Desktop Entry]
Name=Beam Wallet
Comment=GUI Wallet for BEAM MW Mainnet
Icon=/usr/share/pixmaps/beam_mainnet.png
Exec=/opt/beam/BeamWallet
Type=Application
Encoding=UTF-8
Terminal=false
Categories=Network;
然后保存退出。重启系统,就可以在开始菜单中的网络菜单中找到beam钱包。
详细步骤
只要简单地按照本文介绍的步骤一步一步来,就能把beam钱包和节点安装在树梅派上,三代和四代都可以安装成功。树莓派的SD卡至少要16G,32G的更好,MimbleWimble有良好的可扩展性,所以16GSD卡如果只用作beam节点的话,能用两年不成问题。
准备
beam的交易处理过程需要所在的计算机有正确的时间,因为树梅派没有集成实时时钟程序,所以在运行钱包前请确保时间正确。(我设置了上海时间后没遇到问题)
另外,在编译过程中某些库需要很高的内存,因此需要设置虚拟内存(4G版本的树梅派可以忽略这一步)。
在终端中输入:
sudo geany /etc/dphys-swapfile
会出现一个文本编辑器,把第16行的数字改成2048.,然后保存并退出编辑器。
然后,输入
sudo dphys-swapfile setup
这会在你的SD卡上划出2G的空间作为虚拟内存。
我们可以使用下面两行命令可以在编译完成后关闭虚拟内存:
sudo dphys-swapfile swapoff
sudo dphys-swapfile uninstall
或在上文的setup命令中改回系统默认。
如何编译命令行节点和钱包
首先安装beam的依赖库,依次输入一下命令:
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install libboost-all-dev
sudo apt-get install openssl
现在我们已经做好编译命令行节点和钱包的准备。下一步我们下载beam源代码,并进入beam的正确代码分支来编译可连接beam主网的节点:
git clone https://github.com/BeamMW/beam.git
cd beam
git checkout mainnet
编译前我们要修复一个小bug,下一个版本可能就修复了,不过现在我用的这源代码还未修复。
输入命令:
geany ./core/ecc.cpp
此时会打开文本编辑器编辑ecc.cpp,在149行处的代码需要修改一下
原:if (read(hFile, p, nSize) == nSize)
改为:if (read(hFile, p, nSize) == (ssize_t) nSize)
然后保存,现在就可以编译了 。
如果你想直接编译图形化钱包,可以跳过下面步骤,直接按照下一章节的步骤进行。
复制并输入下面命令:
cmake -DBEAM_NO_QT_UI_WALLET=1 -DARCH_NATIVE=1 . && make -j 3
命令说明:“-j”参数表示的是用几个cpu核心编译,“-j 3”表示用3个,如果你用的是4G版本的树莓派,可以设定“-j 4”,使用4个cpu核心。如果是树莓派4 2G ,可以使用“-j 3”,如果是1G内存或树莓派3,可以使用“-j 2”或 “-j 1”。
2G的树莓派使用“-j 3”是非常顺畅 的,除了在进行到65%处编译一些库文件用到虚拟内存时会变慢。在2G树莓派上编译beam钱包需要大概半个小时。译者用的是4G版本,时间稍微短了一点点。
编译结束后我们得到 以下两个可执行文件:
./beam/beam-node
./wallet/beam-wallet
可以把他们拷贝到一个文件夹中,启动节点方法请参考我之前的文章。
强烈推荐使用快速同步参数“horizon_hi”
和“horizon_lo”
,节省同步时间。
如何安装CLI节点并设置自动启动
如果你想清理编译文件夹以节省你的树莓派的空间,可以创建一个新的文件夹,把beam钱包和节点放到这新文件夹中。你可以直接把可执行文件拷贝到新文件夹。
下面是用命令在你的home文件中创建新文件夹并把beam相关文件拷贝进去:
sudo mkdir -p opt/beam
sudo chown pi:pi opt/beam
cp ~/beam/{beam/beam-node,wallet/beam-wallet} /opt/beam
除了可执行文件,我们还需要在home中为配置文件和节点数据创建一个文件夹:
mkdir -p ~/.local/share/beam
cp ~/beam/{beam/beam-node.cfg,wallet/beam-wallet.cfg} ~/.local/share/beam
现在相关文件都拷贝好了,可以把源代码的文件夹清理了(如果你还要编译图形化钱包就先别清理)。
下面的命令是告诉系统可执行文件和配置的新位置:
geany /home/pi/.bashrc
在文本最后一行加入下面代码:
export PATH=/opt/beam:$PATH
function BeamNode {
pushd ~/.local/share/beam
beam-node $@
popd
}
function BeamCLIWallet {
pushd ~/.local/share/beam
beam-node $@
popd
}
保存退出后,输入:
source ./.bashrc
现在当你打开终端时,你的系统会知道BeamNode和BeamCLIWallet这两个命令的位置,当执行完后会回到你所在的位置。
相对应的配置文件可以这样访问:
geany /home/pi/.local/share/beam/beam-node.cfg
节点配置可以这样访问:
geany /home/pi/-local/share/beam/beam-wallet.cfg
完成后可以输入”BeamNode”来启动第一次同步,这要花上好长时间,在此期间CPU会满载运行。不过不用担心,在同步完成后,计算机资源消耗会接近零。
如何在系统重启时自动运行beam节点?
首先安装tmux,这个软件可以在系统启动时运行一个终端并输入命令行。
sudo apt-get install tmux
然后创建一个cron文件,这个可以在系统启动得时候运行beam节点,输入:
geany /opt/beam/beam.cron
打开文本编辑器输入:
#!/bin/bash
sleep 5
/usr/bin/tmux new-session -d -s beamSession ‘/bin/bash’
/usr/bin/tmux send-keys -t beamSession “source /home/pi/.bashrc” C-m
/usr/bin/tmux send-keys -t beamSession “BeamNode” C-m
然后保存并退出编辑器。注意,在系统重启后,我们设置了5秒后启动节点。这可以让系统先连接网络。另外就是如果一次启动太多任务会导致一些问题,所以你如果想通过这个方式启动多个任务(如CLI钱包),可以适当地增加这个参数值。
现在我们让Cron程序读到这个文件,输入:
crontab -e
如果你第一次使用这个命令,你会被问使用什么编辑器,选择1使用nano(一种文本编辑器)。
然后用方向键选到最后一样,插入下面一行命令:
@reboot /opt/beam/beam.cron
按ctrl + O保存,按ctrl + x 退出这个编辑器。至此,每次启动系统,节点都会跟随启动。打开终端输入下面命令会看到节点运行情况:
tmux attach-session -t beamSession
以上我都是用配置文件来配置节点的,没有添加附加命令。
如何编译安装图形钱包
图形化钱包编译GUI钱包需要另外几个依赖库,输入一下命令进行安装:
sudo apt-get install qt5-default
sudo apt-get install qtdeclarative5-dev libqt5svg5-dev
sudo apt-get install qttools5-dev-tools qttools5-dev
sudo apt-get install qml-module-qtquick-controls qml-module-qtquick-controls2
这些大概要占200m空间。注意,如果你没有编译节点,下面会进行编译,如果你已经编译了节点,你需要先输入:
rm ./CMakeCache.txt
然后输入如下命令,启动编译过程:
cmake -DARCH_NATIVE=1 . && make -j 3
你可以根据你的硬件编辑“-j”参数。
然后是创建新文件夹,把GUI钱包可执行文件转移到这个位置并在开始菜单创建快捷启动方式,输入:
sudo mkdir -p /opt/beam
sudo cp ./ui/BeamWallet /opt/beam
sudo cp ./ui/icons/beam_mainnet.png /usr/share/pixmaps/
sudo geany /usr/share/applications/BeamWallet.desktop
此时会启动一个文本编辑器,把下面文本拷贝到这个文件并保存:
[Desktop Entry]
Name=Beam Wallet
Comment=GUI Wallet for BEAM MW Mainnet
Icon=/usr/share/pixmaps/beam_mainnet.png
Exec=/opt/beam/BeamWallet
Type=Application
Encoding=UTF-8
Terminal=false
Categories=Network;
最后,重启系统或输入:
lxpanelctl restart
在开始菜单中的internet可以找到beam
大功告成。
原文:https://medium.com/beam-mw/how-to-install-beam-on-your-raspberry-pi-448d1cdb5c10