FC2ブログ

MPOS型プール Statistics -> Round 機能 がちゃんと表示されない件 - 大人の自由研究

大人の自由研究 ホーム » 仮想通貨 » MPOS型プール Statistics -> Round 機能 がちゃんと表示されない件

MPOS型プール Statistics -> Round 機能 がちゃんと表示されない件


 ずっと気になっていた。。。
 proportional_payout のログには以下のメッセージが出力されていた。
 2018-02-06 0:30:10 - CRIT --> Failed to update share statistics for ukkey3: SQL Query failed: Field 'pplns_valid' doesn't have a default value
 statistics_shares テーブルのpplns_valid カラム は NotNull制約でDefault値が設定されていないからか。。。


 ソースを追っかけていくと
 include/classes/statistics.class.php で、インサートしている処理を発見(function updateShareStatistics)
$stmt = $this->mysqli->prepare("INSERT INTO $this->table (account_id, valid, invalid, block_id) VALUES (?, ?, ?, ?)");
 なるほど
 pplns_valid カラムを指定しておらず、インサートが出来ない。
 報酬分配方式が prop なので、pplns_valid は必要なさそう。
 って事で、pplns_validカラムにDefault で 0を設定。

 すると、ちゃんとデータも入り、ログのエラーメッセージも無くなった。
 このお陰で、Statistics -> Round が表示されるようになった。

 ただ、ちょっと不完全のようだ
 statistics_shares の valid/invalid は BIGINT で定義されているせいで、微妙に値がオカシイ(汗)
 そこで、valid/invalid の型を、DOUBLE型に変更。
 さらに、先ほどのインサート文のバインドパラメータを変更
$stmt->bind_param('iiii',

$stmt->bind_param('iddi',
 これで、整数に丸め込まれずにデータが保存される。

 最後は、テンプレートの表示部分で、桁数指定をいれてあげた
templates/bootstrap/statistics/round/round_shares.tpl
templates/bootstrap/statistics/round/round_transactions.tpl
 の2ファイルかな。
{$data.valid|number_format:"2"}
 な感じで。

 テーブル変更などちょっとドキドキな大人の自由研究でした。

 大人の自由研究 - BitZeny Mining Pool大人の自由研究 - Koto Mining Pool 共に修正完了。



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

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

トラックバック

http://ukkey3.jp/tb.php/790-281ef9ac