何か暗号通貨関連でサービスを作りたいと思い立ち、準備運動としてWalletのビルドを前回やったので、次にデーモンのビルドを試してみます。
最近TVで報道されたり、暴騰したりで話題のMonacoinのmonacoindをビルドしてみます。
前回Walletをビルドする際に、必要そうなパッケージはあらかた突っ込んだので、今回は非常にシンプルです。
$ git clone git://github.com/monacoinproject/monacoin.git
$ cd monacoin/src
$ make -f makefile.unix
ビルドし終わったら、「/usr/local/bin」あたりに放り込んで実行します。
$ monacoind
Error: To use monacoind, you must set a rpcpassword in the configuration file:
It is recommended you use the following random password:
rpcuser=monacoinrpc
rpcpassword=EvCj7irBs1egMX33HixQ6Hv481neRF9Jm8qmFwRKdUJy
(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 "Monacoin Alert" admin@foo.com
なんか怒られました。
設定ファイルでrpcpasswordを設定しろとのことです。
オーナーのみ読み込み可能なように設定するべきと書いてあります。
ということで、指定どおりファイルを作成し編集する。
$ touch monacoin.conf
$ vi monacoin.conf
#中身は言われた通りに設定してみる。
rpcuser=monacoinrpc
rpcpassword=EvCj7irBs1egMX33HixQ6Hv481neRF9Jm8qmFwRKdUJy
#同じく指示通りオーナーのみ読み込み可能に。
$ chmod 400 monacoin.conf
#実行する。
$ monacoind
初めてmonacoindを実行すると、debug.logがモリモリ増量していきます。
初回の同期処理をしてるんだと思いますが、100M超えたあたりで不安になりました。。
不安なのでdebug.logを監視してみます。
$ tail -f debug.log
height(何ブロック目まで読み込んだか)の値が少しずつ大きくなっていっているので何か動いている風です。
しばらく待って、最新のブロックまで読み込んだ後、再起動したところdebug.logは200kぐらいになりました。
実際のデータはblocksディレクトリの中だと思われます。
では、実際にAPIを叩いて動作しているか確認してみます。
monacoindをデーモンとして起動します。
$ monacoind -daemon
Monacoin server starting
いくつかAPIを呼んでみます。
$ monacoind help
だーっとヘルプが表示されます。
$ monacoind stop
Monacoin server stopping
#この状態でAPIを呼ぶと当然エラー
$ monacoind help
error: couldn't connect to server
$ monacoind -daemon
Monacoin server starting
$ monacoind getbalance
0.00000000
$ monacoind getblockcount
197067
$ monacoind getdifficulty
227.03475154
$ monacoind getinfo
{
"version" : 80700,
"protocolversion" : 70002,
"walletversion" : 60000,
"balance" : 0.00000000,
"blocks" : 197069,
"timeoffset" : 26,
"connections" : 8,
"proxy" : "",
"difficulty" : 168.17490151,
"testnet" : false,
"keypoololdest" : 1405931648,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"mininput" : 0.00001000,
"errors" : ""
}
以下だと取引の発生していないアドレスは表示されません。
$ monacoind listreceivedbyaddress
[
]
取引の発生していないアドレスも表示されます。
$ monacoind listreceivedbyaddress 0 true
[
{
"address" : "MENrRKiTwgXSGxczz62Jk7AFq67pLYpdWV",
"account" : "",
"amount" : 0.00000000,
"confirmations" : 0,
"txids" : [
]
}
]
別のWalletから上記アドレスに0.01MONA送金後、こんどはオプション無しで表示されました。
$ monacoind listreceivedbyaddress
[
{
"address" : "MENrRKiTwgXSGxczz62Jk7AFq67pLYpdWV",
"account" : "",
"amount" : 0.01000000,
"confirmations" : 7,
"txids" : [
"f1a4f98965f45d69abbced94c94e0daa6c4b8106593b8836f2d3d8dc2244d1e6"
]
}
]
取引発生後、内部的に新しいアドレスが追加された模様。
$ monacoind listreceivedbyaddress 0 true
[
{
"address" : "MENrRKiTwgXSGxczz62Jk7AFq67pLYpdWV",
"account" : "",
"amount" : 0.01000000,
"confirmations" : 7,
"txids" : [
"f1a4f98965f45d69abbced94c94e0daa6c4b8106593b8836f2d3d8dc2244d1e6"
]
},
{
"address" : "MNVb8W1dHD4jNGRtCayhiMzojGontESw8r",
"account" : "",
"amount" : 0.00000000,
"confirmations" : 0,
"txids" : [
]
}
]
0.001MONAを送金してみます。
$ monacoind sendtoaddress MR2j3u5oNWZzAAxeHtSinHUEVNiSbkn8zJ 0.001
02f4ab46964f9a55dd0554a5764725e10513b1ad402b939a96e2273d531c9773
早速Windowsに入れているWalletに0.001MONA届きました。
ちなみに激しく貧乏なのは、1MONAが7円ぐらいに跳ね上がった時に、焦って全部Bitcoinにしてしまったためです。。
まさかあそこから30円突破まで行くとは。。
ということで、なんかサービス作るのでMonacoinで寄付下さいw
MR2j3u5oNWZzAAxeHtSinHUEVNiSbkn8zJ