В каких сценариях размер блокчейна для биткойна может уменьшиться?

Я запускаю частную сеть биткойнов, для которой я изменил целевое время между двумя блоками на 12 secondsи настройку сложности на 25 blocksинтервал. Я запускал сеть около 4 часов с 50 узлами. В одном из логов ноды я заметил, что высота блокчейна увеличилась до максимального значения 181, а затем начала уменьшаться, вплоть до 38. Чем можно объяснить такое странное поведение.

Пожалуйста, обратитесь к журналу ниже:

2015-11-04 01:58:47 receive version message: /Satoshi:0.11.99/: version 70011, blocks=181, us=0.0.0.0:0, peer=2, peeraddr=127.0.0.1:44117
2015-11-04 01:58:47 UpdateTip: new best=0000005265ca4ce01ad0d06f45cf475bf303de3d64e942c5cf1177e00f346c78  height=180  log2_work=37.083283  tx=30941  date=2015-11-04 01:53:17 progress=1.000000  cache=0.0MiB(1tx)
2015-11-04 01:58:47 UpdateTip: new best=00000052a34cedf3c5ddbeb46d36644654523db855c4cce984d2623e840dd219  height=179  log2_work=37.082953  tx=30940  date=2015-11-04 01:53:10 progress=1.000000  cache=0.0MiB(2tx)
2015-11-04 01:58:47 UpdateTip: new best=00000030fd7652affb883f05fe0c98e7fe3fbc3cfd74808e061ed05ec61c22e6  height=178  log2_work=37.082623  tx=30939  date=2015-11-04 01:52:55 progress=1.000000  cache=0.0MiB(3tx)
2015-11-04 01:58:47 AddToWallet c32bcbd8102c602a5e71ee717232e204435f331dce6fbfb9eb5d552698faa95b
2015-11-04 01:58:47 AddToWallet 1c91517aeadd12bcbcfdf4a1423b671d405543ae9abfbd87078969ce1971663f
2015-11-04 01:58:47 AddToWallet b11f9c2e3b1ab3d3983da63783bb95903d89405243d0716ea88272a9261b7a33
Это действительно странно. Можете ли вы вставить полный журнал, в том числе, где блоки добавлены/удалены?
Согласен, не могли бы вы показать нам, где высота блокчейна уменьшилась до 38? В журнале, который вы выложили, этого нет.
Лучшая цепочка выбирается по наибольшей совокупной сложности, а не по высоте. Ваши модификации по существу обеспечили частые ответвления и реорганизации. Корректировки сложности в Биткойне длинные, отчасти из-за сопротивления атакам, но также и для того, чтобы избежать шумных движений цепи. Совершенно законно резкое уменьшение высоты цепи.
@Bitcoin Но опубликованный журнал bawejakunal показывает, что общая работа падает, когда клиент меняет блокчейн. До: height=181 log2_work=37.083613После: height=38 log2_work=36.832912цепочка из 38 блоков полностью содержится в цепочке из 181 блока.
@NickODell Я думаю, что в этом случае происходят другие ошибочные действия, которых мы не видим. Трудно сказать, не зная всего набора патчей.
@bawejakunal, я ничего не вижу в предоставленной вами ссылке. Пастербин попробовать?
@JimmySong повторно загружено: gist.github.com/niccodell/1d8f29faad7a566c08fd

Ответы (1)

Похоже, что эта часть кода добавляла все эти сообщения UpdateTip:

https://github.com/bitcoin/bitcoin/blob/8fe30fb4d130532d4a0e4c9d143f03e1b85a749e/src/main.cpp#L2234

По сути, биткойн считает, что в вашей сети с 4 узлами существует еще одна цепочка с более кумулятивной работой, хотя из журналов трудно сказать, насколько она снижается. Вам придется запустить его дольше, чтобы узнать.

О, так вы имеете в виду, что это случай переключения между двумя конкурирующими блокчейнами?
Да. Это могло произойти, если, например, один из ваших узлов не получал блоки, а только отправлял их.