PoSマイニングをしてみよう ~Linux編~
この記事のまとめ:
- Linux (Ubuntu)環境でのPoSアルゴリズムの仮想通貨のPoS (Proof of Stake)マイニング (※本来はstakingと言います)する方法をまとめています。
背景:
前回、Windows環境でのPoS (Proof of Stake)マイニングのやり方を説明しましたが、今回はLinux (Ubuntu)環境でやってみます。PoSマイニングのやり方は他の仮想通貨と大体同じなので他のPoS通貨でやる場合でも参考になると思います。なお、本記事にはPoSの説明やPoS通貨自身の説明はありませんので興味のある方はご自分で調べてください。
Linuxでの実行はWindowsに比べると少し手間がかかる場合があります
Windowsでのウォレットの実行(PoSマイニングの実行)はconfファイルを作成して、exeファイルを実行するだけでしたが、Linux環境でのウォレットの実行は次のパターンがあります。
- コンパイル済みのQT (GUI)実行ファイルがアップロードされていて、そのファイルが動く場合 → confファイルだけを作成すればWindowsのときと同じ動作でOK
- 上記が動かない場合、もしくはCLIで動かしたい → ソースコードをコンパイルして実行ファイルを生成する必要あり
- CLI (コマンドライン動作)で動かす
- GUI (QT)で動かす
このように、2.の場合、ソースコードをコンパイルする必要があるので少し手間がかかります。今回はより単純なCLIでの手順のみ説明します。なお、GUI (QT)でもできるはずなのですが、私の環境では安定動作ができていません。 また、基本的にはどのPoSコインでも作業はほとんど同じですが、今回はCondensate (Rain)(以下、Rain)を対象に動かしてみます。
マイニングに必要なもの
Windowsのときと同様に、必要なものは24時間稼働しているLinuxマシンです。Ubuntuを対象に説明していきます。
主な手順
Linux環境でPoSマイニングを行うための主な手順は下記の通りです。
- Walletのソースコードのダウンロード
- Walletのコンパイル
- Walletの同期
- Walletへ送金
- Walletの暗号化とアンロック
1. Walletのソースコードのダウンロード
公式のGithubからソースコードをGitでクローンを作ります。例えば、Rainの場合だと次のようになります。
なお、以後のコマンドについてはクローンしたディレクトリ配下で実行する場合のコマンドとして認識してください。
2. Walletのコンパイル
パーミッションの変更
このあと、ダウンロードしてきたソースコードをmake
でコンパイルするのですが、makeの中でsrc/leveldb/build_detect_platform
というものを実行するようになっていますが、実行権限が与えられていないことがありますので、実行権限を付与します。
ソースコードの実行に必要なライブラリのインストール
コンパイルにはいくつかのライブラリが必要になります。
もし、上記だけで足りない場合は、doc/build-unix.md
に記載されているので確認してみてください。
なお、boostなどマニュアルですでに最新バージョンをインストールしていた場合など、コンパイル対象のソースコードが想定しているバージョンと異なるバージョンのライブラリをインストールしている場合、コンパイルができない可能性があります。
私の場合、boost 1.6.3をマニュアルでインストールしていたのですが、apt-get
でインストールできる最新バージョンは1.58です。この違いでコンパイル時にエラーが出てしまいました。
#これに気づくのにかなり時間をかけてしまいました…。
その場合は、makefile
を変更してマニュアルでインストールしたライブラリを読み込まないように変更してください。
おそらく、そういったものは/usr/local/include/
にあると思ういますので関連するライブラリがないか確認してください。
ソースコードのコンパイル
src
ディレクトリで下記を実行します。
コンパイルには数分~数十分ほどかかる場合があります。コンパイルが無事に完了していれば、src/【仮想コイン名】d
という実行ファイルがあるはずです。これがwalletの実行ファイルです。例えば、Rainの場合には、src/raind
というファイルが生成されます。
トラブルシューティング①:Accumulator.d
コンパイル時に次のようなエラーが出る場合は、下記のコマンドを試してみてください。
zerocoin/Accumulator.cpp:106:1: fatal error: opening dependency file obj/zerocoin/Accumulator.d: No such file or directory compilation terminated. make: *** [obj/zerocoin/Accumulator.o] Error 1
3. Walletの同期
同期に必要な設定ファイルを作成するために、まずは一度、walletを実行します。walletを起動させるには-daemon
オプションを付けて実行します。Rainで実行した時の動作例は下記のようになります。初回のこの実行によって、~/.【仮想コイン名】/
に関連ファイルが生成されます(Rainの場合には、~/.rain/
)。初回は下記のようにエラーメッセージが出ますがこれは設定ファイルがないことが原因ですのでこれからそれを作っていきます。
設定ファイルの作成
上記の実行で作成された~/.【仮想コイン名】/
のディレクトリ内に【仮想コイン名】.conf
という設定ファイルを作成します(Rainの場合には、~/rain/rain.conf
)。作成したconfファイルに下記を書き込みます。
このユーザー名、パスワードはRCP (Remote CoPy)コマンドを行う場合に使用するものですが、LAN内のwalletを起動しているマシンに対して、別のマシンから遠隔でwallet情報を取得したい場合などにしか基本的に使いませんので適当に入力すればよいです。なお、RCPを使用しなくてもこれらの情報がconfファイルに含まれていないと起動時にエラーになってしまうため必ず書き込んでください。
続いて、peer接続を行うノードの情報を書き込んでいきます。最新のpeer接続可能なノードアドレスはCryptopiaなど、取引所のコイン情報から確認ができます。例えば、Rainの場合にはCryptopiaのRainのCoin Informationを開くと、Connection: xx の記載があると思います。これをクリックすると、Condensate (Rain)のNode infoが表示されるはずです。ここに記載されているaddnode
をすべてコピーして先ほどのconfファイルに貼り付けます。
confファイルの編集が終わったら、walletを起動します。すると同期を開始し始めるはずです。初期同期にはしばらく時間がかかります。
peer接続ができているかどうかの確認は、getstakinginfo
オプションを付けて実行してenabled
の数が0より大きい数字になっているか、getpeerinfo
オプションを付けて実行してノード情報が出力されるか、getconnectioncount
オプションを付けて実行して0より大きい数字が表示されているか、などで確認できます。
また、同期が完了したかどうかを確認するには、getstakinginfo
オプションを付けて実行してenabled
の値がtrue
になっていれば同期が完了しています。
(参考)実行オプション
help
オプションを付けてwalletの実行ファイルを実行するとすべての実行オプションを確認できます。Rainの場合は下記のように実行します。
私はすべてのオプションを把握しているわけではありませんので、本記事では必要最小限のオプションのみ紹介します。
(参考)設定パラメーター
confファイルの設定パラメーターはさまざまあり、一つ一つ紹介されているものがどこにあるのかわかりませんが、下記に一部が記載されていますので参考にご利用ください。なお、下手に余計な設定などを行うとセキュリティリスクを高める原因となる可能性がありますので自己責任で設定を行ってください。
4. Walletへの送金
同期が終わるまでPoSマイニングは開始されませんが、それ以外にwalletにその仮想通貨を送金、を暗号化した上で、アンロックする必要があります。
受信用のwalletアドレスは下記のコマンドで取得できます。<フレーズ>
については任意の文字列です。例えば、"0"でも構いません。
5. Walletの暗号化とアンロック
暗号化
暗号化をするためには、次のよう(Rainでの一例)にencryptwallet
オプションとパスフレーズを付けて実行します。
なお、暗号化するとwalletが停止されるので-daemon
オプションを付けてwalletを起動します。
アンロック
アンロックを行うためには、次のようにwalletpassphrase
オプションと先ほど設定したパスフレーズとunixtimeフォーマットのアンロック期限を付けて実行します。
なお、unixtimeはこちらなどで調べることができます。
アンロックが正しく行われていれば、getinfo
オプションを付けて実行すると、unlocked_until
の値が-1
以外の値になっているはずです。
PoSマイニングの確認
上記の準備が整ったら、PoSマイニングができているかを確認します。
getstakinginfo
オプションを付けて実行し、staking
の値がtrue
になっていれば、PoSマイニングができていますので、時間が経つとともにweight
の値が大きくなっていくはずです。
もし、staking
の値がfalse
のままの場合、再度上記を手順を確認して間違いがないか確認してみてください。
最後に
以上で設定完了です。もし、この記事が有益だと思われたら下記まで寄付をいただければ幸いです。
BTC: 186QRmRk3Kx6o3cTs4hMTdrYGtvmL55QcJ
ETH: 0xba8d9e42afbf5f8924a5ceee4270f435e4883cb8
LTC: LTFqqwjxXQbRoJHZ3gqYdSKsDokhNYDCCh
(余談)VPSの紹介
PoSマイニングするために24時間マシンを稼働させる必要があります。自前でLinuxサーバーを用意するにはサーバー購入のイニシャルコストだけでなく、ランニングコストとして電気代もかかります。 そのコストも馬鹿にならないため、私は別件で契約していたVPS (Virtual Private Server)を使用してPoSマイニングをしています。安いものでは月々360円以下で使えるものもありますのでいくつか紹介させてください。
NTT PC コミュニケーションズ
国内最安値のVPSサービスで月々360円からレンタルできます。初めての方でも日本語で説明がありますので安心して始められると思います。
Time4VPS
最安で月々€0.99という非常に低価格、かつ海外のVPSサービスですが稼働率が非常に高く、有名なVPSサービスです。海外に拠点があるため遅延時間が大きいですが、英語の説明でも問題なく、安く始めたいという方にはオススメです。私もこのサービスを使用していますが、全く問題ありません。
関連記事
次のような記事も書いています。
- タダで入手できる仮想通貨の情報
- PoSマイニングをしてみよう ~Linux編~
- PoSマイニングをしてみよう ~Windows編~
- GTX1060で仮想通貨のEthereumをマイニングしてみる
- Claymore’s MinerによるEthereumのマイニング時の開発者報酬(Developer fee)をなくす方法
- Linux (Ubuntu)環境でGTX1060を用いたZcashのマイニング方法
- Linux (Ubuntu)環境でGTX1060を用いたEthereumのマイニング方法
- EthereumとZcashはどちらが儲かるか?
- LinuxでのnVidia GPUのオーバークロック・電力チューニング方法
今回は以上です。 最後まで読んでいただき、ありがとうございます。
コメント
コメントを投稿