LinuxでXPをPosマイニングする(CUI版)


目的

PoS通貨であるXPをWindows環境でマイニングしている…のですが
なかなか自宅PCをフルタイム稼働させるのが難しい
そこでクラウドサーバ上でフルタイム稼働させれないかと
思い立ったのがきっかけです。

Qt wallet(GUI版)よりメモリを喰わないかなーという理由で今回はGUI版でなくCUI版のものを使用しました。
でも、やってみた結果Windows版よりメモリ喰ってる

最終ゴール

Linuxでフルタイムマイニングして、Windowsでコインの送金やマイニング状況をチェックしたい!

準備

・Linuxマシン
OS ubuntu 14.04(64-bit)

・スペック
クラウドサーバ(今回はIDCFクラウド)
1CPU x 1.6 GHz / 2GB RAM (light.S2)
※1GBだとギリギリなので

ソースコード
https://github.com/eXperiencePoints/XPCoin

自動ビルドスクリプトを使ってインストール

マシンの準備は割愛します

・libdbインストール

任意のディレクトリでコマンド実行

console
# sudo apt-get install software-properties-common
# sudo apt-get update
# sudo apt-get install libdb4.8-dev libdb4.8++-dev

・自動ビルドスクリプトを実行

/usr/localでコマンド実行 (ほかのところでも大丈夫かと)

console
# cd /usr/local
# wget https://github.com/eXperiencePoints/XPCoin/releases/download/1.0.0/XPd-linux-compile-from-source.sh

続けて

console
# sudo sh ./XPd-linux-compile-from-source.sh

こんな感じのwarningがいくつか出ますがたぶん大丈夫。

main.h:961:24: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
         if (nHeight >= 0 || fTestNet)
                        ^

もし、エラーが出たりしても、
解消したうえで再び XPd-linux-compile-from-source.sh を実行すればOK

以下のディレクトリが作成されます
/usr/local/XPCoin/

初回起動

console
# /usr/local/XPCoin/src/XPd

すぐにCtrl+Cで停止してOK

XP.confの編集

/root/.XP というディレクトリが作成されているので
そのディレクトリのXP.confファイルを編集

daemonを0から1に

console
#(0=off, 1=on) daemon - run in the background as a daemon and accept commands
daemon=1

Windows版walletから移行

※新規に始める方は飛ばしてください

!!注意!!

wallet.datはUSBメモリなどにバックアップ(コピー)を取得してください。
なくなると二度とXPは返ってきません。

Windows版walletは終了してください。
あとは、↓のフォルダごとzipしてしまいます。
C:\Users\<ユーザ>\AppData\Roaming\XP

Linuxに展開

※これも新規に始める方は飛ばしてください

SCP等でzip(今回はxp_start.zip)したファイルをLinuxの適当なところにコピー、展開

console
# unzip xp_start.zip -d /root/tmp

ブロックチェーンの情報を移行

console
# cp -p xp_start/XP/blk0001.dat /root/.XP
# cp -p xp_start/XP/blkindex.dat /root/.XP
# cp -p xp_start/XP/peers.dat /root/.XP
# cp -p xp_start/XP/database/log.* /root/.XP/database

walletの情報を移行

console
# cp -p xp_start/XP/wallet.dat /root/.XP

レッツ マイニング!

console
# /usr/local/XPCoin/src/XPd

walletを暗号化している場合は、以下のコマンドで鍵を外します。

console
# /usr/local/XPCoin/src/XPd walletpassphrase ********* 999999 true

*********に自分のwalletパスフレーズを入れてください
999999は鍵を外す有効期間(秒)、trueはマイニングのみのための引数です

コマンドに成功すれば、何も表示されません
一応、以下の方法で確認できます。

console
# /usr/local/XPCoin/src/XPd getinfo | grep unlocked_until

「"unlocked_until" : 」に、0でない数字が入っていればOKです。
どうやら、unix時間が入るようで、再びロックされるまでの期間です。(未確認)

動いているかの確認方法は?

debug.logを確認してください。
エラーが起きていればdb.logに出るようです。

こんな感じのログが出力されていて

debug.log
SetBestChain: new best=xxxxxxxxxxxxxxxx  height=xxxxxxxx  trust=xxxxxxxxxxxx  blocktrust=xxxxxxxxx  date=DD/MM/YY HH:MM:SS

最後のdateが現在の時間付近であれば問題ないかと。
ちなみにdateはUTCらしく、日本時間-9時間表記です。

ステークできているかの確認は?

一番素早く・わかりやすいのは、以下のサイトに自分のwalletアドレスを入れて確認する方法です。
何より出先からも確認できるのがいい
https://chainz.cryptoid.info/xp/

ステークできていれば、Details for AddressのStakedに表示されます。
また、Transactionsにも表示されます。

↑こんな感じのマークがつく

またはdebug.logに以下のメッセージが出る

debug.log
CheckStake() : new proof-of-stake block found
...
AddToWallet xxxxxxxxxx  new

あとは、コマンドから

/usr/local/XPCoin/src/XPd listtransactions

categoryがstakeのトランザクションを探す?

Windows版 ウォレットで情報を確認したい...

※Windowsのwallet.datは念のためバックアップ
※Windows版walletは終了する

Linuxのwallet.datをWindows版のwallet.datに上書きしてください
これで問題なく起動できます。
CoinAgeやMintProbabilityを確認するときはこの方法をとってます

最後に

XPのコミュニティは活発に活動してます!興味のある方はぜひ

XP Discord日本語コミュニティ
https://discord.gg/byc8pnM

参加してwalletつくればAirDropもらえるよ╭( ・ㅂ・)و̑