Если узел реорганизует свою цепочку, она катится назад все в снятом вилкой, а затем применяет все, что он находит в новой вилке.
Если я принесу новый узел, я полагаю, что все операции, которые еще не в блоке передаются на мой узел после того, как он подключается к партнеру. Какое-то образом, что сверстники знают об этих сделках, даже если они еще не в блоке. Я предполагаю, что это потому, что равноправные проводят операции, которые он слышит о в пуле памяти. Тогда не если блок приходит, что есть эти операции в нем, больше нет необходимости для передачи транзакций из пула памяти, так как они могут быть найдены в транслируемых blockchain. Означает ли это, что они не будут удалены из пула памяти и больше не передаются на новые узлы?
Теперь, если этот блок осиротел, и один из этих действительных (не двойных потраченных) сделок с этим сиротским блока не включены в новом blockchain, как новые узлы узнают о сделке?
Я предположил, что каждый узел загружает все транзакции из осиротевших блоков обратно в их пул памяти, а затем сравнивает эти транзакции с блоками в новом blockchain, чтобы увидеть, чтобы удалить (оставив в пуле памяти всех транзакций, которые были в сиротский блок, но не в новом blockchain). Является ли это точное представление о том, что происходит?
Да, неподтвержденные транзакции хранятся в пуле памяти. И да, когда сделка заканчивается в блоке, он удаляется из пула памяти. Блок содержит операции, поэтому в некотором смысле, ретрансляция блока реле операции, но они не отправляются
в виде сделок больше.
Если блок сиротой, сделки в нем будут добавлены в пул памяти, а затем новая цепь будет удалить некоторую часть из них сразу же обратно. Я на самом деле не уверен, что, если узел будет пытаться передать операции он имеет в памяти. Это не имеет значения, в конечном счете, хотя, потому что каждый узел проверяет свой собственный кошелек, и будет пытаться сейчас и затем повторно отправить все, что он думает, что он потратил, но до сих пор не видел в блоке. Таким образом, отправитель несет полную ответственность за получение их вещей, и если какие-либо другие узлы помогают, то это хорошо, но не обязательно. Если узел переходит в автономный режим, в конце концов их материал истекает.
Реальный код может оптимизировать вещи немного, создавая промежуточные наборы или любой другой, но у вас есть чистый эффект право. Любые сделки, которые были действительны до REORG и остаются в силу после REORG, но не были включены в новых блоках, по-прежнему будут в силе, и должны закончиться в пуле памяти. Но оказывается, что это будет так же, как действует выбросить их, потому что оригинальный узел будет повторно их.