Скажем, я майнер, и мой блок генезиса в основной сети имеет конфигурацию X. Мне приходит транзакция для майнинга. Как мой клиент Ethereum подтверждает, что транзакция соответствует всем стандартам, установленным в моем генезис-блоке?
Насколько я понимаю, исходный блок отправителя транзакции и блок майнера должны быть идентичными для проверки транзакции. Как я могу сказать только из транзакции, что такое генезисный блок отправителя? Техническое объяснение всего этого протокола было бы превосходным.
сначала вы не майните транзакцию, а блоки, которые являются блоками транзакций.
Из вашего вопроса я полагаю, что существует путаница в отношении трех разных понятий:
Блок Genesis определяет правила для инициализации самой сети. Например, глядя на
https://github.com/ethereum/go-ethereum/wiki/Частная сеть
мы видим следующие параметры:
и вот как клиент geth анализирует и знает об этих параметрах: https://github.com/ethereum/go-ethereum/blob/master/params/config.go
Генезисные блоки отправителя и майнера не обязательно должны быть идентичными сами по себе , пока транзакция действительна, адрес имеет достаточно эфира, одноразовый номер на единицу больше, чем у последней исходящей транзакции, совпадает chainId и достаточно газа. выделено для исполнения.
Если транзакция не соответствует правилам одного генезисного блока, а не другого, она будет работать. Сама транзакция не ссылается на блок генезиса. Причина для chainId и nonce состоит в том, чтобы воспрепятствовать злонамеренному использованию подобных ситуаций в атаках воспроизведения. Однако, если вы в состоянии скоординировать все эти переменные, чтобы они совпадали, вы не являетесь злоумышленником и ничего не выигрываете.
Также обратите внимание, что если бы у отправителя и майнера были разные блоки генезиса, они были бы полностью в разных цепочках блоков. Майнер будет проверять, достаточно ли у отправителя баланса, основываясь на его известном состоянии, а не на известном состоянии отправителя. Такие транзакции будут действительными, если они просто совпадают.
Всегдавопрос
Адитья
Всегдавопрос
Адитья