Попытка работать свой путь через код в соответствии с принципом Ричарда Фейнмана обучения "То, что я не могу производить - Я не понимаю",
Итак, я достиг другое место, я не понимаю.
Каждый узел всегда считает самой длинной цепью правильным. Да?
ОК. Что произойдет, если есть две длинные цепи.
Ну, это не проблема для будущего всей системы, так как, в конечном счете, будет длинной цепью снова. Коэффициенты экспоненциально убывают для "две одинаково длинные длинные цепи" чтобы выжить в долгосрочной перспективе.
Это говорит: один узел (и, аналогично, blockexplorer) имеет в любой данный момент времени понятие о том, что является самой длинной цепи (даже если есть две одинаково длинные цепи). Я проверил код. В -printblock функциональности нет четкого ответа на это, и я еще не успел переварить алгоритмы реорганизации цепи, чтобы понять этот аспект.
Итак, предположим, что есть такая ситуация:
ДО НАШЕЙ ЭРЫ
/
GENESIS-A
\
X-Y
Что означает отдельный узел или блок исследователь считают самой длинной цепи? ГЕНЕЗИС-А-В-С или GENESIS-А-X-Y?
Этот вопрос может быть рассмотрен академических, так как в конечном счете одна из цепей стабилизируется и станет самым длинным.
Но там может быть один интересный аспект здесь. Я думаю, что для стабилизации быстрой цепи, важно, что узлы выбрать ту же цепь, правильная цепочку. Предположим, 1/2 из узлов выбрать GENESIS-A-B-C, а другой 1/2 из узлов выбрать GENESIS-A-X-Y. В этом случае "боевой" для правильной правильной цепи может занять гораздо больше времени. Теперь предположим, что все узлы выбрать GENESIS-A-B-C. В этом случае "боевой" будет закончена довольно быстро (не обязательно в пользу GENESIS-A-B-C, хотя, но шансы на колеблющихся вперед и назад должно быть меньше).
Любые идеи по этому поводу?