仮想通貨のYentenの公式ウォレット「Yenten Core」のデーモンをCentOS 7.4で動かす方法です。本記事ではサーバとして動作することを前提としています。
※ソフトウェアのインストール・実行は自己責任です。特に仮想通貨はお金の絡むことなので、十分にお気をつけください。また基本的なことは知っている、もしくは調べられる人向けに書いているため、コマンドなど細かく説明していません。
作成日:2018/01/23
<環境>
https://github.com/conan-equal-newone/yenten
https://github.com/conan-equal-newone/yenten/releases
<関連記事>
- WindowsでYentenのウォレットを動かす
- Raspberry PiでYentenのウォレットを動かす
- CentOS 6.9でYentenのウォレットを動かす
- CentOS 7.4でYentenのウォレットを動かす
公式ウォレットをソースコードからビルドする
1-1. ビルド環境構築(yum標準リポジトリ)
~ $ sudo yum install gcc gcc-c++ kernel-devel ~ $ sudo yum install libtool automake autoconf ~ $ sudo yum install pkgconfig ~ $ sudo yum install python-devel ~ $ sudo yum install wget
ライブラリは個別にビルドし、/home/wallet/commonに配置します。
1-2. Berkeley DB 4.8のインストール
~ $ wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz ~ $ tar xvzf db-4.8.30.NC.tar.gz ~ $ cd db-4.8.30.NC/build_unix/ ~/db-4.8.30.NC/build_unix $ ../dist/configure --prefix=/home/wallet/common --enable-cxx ~/db-4.8.30.NC/build_unix $ make ~/db-4.8.30.NC/build_unix $ make install ~/db-4.8.30.NC/build_unix $ cd ../../
1-3. OpenSSL(1.0.2系最新)のインストール
~ $ wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz ~ $ tar xvzf openssl-1.0.2n.tar.gz ~ $ cd openssl-1.0.2n/ ~/openssl-1.0.2n $ ./config --prefix=/home/wallet/common --openssldir=/home/wallet/common/openssl -fPIC shared ~/openssl-1.0.2n $ make ~/openssl-1.0.2n $ make install ~/openssl-1.0.2n $ cd ../
※1.1.0系のOpenSSLは別のOSで試したときにエラーとなりました。
1-4. Boostのインストール
CentOS 7.4で個別にビルドしたBoost(1_65_1)を使おうとしたらconfigure/makeでエラー(configure: error: No working boost sleep implementation found.)となり解決できなかったため、yumでインストールします。
~ $ sudo yum install boost-devel
1-5. Yenten Coreのビルド
ビルドしたファイルの出力先は/home/wallet/yentenとします。
~ $ wget https://github.com/conan-equal-newone/yenten/archive/1.3.1.tar.gz ~ $ tar xvzf 1.3.1.tar.gz ~ $ cd yenten-1.3.1/ ~/yenten-1.3.1 $ ./autogen.sh ~/yenten-1.3.1 $ LD_LIBRARY_PATH=/home/wallet/common/lib \ LIBS="-lssl -lcrypto -lrt" \ CPPFLAGS=-I/home/wallet/common/include \ LDFLAGS=-L/home/wallet/common/lib \ SSL_CFLAGS=-I/home/wallet/common/include \ SSL_LIBS=-L/home/wallet/common/lib \ CRYPTO_CFLAGS=-I/home/wallet/common/include \ CRYPTO_LIBS=-L/home/wallet/common/lib \ PKG_CONFIG_PATH=/home/wallet/common/lib/pkgconfig \ PKG_CONFIG_LIBDIR=/home/wallet/common/lib \ ./configure --prefix=/home/wallet/yenten \ --enable-upnp-default --without-gui --disable-tests ~/yenten-1.3.1 $ make ~/yenten-1.3.1 $ make install ~/yenten-1.3.1 $ ls -l /home/wallet/yenten/bin 合計 89932 -rwxr-xr-x. 1 wallet wallet 19640592 1月 23 03:31 yenten-cli -rwxr-xr-x. 1 wallet wallet 72444360 1月 23 03:31 yentend
補足
今回のように任意の場所にライブラリを配置し、かつ、/etc/ld.so.confにパスを通さない場合、Yenten Coreを起動する際には環境変数LD_LIBRARY_PATHにライブラリのパスを設定しなければなりません。
~ $ export LD_LIBRARY_PATH=/home/wallet/common/lib ~ $ ./yentend ~ $ ./yenten-cli stop
もしくは
~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yentend ~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yenten-cli stop
Yentenを起動する
2-1. yentendの初回起動(エラー)
yentendを実行するとYentenのデーモンが起動しますが、設定ファイルが無いため、エラーになります。ただ初回起動時にデータのディレクトリを作成するため、エラーでもよいので起動します。
~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yentend Error: To use the "-server" option, you must set a rpcpassword in the configuration file: /home/wallet/.yenten/yenten.conf It is recommended you use the following random password: rpcuser=yentenrpc rpcpassword=hDeEQkU5STWs3ycZ5r4jRti4PzGKP2stEVw8DVwZfRn (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; for example: alertnotify=echo %s | mail -s "Yenten Alert" admin@foo.com
2-2. yenten.confの作成
/home/ユーザ名/.yenten配下にデータが作成されたため、設定ファイルのyenten.confを作成します。rpcxxxの部分は自分の環境に合わせてください。
addnodeは任意ですが、起動後1時間経っても同期が始まらない場合は、下記サイトよりノードのIPアドレスを取得し、設定してください。
https://cryptoservices.net/en/nodes-yenten
~ $ vi /home/ユーザ名/.yenten/yenten.conf rpcuser=user rpcpassword=pass rpcallowip=127.0.0.1 rpcport=11100 daemon=1 server=1 gen=0 addnode=追加ノードIPアドレス
2-3. Yentenの起動
設定ファイル作成後に再度yentendを実行します。実行後は起動したことを確認するため、yenten-cli getinfoを実行します。
~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yentend Yenten server starting ~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yenten-cli getinfo { "version" : 1030100, "protocolversion" : 70006, "walletversion" : 60000, "balance" : 0.00000000, "blocks" : 0, "timeoffset" : 0, "connections" : 0, "proxy" : "", "difficulty" : 0.00006103, "testnet" : false, "keypoololdest" : 1516601896, "keypoolsize" : 101, "paytxfee" : 0.00000000, "relayfee" : 0.00001000, "errors" : "" }
ウォレットを停止するには、yenten-cli stopを実行します。
~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yenten-cli stop Yenten server stopping
2-4. ウォレットの暗号化
ウォレット(wallet.dat)を暗号化するには、yenten-cli encryptwalletを実行します。
※暗号化すると送金等一部の処理に暗号化時に指定したパスフレーズが必要となりますのでご注意ください。
~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yenten-cli encryptwallet "passphrase" wallet encrypted; Yenten server stopping, restart to run with encrypted wallet. The keypool has been flushed, you need to make a new backup.
暗号化後にはYentenが停止するため、再度起動が必要です。
正しく暗号化されたことを確認するため、yenten-cli walletpassphrase でウォレットのパスワードロックを一時的に解除します。エラーが出力されなければ成功です。
~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yentend ~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yenten-cli walletpassphrase "passphrase" 10
2-5. 受け取り用のアドレスを作る
yenten-cli getnewaddress で受け取り用のアドレスを作ります。
~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yenten-cli getnewaddress ikuyani Yh5Q12DsQsF6xPaQXByPdh3HcyjfYgZEz2 ~ $ LD_LIBRARY_PATH=/home/wallet/common/lib ./yenten-cli getaddressesbyaccount ikuyani [ "Yh5Q12DsQsF6xPaQXByPdh3HcyjfYgZEz2" ]
参考になりましたらYentenを寄付していただけると幸いです。
Yentenアドレス:Yh5Q12DsQsF6xPaQXByPdh3HcyjfYgZEz2