LINUX.ORG.RU

История изменений

Исправление filosofia, (текущая версия) :

Технически, чтобы выполнять функции ноды, нода должна установить соединения с пирами и передавать информацию полученную от одного пира другим. Это постоянный процесс. Соответственно, соседние пиры прекрасно знают - получают ли они информацию он некоей ноды или нет.

Это на самом деле самое сложное — синхронизировать общее состояние сети. Да, ты можешь знать состояние своих соседей, но всю сеть ты не видишь.

Соответственно, никаких замороченных алгоритмов вообще не требуется. Ноды от которых не приезжают транзакции просто по факту не участвуют в сети, и, соответственно, в розыгрыше шанса подписать эти самые транзакции. А если нода обменивается пересылаемыми транзакциями с пирами - то она выполняет свою работу.

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

Можно пойти решать это полностью связанной сетью, то есть все пиры знают обо всех других. Само по себе это сильно плохо, но пусть будет. Сеть все равно не стабильна. Все время появляются новые ноды и выключаются старые. Создал ты блок на основе картины мира А. Через минуту этот блок пришел на мою ноду, сейчас картина мира В. Как верифицировать? Хранить всю историю изменения сети? Где? Что делать с нодами, которые бутстрапятся, ведь у них нет этой истории, как верифицировать блоки в этом случае?

Третья проблема. Как синхронизировать состояние полностью связанной сети между всеми пирами одновременно? Допустим, ты включил новую ноду, она представилась половине сети, второй половине еще не успела. Майнер создает в этот момент блок, половина сети его примет, вторая нет. Значит надо создавать блоки только в те моменты, когда у всех пиров одинаковая «закоммиченная» картина мира. Как делать? Еще одним консенсус протоколом? :)

Можно забить болт на все эти проблемы, пусть каждый майнер ЧЕСТНО выписывает награды своим соседним пирам, а остальные ноды верят ему на слово. Это будет не блокчейн, в привычном понимании. И в нем точно не будет никакой экономики.

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

Исходная версия filosofia, :

Технически, чтобы выполнять функции ноды, нода должна установить соединения с пирами и передавать информацию полученную от одного пира другим. Это постоянный процесс. Соответственно, соседние пиры прекрасно знают - получают ли они информацию он некоей ноды или нет.

Это на самом деле самое сложное — синхронизировать общее состояние сети. Да, ты можешь знать состояние своих соседей, но всю сеть ты не видишь.

Соответственно, никаких замороченных алгоритмов вообще не требуется. Ноды от которых не приезжают транзакции просто по факту не участвуют в сети, и, соответственно, в розыгрыше шанса подписать эти самые транзакции. А если нода обменивается пересылаемыми транзакциями с пирами - то она выполняет свою работу.

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

Можно пойти решать это полностью связанной сетью, то есть все пиры знают обо всех других. Само по себе это сильно плохо, но пусть будет. Сеть все равно не стабильна. Все время появляются новые ноды и выключаются старые. Создал ты блок на основе картины мира А. Через минуту этот блок пришел на мою ноду, сейчас картина мира В. Как верифицировать? Хранить всю историю изменения сети? Где? Что делать с нодами, которые бустрапятся, ведь у них нет этой истории, как верифицировать блоки в этом случае?

Третья проблема. Как синхронизировать состояние полностью связанной сети между всеми пирами одновременно? Допустим, ты включил новую ноду, она представилась половине сети, второй половине еще не успела. Майнер создает в этот момент блок, половина сети его примет, вторая нет. Значит надо создавать блоки только в те моменты, когда у всех пиров одинаковая «закоммиченная» картина мира. Как делать? Еще одним консенсус протоколом? :)

Можно забить болт на все эти проблемы, пусть каждый майнер ЧЕСТНО выписывает награды своим соседним пирам, а остальные ноды верят ему на слово. Это будет не блокчейн, в привычном понимании. И в нем точно не будет никакой экономики.

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