Cranepay Mining Pool の緊急アップデート!

仮装通貨
スポンサーリンク

いやー参った(汗)
Cranepay Mining Pool でのお話し。

2019/05/07 20:28:37 のブロック発見以降、全て Orphan になっていた(汗)
まぁ、アクセスも少なく1日当たりの採掘数も少ないので影響範囲は小さいが。でも明らかにおかしい。。。

やはり、デーモンのバージョンを上げないとかなぁ
思ってはいたものの、動いていたので放置していたが、ツケがまわってきたね(汗)

ウォレットの残高を送金しようと思って少額を送ってみたが、届かない(汗)
トランザクションがブロックに組み込まれないのよねぇ。旧デーモン(cryply1.1)だと、送金も受け付けてくれないのか!?
重症だな(泣)

しゃーない、github からバイナリ持ってきて動かすか
https://github.com/cranepay/cranepay-core/releases
と持ったら、、、無い(汗)
Windowsのバイナリじゃん。

ソース持ってきてビルドかぁ
戸惑いながらも、バイナリが出来上がる

そして、起動!!

なぜか動かない
誰かが ポート 48886 が使ってるとか。。。自分が使ってるんじゃん?意味が分からない。
しゃーないから、別のポート番号をデーモン起動時にお伝えしてあげると、動いたw

で、今度は RPCのポート 48887 が繋がらない。
ちなみに、cryply デーモンはちゃんと終了していたが。。。おまけにリブートまでして上げたのに。。。
なので、RPCポートも別に値に変更(汗)

そして、起動。
ブロックデータの同期完了まで、じっと放置。

旧デーモン(cryply1.1)のWalletから、新デーモン(cranepay2.0)のWelletへアドレスを移行する。
dumpprivkey & importprivkey を駆使。
これは、以前の koto トラブルでやった事がある手順。結構時間が掛かる(汗)

次は、フロントMPOSからの接続だが。。。RPCポートに繋がらないだと。
調べてみると、 getinfo か!
なんと、cranepay 2.0 から getinfo が使えないと!
ぬーん。。。BitZenyの次期バージョンを待たずにして、トラップにかかるとは!!

mpos-php から、対応してるバージョンを新たに入れようとしたのだが、composer でうまく導入できず(汗)
強引に bellcoin.ukkey3.space のものを持ってくるw
なんとか繋がったようだ。

これで、マイニングできっかなって思ったら
今度は stratum が動かないよ(汗)

validateaddress してるとこでコケた。
なぜ?
で、validateaddress コマンドを実行してレスポンスを確認するとー
ismine の項目が無い!
これも仕様が変わったのか!?

vi coinbaser.py

        if result['isvalid'] and result['ismine']:
           ↓
        if result['isvalid']:

と ソースを修正

あとは、こっちにも getinfo があるではないかーーい!

vi bitcoin_rpc_manager.py

resp = (yield self.conns[self.curr_conn]._call('getinfo', []))
↓
resp = (yield self.conns[self.curr_conn]._call('getblockchaininfo', []))

下の部分にあるもう1箇所も同様に修正

で、他のエラーは、、、こいつを発見!
https://github.com/slush0/stratum-mining/issues/14

vi bitcoin_rpc.py

    @defer.inlineCallbacks
    def prevhash(self):
        resp = (yield self._call('getwork', []))
        try:
            defer.returnValue(json.loads(resp)['result']['data'][8:72])
        except Exception as e:
            log.exception("Cannot decode prevhash %s" % str(e))
            raise

				↓

    def prevhash(self):
        resp = (yield self._call('getblocktemplate', []))
        try:
            defer.returnValue(json.loads(resp)['result']['previousblockhash'])
        except Exception as e:
            log.exception("Cannot decode prevhash %s" % str(e))
            raise

これで、無事に稼働したw
ブロックも発見でき、送金も無事に行えたようだ!

トラブルは嫌だが、問題解決して動いてくれると嬉しいもんだw

コメント