仮想通貨のマスターノードの運用には、24時間運転で、固定IPアドレスのサーバーが必要です。
ということで、レンタルのVPS(仮想プライベートサーバー)がおすすめです。
基本は、コインに合わせてください。大抵はUbuntu16.04に対応しています。
1.コイン用ソフトインストール
コインのホームページに指定されている linux 用のファイルへのリンクを右クリックして、「リンクのアドレスをコピー」します。
その後、linux で操作します。root 権限は必要ありません。
$ wget アドレスをペースト
$
wget https://github.com/.. という感じになります。
Saving
to: ‘linux.zip’
linux.zip
100%[===============================>] 23.17M 343KB/s in 3m 8s
2018-09-08
01:44:36 (126 KB/s) - ‘linux.zip’ saved [24300368/24300368]
$ ls -l
total 23732
-rw-rw-r-- 1 masternodes masternodes 24300368 Jul 16 16:06 linux.zip
(1) zip ファイルの場合
展開した後、実行権限を追加する必要があります。
コイン名d が、デーモン本体(バックグラウンドで処理する本体のことを linux ではデーモンと呼びます)
コイン名-cli が、コマンドライン操作用(デーモンと通信して操作する)
コイン名-qt が、GUI操作用(マスターノードでは使わない)
以下は、例です。コインごとに変わります。
Archive:
linux.zip
creating: linux/
inflating: linux/hth-cli
inflating: linux/hth-qt
inflating: linux/hth-tx
inflating: linux/hthd
$ cd linux
$ chmod +x hth-cli hthd
(2) tar.z, taz, tar,gz など tar っぽい場合
$ tar xvf digiwage-1.1.0-x86_64-linux-gnu.tar.gz
digiwage-1.1.0/
digiwage-1.1.0/bin/
digiwage-1.1.0/bin/digiwage-cli
digiwage-1.1.0/bin/digiwaged
digiwage-1.1.0/bin/digiwage-qt
digiwage-1.1.0/bin/digiwage-tx
digiwage-1.1.0/bin/test_digiwage
digiwage-1.1.0/bin/test_digiwage-qt
digiwage-1.1.0/include/
digiwage-1.1.0/include/bitcoinconsensus.h
digiwage-1.1.0/lib/
digiwage-1.1.0/lib/libbitcoinconsensus.so
digiwage-1.1.0/lib/libbitcoinconsensus.so.0
digiwage-1.1.0/lib/libbitcoinconsensus.so.0.0.0
$
実行ファイルを bin ディレクトリへコピーします。
必要なファイルは2つ。コイン名d と コイン名cli です。
$ cd ファイルのあるディレクトリ
$ cp coin-cli coind ~/bin
たまに、-cli がない場合がありますが、その時は、d が cli の代わりになります。
$ ls ~/bin
例:
masternodes@bjsoftab4:~/work$ ls
~/bin
charity-cli charityd
masternodes@bjsoftab4:~/work$
デーモンを初回起動すると、エラーメッセージとともに、自動的に最小限必要なファイルが作成されます。
. で始まる隠しディレクトリに作成されます。
以下の例では、charity
coin です。
$ charityd
以下の例だと、ホームディレクトリの
.charity というディレクトリです。
masternodes@bjsoftab4:~/linux-master$ charityd
Error: To use charityd, or the -server option to charity-qt, you must set an rpcpassword in the configuration file:
/home/masternodes/.charity/charity.conf
It is recommended you use the following random password:
rpcuser=charityrpc
rpcpassword=DuaJTjR5KCLyvjCS1gXGXauaX9PWGLMqDgyTSLfgfQmC
(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 "Charity Alert" admin@foo.com
rpcuser= と rpcpassword= の行を含んだファイルを作成します。rpcpassword はランダムに作成された文字列なので、そのままで構いません。覚える必要もありません。
nano エディタを起動します。
$ nano .charity/charity.conf
終了するには、Ctrl + x を入力。編集結果をどうするかの確認がでます。y で保存、n で破棄、Ctrl+c で編集に戻ります。
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
デーモンとして起動する。オプションとして -daemon を指定すると、ログアウトしても動き続けます。
$ charityd -daemon
コマンドラインで、動作状態をチェックする
何回か実行して、blocks が増えていれば、同期中です。
$ charity-cli getinfo
注意:
1.Chroot
jail の中で実行した場合、初期ノード( DNS Seed ) の名前解決ができないので、同期しません。
まず同期を確認してから、 peers.dat を作成した後ならば、Chroot jail の中で実行できます。
2.万一同期しない場合は、ファイアウォールの解除を先にしてください。(詳細は後述)
同期している間に、マスターノードを準備します。(この章は、windows
のウォレットで実行しても構いません。)
4.1 送金先アドレスを作成
以下の例では、マスターノード名(alias) は mn1 です。
$ charity-cli getaccountaddress mn1
アドレスが表示されるのでメモする。
4.2 マスターノードのプライベートキーを作成
$ charity-cli masternode genkey
プライベートキーがでるので、メモする。この結果を後で使います。
メモし忘れると、アクセス不能になります。
備考:失敗しても、4.2からやり直して、新しいキーを作れば大丈夫です。
4.3 送金
4.1で作成したアドレスに、CryptBridge などから
「ぴったり 必要なコインを一回で送金する」
ここが、割と間違うケース多い。ミスすると別のアドレスを作って送金するなど、やり直しです。
送金は、以下で可能です。
$ charity-cli sendtoaddress 送金先アドレス 金額
4.4 マスターノード用送金データ確認
getinfo していると、そのうち、Balance
(残高) が 1000 になります。
そうなるとブロックチェーンの同期が終わっているので、以下でデータが確認できます。この結果を後で使います。
$ charity-cli masternode outputs
{
"4f40008f84a7544509283c3c419a91ab9ec5d5fb74c6818b294fca2ccce87c98" : "0"
}
この場合、
output_txid が、4f40008f84a7544509283c3c419a91ab9ec5d5fb74c6818b294fca2ccce87c98
output_index が、0
です
マスターノードとして実行するための設定ファイルを作成します。この章は、マスターノード用のVPS です。
まず、デーモンを止める
$ charity-cli stop
VPSのIPアドレスを確認する。VPSサービスのページを見るか、ifconfig コマンドを使う。
masternodes@bjsoftab4:~$ ifconfig
ens3 Link encap:Ethernet HWaddr 56:00:01:a9:2b:f3
inet addr:192.168.30.40 Bcast:192.168.55.255 Mask:255.255.252.0
.charity/charity.conf
を編集する
$ nano .charity/charity.conf
rpcallowip=127.0.0.1
server=1
listen=1
daemon=1
maxconnections=256
masternode=1
masternodeprivkey=マスターノードのプライベートキー
externalip=IPアドレス
Ctrl + x で書き込みます。
ほかのコインだと、port とか設定することもあるので、詳しくは、コインごとの手順を見てください。
.charity/masternode.conf
を編集する(windows のウォレットの場合は、windows 側で実行します)
書き方は、以下の通り。下記の 3300 は、マスターノードのポート コインごとに大抵違う
マスターノード名 IPアドレス:ポート マスターノードのプライべートキー output_txid
output_index
mn1 192.168.30.40:3300 foobaarfoobarfoobar 4f40008f84a7544509283c3c419a91ab9ec5d5fb74c6818b294fca2ccce87c98 0
その前に、ファイアウォールのポートを開きます。閉じたままでも動くコインがありますが、外部からはマスターノード停止と判断されます。
(1) さくらインターネットの場合
iptablesが初期設定なので、root 権限で、ファイルを編集します。
$ sudo nano /etc/iptables/iptables.rules
:OUTPUT ACCEPT [0:0] の後に以下を追加 ポート番号は適宜変更
-A INPUT -m state --state NEW -m tcp -p tcp --dport
3300 -j ACCEPT
(2) Vultr の場合
ufw なので、手順は、もう少し簡単。
$ sudo ufw allow 3300
$ sudo ufw reload
デーモンを起動する
charity-cli stop するとか、linux を再起動したら、とりあえず、毎回手動でスタートしてください。
$ charityd -daemon
ここまでうまく設定できていると、状態が確認できるはず。
$ charity-cli masternode list-conf
{
"masternode" : {
"alias" : "mn1",
"address" : "IPアドレス:ポート",
"privateKey" : "プライベートキー",
"txHash" : "output_txid",
"outputIndex" : "output_index",
"status" : "MISSING"
}
}
まだ、スタートする指示を出していないので、表示されるだけです。
マスターノード起動 (windows のウォレットの場合は、windows 側で実行します)
$ charity-cli masternode start-alias mn1
{
"alias" : "mn1",
"result" : "successful"
}
注意: コインによっては、masternode start-alias false mn1 とか、masternode start だけとかバリエーションがある
$ charity-cli masternode status
コインによって表示が違うけど、status が以下になっていればOK
"status"
: "Masternode successfully started"
うまくいかなかった例
charity-cli masternode status
{
"vin" :
"CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000,
4294967295), coinbase )",
"service" : "[::]:0",
"status" : "Not capable masternode:
Hot node, waiting for remote activation."
}
この場合は、起動できてないので、charity-cli masternode start-alias mn1 で起動指示を出しなおしてみます。
あとは、残高を確認しつつ、気長に報酬が振り込まれるのを待ちましょう。
$ charity-cli getbalance
masternodes online の、コインごとの詳細で、平均報酬間隔(AVG masternode
reward frequency)があります。
2〜3倍待てば、初回報酬が入ります。
入らない場合は… やり直しです。
また、どこかのタイミングで、wallet.dat を保存しておいてください。
これさえ残っていれば、別のマシンでも、ウォレットを復元できます。
masternode としての動作を止める。
$ charity-cli stop
.charity/charity.conf
を編集する。行頭に # をつけて、masternode をコメントにする。
$ nano .charity/charity.conf
# masternode=1
$ charityd -daemon
マスターノード用にロックされた残高を確認する。
$ charity -cli listlockunspent
マスターノード用残高のロックを解除する。
$ charity-cli lockunspent true
残高を取引所に戻して最初からやり直す。
$ charity-cli sendtoaddress 送金先アドレス 金額
ウォレットとしての動作を止める。
$
charity-cli stop
データファイルを全部削除する (残高がゼロなら、wallet.dat
はバックアップ不要です)
$ rm -rf .charity
2.からやり直す または、あきらめる(汗
以上です。