Dash Core の ソースでおかしい部分を発見したの巻

暗号通貨
スポンサーリンク

Dash Core 0.13 ベースで 大人の自由研究をしているのだが、マスターノードを立てた時に、以下のメッセージが発生していた

Warning: At least 0 of 1 masternodes are running on a newer software version. Please check latest releases, you might need to update too.

新しいバージョンが動いてるので、更新したまえ!
って事だが、自由研究してるのは最新バージョンのみ。

で、その部分のソースを見てみる事にした。

メッセージ表示部のすぐ上のコードがおかしいと思う。

    // Warn only when at least half of known masternodes already updated
    if (nUpdatedMasternodes < size() / 2)
        return;

今回のケースだと、nUpdatedMasternodes は 0 になり、 size() は 1 になっている。
1 / 2 = 0.5 なので、return すると思うのがだ、実際は、 1 / 2 では丸め込まれ 0 になってしまう。
0 < 0 の比較なので 条件にマッチせず。

そこで、以下のように修正してあげると

    // Warn only when at least half of known masternodes already updated
    if (nUpdatedMasternodes < size() / 2.0)
        return;

正しく判断されて return する。

まぁ、今のDashのネットワークでは、マスターノード1つって事はあり得ないので、問題は無いハズですが。
さらにメッセージ無視しても構わないので、モウマンタイ、メイウェンティか。

コメント