Надо глянуть исходники - как там реализовано, но в оригинале алгоритм задумывался так:
1. Если появились несколько цепочек, то принимаем обе и майним тоже соответственно обе.
2. Как только одна цепочка обогнала другую - начинаем майнить ту которая длиннее.
Неправильно. Никто не
гоняется за двумя зайцами майнит две цепочки.
Мэйнчейн в каждый момент времени один. И если клиент майнит - он майнит от последнего блока
в мэйнчейне. С другой стороны клиент принимает и записывает себе в базу все валидные блоки
которые ему присылают пиры. Валидный - это значит к нему есть родитель.
Если вдруг в результате такого разрастания дерева блоков клиент обнаруживает
что он находится не в мэйнчейне то есть организовалась цепочка по сложности превосходящая
мэйнчейн - клиент начинает считать её мэйнчейном.
Как точно считается сложность цепочки - я тут не особо копенгаген. Там какая-то вроде сложная
формула суммирования, включающая даже количество транзакций в блоке. Но, повторю, в деталях
не особо силен. Суммарная сложность из двух цепочек не обязательно будет больше у той, которая
длиннее, но в принципе для удобства можно считать и так в уме представляя себе "что под капотом"
Теперь возникает вопрос, что делать с хитрожопыми майнерами, которые продолжают
майнить более короткую цепочку и посылать ее блоки в сеть?
Имеют право. Может у них нет более длинной цепочки?
Не знаю точно, как сейчас это решается, но вроде кошель с
более длинной цепочкой банит такие хосты на некоторое время.
За что банить? Ну нет у человека блока 1000 - он и майнил себе от имеющегося у него 999-ого
Будучи забаненым большинством пиров, горе-майнер еще более безнадежно отстанет от главной цепочки.
угу
Вопрос в том - по какой причине длинная цепочка может перестать расти?
Думаю только по сговору майнеров, контролирующих большую часть мощности сети...
Это ты считаешь цепочку более длинной. И думаешь - а чего она сука не растет?
а весь остальной мир уже давно её обогнал и майнит свою длинную цепочку, которую
ты считаешь короткой.
Поэтому я и предлагаю внести элемент лотереи. Можно еще таким элементом
сделать перерасчет сложности не раз в 2 недели, а раз в час например ))
и ромбики нарисовать в эбауте.