BitzenyハンズオンーBitzenycoreCLIインストール〜ソロマイニングまで

[ブログ](http://www.ocknamo.com/entry/bitzenyハンズオンーbitzenycorecliインストール〜ソロマイニン/)に書いたやつの転載です。

[https://bitzeny.tech](https://bitzeny.tech "https://bitzeny.tech")から2.01をダウンロード。
環境 ubuntu18.04
Intel® Core™ i7-7700HQ CPU @ 2.80GHz × 8

## bitzenydをビルド
ここに書かれているとおりにやりましょう。
(参考: [https://github.com/BitzenyCoreDevelopers/bitzeny/blob/z2.0.x/doc/build-unix.md](https://github.com/BitzenyCoreDevelopers/bitzeny/blob/z2.0.x/doc/build-unix.md "https://github.com/BitzenyCoreDevelopers/bitzeny/blob/z2.0.x/doc/build-unix.md"))

依存関係構築手順（とりあえず全部やった感)
$sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
$sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
$sudo apt-get install software-properties-common
$sudo add-apt-repository ppa:bitcoin/bitcoin
$sudo apt-get update
$sudo apt-get install libdb4.8-dev libdb4.8++-dev

ビルドする
$./autogen.sh
$./configure
$make
数時間ほどかかってビルドが完了。

## 動かしてみる
動かし方
$cd src
$./bitzenyd -daemon

止め方
$./bitzeny-cli stop

同期確認
$./bitzeny-cli getinfo

cliのコマンドを確認
$./bitzeny-cli help | less

プロセス確認
$ps -aux | grep bitzeny

同期確認
$./bitzeny-cli getblockchaininfo

同期が遅いときは /home/user/.bitzenyにbitzeny.confを作成してノードを追加する。（cliコマンドで一つづつ追加もできる）
$cd ~/.bitzeny
$touch bitzeny.conf
$vim bitzeny.conf

ここのビットゼニーのノードをコピペする。
[https://lapool.me/seed/](https://lapool.me/seed/ "https://lapool.me/seed/")
 bitzeny.confの内容

    addnode=124.103.242.109
    addnode=124.141.236.31
    addnode=125.207.130.237
    addnode=126.21.110.9
    addnode=153.199.201.223
    addnode=153.229.196.123
    addnode=160.16.210.208
    addnode=198.13.48.158
    addnode=203.152.216.75
    addnode=203.152.216.76
    addnode=203.152.216.77

headerが全部ダウンロードされないとBlockのダウンロードが始まらない。そのためいつまで待ってもBlockが0のままだとしてもheaderが増加していれば同期が進んでいるので問題ない。
今回は2日以内に同期完了した。

## bitzeny.cli コマンド操作
新しくアドレスをつくる
$./bitzeny-cli getnewaddress ( "アカウント名" )
例：$ ./bitzeny-cli getnewaddress ocknamo

メモ:getnewaddressとgetrawchangeaddressの違い(参考: [https://bitcoin.stackexchange.com/questions/46506/getnewaddress-vs-getrawchangeaddress](https://bitcoin.stackexchange.com/questions/46506/getnewaddress-vs-getrawchangeaddress "https://bitcoin.stackexchange.com/questions/46506/getnewaddress-vs-getrawchangeaddress"))
> getrawchangeaddressメソッドは、keypoolからキーを取得し、そのpubkey（p2pkhアドレスにエンコードされた）を返します。 getrawchangeaddressとは異なり、gewnewaddressはアドレス帳エントリを作成します。アドレス帳エントリを使用すると、そのアドレスで受け取った資金を検査したり区別したりすることができ、再利用される可能性が高くなります。
指定したアドレスをrawtransactionの変更出力として使用する場合は、getrawchangeaddressを使用する必要があります。

つまり通常使用ならgetnewaddressで問題ない。



テスト用のzenyを入手：[http://bitzeny.cswiki.jp/index.php?fausetを利用する](http://bitzeny.cswiki.jp/index.php?fausetを利用する "http://bitzeny.cswiki.jp/index.php?fausetを利用する")

以降アカウント名"ocknamo"の場合

アカウントからアドレスを取得
$./bitzeny-cli getaccountaddress ocknamo

アドレスからアカウントを取得
$ ./bitzeny-cli getaccount Zena3A5LfTUP5vNe8VA6fqek4dRB7TqH4j

アカウントのアドレスを1つ増やす
$./bitzeny-cli getaddressesbyaccount ocknamo


アカウントの残高確認
$./bitzeny-cli getbalance ocknamo

アカウントが受け取った金額
$./bitzeny-cli getreceivedbyaccount ocknamo

アドレスが受け取った金額
$./bitzeny-cli getreceivedbyaddress Zena3A5LfTUP5vNe8VA6fqek4dRB7TqH4j

ウォレット情報の確認
$ ./bitzeny-cli getwalletinfo

アカウントのリストと残高をJSONで出力。
$ ./bitzeny-cli listaccounts

ウォレットのバックアップファイルを出力
$ ./bitzeny-cli backupwallet backup.dat

ウォレットのデータを出力
$ ./bitzeny-cli dumpwallet ~/wallet.text

メモ: backupwalletとdumpwalletの違い。
backupwalletはwallet復元用のバイナリファイルを出力。
dumpwalletはtextでprivate masterkeyと全てのアドレスのprivatekeyを出力する。


アドレスのプライベートキーを確認
$ ./bitzeny-cli dumpprivkey ZobvCw3sWSzDEQ9TxRDSUtkGWxa3P6ayv9


walletを暗号化（マルウェア対策のため必須）
$ ./bitzeny-cli encryptwallet "passphrase"
これを実行するとbitzenydが停止する。
またbackupを新しく作るように要求されるので再起動してbackupを再び作成する。

ウォレットのロック解除
$ ./bitzeny-cli walletpassphrase "pass" ロック解除秒数
例: $ ./bitzeny-cli walletpassphrase xxxxxx 60


## ソロマイニング
詳細は公式wikiを読んでください。対応CPUを確認する必要があります。
参考:[http://bitzeny.cswiki.jp/index.php?%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%A8%E3%81%AF](http://bitzeny.cswiki.jp/index.php?%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%A8%E3%81%AF "http://bitzeny.cswiki.jp/index.php?%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%A8%E3%81%AF")
参考:[http://bitzeny.cswiki.jp/index.php?%E3%82%BD%E3%83%AD%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0](http://bitzeny.cswiki.jp/index.php?%E3%82%BD%E3%83%AD%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0 "http://bitzeny.cswiki.jp/index.php?%E3%82%BD%E3%83%AD%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0")

いろいろ読んだ結果、良さげなcpumainerさんでやってみることにしました。
[https://github.com/macchky/cpuminer/releases/tag/v2.5.0](https://github.com/macchky/cpuminer/releases/tag/v2.5.0 "https://github.com/macchky/cpuminer/releases/tag/v2.5.0")
(公式ツールはこっち[https://github.com/BitzenyCoreDevelopers/cpuminer/releases](https://github.com/BitzenyCoreDevelopers/cpuminer/releases "https://github.com/BitzenyCoreDevelopers/cpuminer/releases")）

## ビルド
以下READMEそのままですが
$ git clone https://github.com/macchky/cpuminer.git
$ sudo apt-get install build-essential libcurl4-openssl-dev
$ ./autogen.sh
$ ./nomacro.pl
$ ./configure CFLAGS="-O3"
$ make

## cpuminerコマンド
ヘルプ
$ ./minerd --help

bitzenydを停止したのち、bitzeny.confに以下を追加
(参考:[http://bitzeny.cswiki.jp/index.php?%E3%82%BD%E3%83%AD%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0](http://bitzeny.cswiki.jp/index.php?%E3%82%BD%E3%83%AD%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0 "http://bitzeny.cswiki.jp/index.php?%E3%82%BD%E3%83%AD%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0"))

    rpcuser=x
    rpcpassword=x
    rpcallowip=127.0.0.1
    rpcport=9252
    daemon=1
    server=1
    gen=0

とりあえずマイニング開始してみる。

$./minerd -a yescrypt -o http://127.0.0.1:9252 -u x -p x --coinbase-addr=Zena3A5LfTUP5vNe8VA6fqek4dRB7TqH4j
結果: Total: 3.12 khash/s

マイニングのオプション
$ ./minerd --help

このままだとcpuが全部100%に張り付くので設定とか変えたほうがいいと思う。

仮想8スレッド中4スレッドを使用する設定にしてベンチマークオプションをつけた場合。
./minerd -a yescrypt -o http://127.0.0.1:9252 -u x -p x --coinbase-addr=Zena3A5LfTUP5vNe8VA6fqek4dRB7TqH4j --cpu-affinity 0xAA --benchmark
結果: Total: 2.03 khash/s

同7スレッドを使用する場合。
./minerd -a yescrypt -o http://127.0.0.1:9252 -u x -p x --coinbase-addr=Zena3A5LfTUP5vNe8VA6fqek4dRB7TqH4j --cpu-affinity 0xFE --benchmark
結果: Total: 3.15 khash/s
ばらつきはあるけど1スレッド空いたままで高いハッシュレートが出た。

8スレッドの設定にすると熱暴走するのか、数分経過すると一気にハッシュレートが半分くらいになった。
設定をいろいろいじって安定して高いハッシュレートを追求するのが楽しいのではないか。しらんけど。
ちなみに１日動かしたくらいじゃ掘れなかったのでマイニングプールで掘ったほうがいいと思います。

(参考: [https://bitzeny.info/d/79-cpuminer-v2-5-0-yescrypt/84](https://bitzeny.info/d/79-cpuminer-v2-5-0-yescrypt/84 "https://bitzeny.info/d/79-cpuminer-v2-5-0-yescrypt/84"))
## 感想
- configの設定をタイポしてて３時間ぐらい悩んだ。
- もともとzenyhiveに興味があっていじり始めたのでそっちもいじりたい。

寄付や送金テストにお使いください。
Zena3A5LfTUP5vNe8VA6fqek4dRB7TqH4j