(Instiの文脈投稿)

3 件のメッセージ BitcoinTalk Insti, mizerydearia, サトシ・ナカモト 2010年7月27日 — 2010年7月29日
Insti 2010年7月27日 原文 · 個別ページ

難易度が244.213223092375323881335701184896212407930361873708113773326734402748260502489 1554339282075169582811726687822061777635447902413461818393548574922122914786456 6654051064077556842993973623686279076537890477160907158869253835628402573582928 17840402922938076799907じゃなくて本当に良かった

その場合、ブロックを獲得するのがどれだけ大変か想像してみてくれ!!!!!

実際、もう1桁追加して計算すると244.213223092375323881335701184896212407930361873708113773326734402748260502489 1554339282075169582811726687822061777635447902413461818393548574922122914786456 6654051064077556842993973623686279076537890477160907158869253835628402573582928 178404029229380767999068となり、Instiが示した値に切り上げられる。

見ていたコードが間違っている。適用されるコードはこちらだ:

bool CBlock::CheckBlock() const
{
...
    // タイムスタンプをチェック
    if (nTime > GetAdjustedTime() + 2 * 60 * 60)
        return error("CheckBlock() : block timestamp too far in the future");
...

bool CBlock::AcceptBlock()
{
   ...
    // 前のブロックに対してタイムスタンプをチェック
    if (nTime <= pindexPrev->GetMedianTimePast())
        return error("AcceptBlock() : block's timestamp is too early");

タイムスタンプは未来方向には最大2時間に制限されている。前のブロックより早い時刻にすることはできるが、直近11ブロックの中央値より大きくなければならない。このようにしている理由は、前のブロックのタイムスタンプが未来すぎた場合(今回起きたように)、次のブロックで時刻を修正できるようにするためだ。