MPOS の findblock.php の(害は無い)不具合? - 大人の自由研究

大人の自由研究 ホーム » 仮想通貨 » MPOS の findblock.php の(害は無い)不具合?

MPOS の findblock.php の(害は無い)不具合?


 Koto Mining Poolで、ブロック発見イベントを開催していた時に発見した不具合。
 不具合という程でも無いが、ブロック発見イベントでは重要な問題。

 50ブロック目と100ブロック目を発見した人に50KOTO、100KOTOとプレゼントする企画。
 そう、順番が大事になってくる。

 この順番を表示しようと、Found Blocks 関係のテンプレートをカスタマイズした。mpos.blocks テーブルには id あり、シーケンスで自動的にインクリメントされた値が挿入される。
テンプレートはテーブル内にこんな感じ↓項目を追加で入れてみた。
<td>{$BLOCKSFOUND[block].id}</td>


 なかなかいい感じw
 調子にのって BitZeny Mining Pool の方にも入れてみる(いつかブロック発見イベントでもやろうかと)

 で、ここで問題を発見をしてしまった。

 Koto Mining Pool では、10分間隔で findblock.php を起動している訳だが、その間に2ブロック以上発見した場合が問題。
 listsinceblock コマンドで取得してきたデータは新しいもの順なのであった。
 findblock.php 内ではその順番で処理を行っているので、そのままDBへ入れると、順番が逆になってしまう。

 こんな感じ。96と97が逆なのです。

 単純に array_reverse関数とかでひっくり返せばと、
 :
 :
 :

 ここまで記事を書いてさらに、分かった事実がw
 「順番は時系列では無い」みたいだ
 単純にひっくり返してもダメという事でした

 という事で、「time」の値でソートする事にした
 こいつ↓を
foreach ($aTransactions['transactions'] as $key => $value){
$key_id[$key] = $value['time'];
}
array_multisort ( $key_id , SORT_ASC , $aTransactions['transactions']);

 入れて解決したかなw
 とりあえず、しばらく様子見。


 まだ、 Last Found Blocks のテーブルには怪しい部分があるのよね(汗)
 Expected Shares の値が「3,448,395,736」とんでもなく大きい件。その為 Percentage の値は常に「0.00」になってしまうのであった。
 直したい。。。

関連記事
コメント(管理者承認後に公開します)

※未入力可能。メールアドレスは公開されますので、ご注意ください。
非公開コメント

トラックバック

http://ukkey3.jp/tb.php/787-165143be