Yenten(YTN)のマイニングプールを作ったので裏側公開！ウォレット構築編

※移転しました。
[xshsaku にわかエンジニアブログ](http://xshsaku.coiner.site/)

## ウォレット構築編

[Yenten(YTN)のマイニングプールを作ったので裏側公開！](https://ytn.coiner.site/)の続きになります。

[円天恋な〜プール](https://ytn.coiner.site/)はこちら

<img alt="yenten price" src="https://www.coingecko.com/ja/%E3%82%A6%E3%82%A3%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88/%E3%83%81%E3%83%83%E3%82%AB%E3%83%BC/yenten/jpy.jpg">

## マイニングプールに置けるウォレットの動作は

マイニングプールを構築する上で重要な鍵となるウォレットの構築を行います。
ウォレットの動作としては、マイニングに必要な情報「ネットワークブロック」、「難易度」などの情報を保持しており、これらに合わせてstratumというサーバーで採掘（暗号化解読）を始めることができます。

もちろんウォレットと呼ばれていますので、採掘したコインを保有するストレージでもあります。

## 円天のウォレットの構築

- 利用環境
- conoha vps 2GB
- Ubuntu 16.04
※ウォレット単体であれば十分なスペックになります。

## 構築手順

```
$ mkdir -p /data/yenten/{etc,data,bin}
$ sudo apt-get install build-essential git
$ sudo apt-get install libtool autotools-dev autoconf
$ sudo apt-get install libssl-dev libboost-all-dev pkg-config
$ sudo add-apt-repository ppa:bitcoin/bitcoin
$ sudo apt-get update
$ sudo apt-get install libdb4.8-dev libdb4.8++-dev
$ cd /data
$ git clone https://github.com/conan-equal-newone/yenten
$ cd yenten
$ ./autogen.sh
$ ./configure --enable-upnp-default --without-gui --disable-tests
$ make
```
上記手順でバイナリの構築が完了です。

必要なバイナリを扱いやすいように `/usr/bin/` 直下に配置します。

```
$ cp src/yentend /usr/bin/
$ cp src/yenten-cli /usr/bin/
```

## configの設定（同期先の設定含む）

ウォレットはこれまでの取引履歴を読み込む必要があります。
初期設定だけですと、接続するサーバーが少なくいつまでも同期が終わらない現象が出てしまいますので以下のように設定してください。

```bash:/data/yenten/etc/yenten.conf
server=1 
rpcallowip=127.0.0.1/24
rpcuser=########
rpcpassword=#######
rpcport=12000
gen=0
addnode=47.29.155.80:57528
addnode=125.69.147.144:61645
addnode=183.253.139.88:9160
addnode=136.243.147.111:41352
addnode=213.178.10.210:9981
addnode=195.181.212.125:53646
addnode=154.49.213.96:9981
addnode=94.23.219.192:42982
addnode=86.25.213.40:9981
addnode=118.241.6.219:9981
addnode=123.50.6.235:61485
addnode=14.9.241.0:34109
addnode=153.226.149.144:9981
addnode=157.7.197.33:62230
addnode=180.13.97.8:9981
addnode=180.59.215.222:50669
addnode=39.111.177.2:9981
addnode=145.130.171.229:62519
addnode=84.25.150.200:55342
addnode=82.102.25.82:53989
addnode=89.155.132.101:52469
addnode=109.172.77.244:52058
addnode=176.104.163.133:35514
addnode=217.114.146.245:57117
addnode=31.173.34.61:56183
addnode=46.0.204.114:25777
addnode=5.44.169.227:50622
addnode=83.171.116.199:40145
addnode=95.189.26.184:54914
addnode=118.172.238.159:50338
addnode=185.46.251.115:62097
addnode=185.5.107.48:49718
addnode=23.243.150.102:52689
addnode=45.126.211.106:35082
addnode=45.47.66.69:9981
addnode=67.171.51.123:54472
addnode=68.69.39.112:56641
```

最新同期先リストは以下から参照ください
https://cryptoservices.net/en/nodes-yenten

設定の項目にある、以下の点を説明します。
server=1 #1を設定することでjsonrpc apiが利用できる
rpcallowip=127.0.0.1/24 #apiの利用範囲の設定
rpcuser=######## #jsonrpcユーザー名
rpcpassword=####### #jsonrpcパスワード
rpcport=12000 #listenポート（firewallは許可いらない）
gen=0 #ここは必ず0と覚えておく（詳細不明です）

## wallet起動用の簡易スクリプトの設置

```bash:/data/yenten/bin/yenstart.sh 
#!/bin/bash
yentend -conf=/data/yenten/etc/yenten.conf -datadir=/data/yenten/data -daemon
```

`bash /data/yenten/bin/yenstart.sh` と叩くと、yenten walletを起動することが可能です。

もう一つ、現在どのブロック数まで進んでいるかのチェックスクリプト

```bash:/data/yenten/bin/yencli.sh 
#!/bin/sh
yenten-cli -conf=/data/yenten/etc/yenten.conf getinfo
```
`bash /data/yenten/bin/yencli.sh`を叩いて以下のように返ってくればOKです。

```
{
    "version" : 1030100,
    "protocolversion" : 70006,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 62813,
    "timeoffset" : 0,
    "connections" : 8,
    "proxy" : "",
    "difficulty" : 0.10875373,
    "testnet" : false,
    "keypoololdest" : 1516251766,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "relayfee" : 0.00001000,
    "errors" : ""
}
```

以上までウォレットの構築となります。

次回は「Stratumサーバーの構築」を公開いたします。

~~1. 仮想通貨ウォレットの構築~~
2. Stratumサーバーというウォレットの操作、マイニング（アルゴリズム計算）を行うサーバーの構築
3. MPOS PHPで作られたフロントエンドの構築

## Donation

寄付いただくと記事を書くスピードが上がるかもしれませんw

`BTC: 3MHwSRfFwUtJJ1ZMDitFfvx1n7FffFvXRu`
`ETH: 0xEa00632a438dc250136f5d40cf80EcB1fA24E027`
`ZNY: Zkub2vUJYeURsqnad81dE7R4S5bYWNgnm8`
`ZEC: t1RKPqQtUHZPMPVfdt34Fd6PKLWcP2kMGL2`

仮想通貨技術を使ったシステムの（構築など）相談をされたい方は、プロフィールのメールまでご連絡ください。

## その他

[銭プール](https://zny.coiner.site/)の運営が安定してきました。現在稼働ワーカー数が常時200越え・500KH/sの高い数値が出ており、採掘率も向上しています。
是非いらしてくださいませ

スマホでマイニングする場合は、WEBからのマイニングまたはAndroid用マイニングをご利用ください

[WEBマイニング](https://zny.coiner.site/wasmminer/)
[銭プールApp版](https://play.google.com/store/apps/details?id=net.wcoki.bitzenyminer&hl=ja)