FC2ブログ

大人の自由研究

大人の自由研究 ホーム » 

お知らせ

2016.12.05 ちょっとデザインを変更してみました

相互リンク


プール開きして1週間、Bellcoin Mining Pool


 Bellcoin Mining Pool - 大人の自由研究 をオープンしてから1週間。
 孤独のプールでしたが、少し、、、ほんの少しだけマイナーが来てくれました!
 ありがたいw

 そして、今日は調子がよく掘れてますw
 
 ニコニコのグルーン笑顔が並ぶとちょっと気持ち良いw
 画像では10ブロックですが、11ブロック連続!!

 ホント、200%、300%とか連続だと、凹むのよね(汗)


 ではでは
 空いてるプールへ遊びに来て下さいな(笑)


 

Bellcoin Mining Pool - 大人の自由研究 プール開き



《《《 Bellcoin Mining Pool - 大人の自由研究 》》》


 ここ数ヶ月の間はNintendo SwitchMinecraft (マインクラフト)にハマっておりました(汗)
 まだ、エンダードラゴン倒してないんですけどね(汗)
 まったりとトラップを作りながら遊んでおりました。

 知らなかった
 Bellcoin という仮想通貨があった事を(汗)

 国産で、yespowerアルゴリズムか。
 これは大人の自由研究でプールを開くしかないと!

 先日停止した、JagaricoinR のサーバが余っている(余っているなら返却すればいいのにね)。


 ここで、ドハマリしてしまった(汗)
 プールを作って、いざテストマイニングをしたところ、IKKOーに掘れない(どんだけ~)。。。
 まぁ、マシンパワーが足りないので、ハッシュレートが上がらないのが原因か!?

 デーモンが悪い?
 stratumが悪い?

 2日間掘り続けたがゼロだった(汗)

 ここで、一旦は諦めたのだがぁー
 再チャレンジ。

 まずは原因を探る為に
 bellcoinのソースを改造、ポートやらパラメータをいじって独自の仮想通貨にしてみよって。
 がしかし、うまく掘れない(汗)

 次、、、
 cryplyのデーモンを入れてみる。こいつはCRYPLY Mining Pool - 大人の自由研究で動いている。アルゴリズムは一緒。掘れれば、stratum は正しく動いてるって事だ。
 :
 :
 すると1日放置で、数ブロック掘れたのだった。
 という事は、stratum は問題無いのか。設定か?

 再度、bellcoin デーモンの再構築&ブロックデータの同期を行い、マイニングを開始!
 またまた惚れる気配が感じられない。1日経過。。。

 なんだろなぁーと思って bitcointalk を眺めていたら。。。

 For solo mining, use addresses beginning with 'B'. PLEASE BE CAREFULLY that using an address starting with 'b' will NOT earn rewards.
 という文を発見した!

 これか!?
 ソロマイニングの場合は「B」で始まるアドレスを使うのか!?
 プールの場合もソロと同じだろーな(汗)って事は、、、
 早速「getnewaddress "" legacy」ってコマンドで、「B」始まりのアドレスを作成してみた。
 stratumに設定するアドレスも「B」始まりのアドレスに変更。

 しばらくすると。。。
 じゃじゃーん!!
 掘れましたw


 きっと、そーゆー事なんだろー
 と。


 で、Bellcoin Mining Pool - 大人の自由研究 が オープンしました(笑)

 しばらくは、プール利用料 0% にしようかね。


 あ、Bellcoin のプールで MPOS型 は初かな?
 でも、今更感あるんだけどね(汗)

 一番慣れてるヤツだから
 そろそろ、Yiimp を使ってみたいのだけど(汗)
 不安なんだよねぇー
 よく理解出来てないんで(汗)


LINE アカウント連携のシーケンスがおかしいと思う



 現在、BitZeny Mining Poolの方でLINE@を使って機能を提供したりしている。
 LINE@アカウントとプールのログインID連携は既に実装済みであるが、LINEの方で、アカウント連携を説明しているページがあった。
 AccountLinkイベントというものが実装されて、それを使って連携をしましょうって事。当初のリリースには無かったイベントですね。

 ただ、この説明がイマイチ納得いかない
 その説明ページはこちら

 この中にあるシーケンス図の通りに実装をしてみた
 で、最後に気づいた。うまく連携出来ないのでは?
 
 この赤丸の部分。
 8.Get user ID and generate nonce
 で、プールのログイン認証が成功したら、nonce値を生成し、プールのログインIDとペアで 保存しとけと。
~引用~
たとえば、Redis™のようなキーバリューストアを使う場合は、ノンスがキーで、ユーザーIDがバリューのペアを保存するとよいでしょう。

 先に進めると、
 12.Link accounts
 Webhookに AccountLinkイベントが発生した後に、先のnonce値があるので、ログインIDとリンクしろって事。

 一見、良さそうですが、8番と12番。同じサーバ内なら、良いが、別のサーバの場合だと。。。
 nonce値からログインIDが引けないんですよね(汗)
 ネット越しで見に行けって話しでしょうか。そこがセキュリティーホールになる危険もあるので。。。

 と、思ってどーしたものかと。。。




Koto Mining Pool Information をアップデート


 しばらく、メンテナンスをしていなかったサイト
 Koto Mining Pool Information ですが、アップデートを行いました。

 このサイトにある Found Blocks 機能を見直した。
 今までは、各プールのAPIを使って発見したブロックを取得していた。ただ、プールによっては取得出来ないケースもあった(汗)
 Insightを改めて見ると、ちゃんと発見したプールも表示されている。
 という事は、このデータを取得した方が通信量も少なく地球に優しい!

 Insight にはちゃんと API もあり、JSON形式での取得も可能だ。ありがたい。

 呼び出し方も簡単。
 https://insight.kotocoin.info/api/blocks?limit=15
 レスポンスはこんな感じ
 

 そして、プールのリストを見直した。
 既に停止しているプールを外し、稼働中のプールを追加した。

 上記の Insight で表示されるプールを網羅したつもりだが(汗)
 漏れがあったら教えて欲しいです!

 あと、1ブロックの報酬を 100Koto から 現状の97Kotoに(汗)今更ですが。



 という事で、プチアップデートした Koto Mining Pool Information を引き続きよろしくお願いしますw

 そして、Koto Mining Pool - 大人の自由研究 もよろしくお願いします!


BitZeny が大変な事に!そして、プール運用も大変な事に!


 こんな事がおきました。
 https://twitter.com/anon_secchan/status/1059468583787352066

 そして、チェーンが2つに分岐。大人の自由研究 - BitZeny Mining Pool は不正な方へ分岐してしまいました。

 こちら、BitZenyのinsightですが、
 1.https://zenyinsight.tomotomo9696.xyz/
 2.https://insight.bitzeny.jp/
 3.https://zeny.insight.monaco-ex.org/
 最後のサイトは不正チェーンの内容を表示しています。(2018年11月6日17:45現在)
 同じブロック高を入力すると違う内容が表示されるという。。。

 とりあえず、BitZeny Coreを 2.0.2 にアップデート。(久しぶりのビルド)
 wallet.dat をバックアップ。
 この時点で、ブロックデータをすべて消して再度構築する決断をしていた。。。
 まず、bootstrap.datを、他のプール管理者さんがアップしてくれたので、そいつを試してみた。
 が、うまくブロックが生成されない(汗)時間が掛かるだけか、ログ見ても進んでる気配が感じられない(汗)

 そか!
 自分のPCにあるWalletから、bootstrap.dat が作れるんじゃねーのって、、、久しく起動してないからさ(汗)
 分岐前のブロックデータがあるハズ。そこに、正しく分岐してるプールへ接続して、同期を待って完了!
 一応、insight で確認する限り正常のチェーンになった。
 bootstrap.dat を作成して、約2Gのデータをアップロード!
 遅い遅い。。。その間に風呂を済ませる事に。あ、この段階は昨晩の話ね。

 で、その bootstrap.dat を使って ゼロからブロックデータを作ろうとしたのですが、結構時間がかかりそうだったので睡眠Timeに。
 明け方様子を見ると、まだ、100万ブロックちょう(汗)まだまだ掛かりそうだったので。

 正しいチェーンを持ってるプールさんへ接続させていただきました。
 朝のうちに同期は完了した。

 そして次の難関、MPOSのバックエンド処理が動かない。
 ま、当たり前といったら当たり前だのクラッカー。

 findblock.php
-------------------------------------------------------
findblock.php(44): jsonRPCClient->__call('listsinceblock', Array)
エラー吐いた

 blockupdate.php
-------------------------------------------------------
blockupdate.php(43): jsonRPCClient->__call('getblock', Array)
エラー吐いた

 いずれも、不正の分岐チェーンのブロックハッシュで情報を取得しようとしてのエラー。

 findblock.php では、listsinceblock コマンドを呼んでいる。引数として、前回のブロックハッシュ値を渡すので、この値を分岐前の最後のブロックハッシュ値が渡るようにすれば良さそう。
 対象テーブルは blocks で、不正分岐は 1387408 以降のようだ。
 このブロック高前後の blockhash の値を使い、listsinceblock を呼び出すと、確かにそのとおりだ、分岐前の値だと正常に終わる。当然か。
 この正常な値で blocks テーブル最終行の値を更新!
 これで、findblockは通るハズ。

 次、blockupdate.php は、blockテーブル内 confirmations を更新する。Orphan(-1) は処理の対象外となるようだ。
 今回は、不正分岐のチェーンで発見されたブロックは無効にする予定。ならば Orphan(-1) にすれば良さそうだ。

 幸いな事に、50ブロックと少数が不正のようだ(汗) プールのハッシュレートが低いので、少ないね(泣)


 ちゃんと送金もできる事を確認し、バックエンド処理も 手動でひとつひとつ確認。
 エラーも吐かれず終了。

 とりあえず、正常稼働へ移行。


 今回の件で、非常にお世話になった、プール様です!
 人のプール こちらも宜しくお願いします。


 それにしても、発見ブロックがすくなーー(泣)
 ハッシュパワーが足りないか
 久しぶりに自宅PC動かそうかなぁー