Как необновленный узел читает транзакцию SegWit? [дубликат]

Я пытаюсь понять, как мой узел будет интерпретировать транзакцию SegWit , если я не обновлюсь.

  1. Даже если я не обновлюсь, я должен получать те же данные блока, что и все остальные, верно?

Если это так, допустим, мой узел получает блок, содержащий транзакцию segwit (т. е. один с a [marker][flag]и некоторые [witness]данные). Я не уверен, как мой узел будет интерпретировать данные...

  1. Если [marker][flag]есть [00][01], мой узел считывает это как 0 входов и 1 выход и по-прежнему считает эту транзакцию действительной?
  2. Если да, то как можно воссоздать TXID из [version][txins][txouts][locktime]формата данных транзакции [version][marker][flag][txins][txouts][witness][locktime]?

По сути, я не понимаю, как мой узел может получать транзакции с [witness]данными и по-прежнему считать эти блоки действительными.

Спасибо Питер. Тот и задал (и ответил) на мой вопрос острее.

Ответы (1)

Узел Segwit будет преобразовывать транзакции и блоки «на лету», отправляя их на ваш необновленный узел. Вы увидите выходы, которые может потратить любой, и выкупы от таких выходов. Вы не увидите никаких дополнительных флагов, данных свидетелей и прочего segwit.

Спасибо. Получается, узлы Segwit отправляют урезанную версию блоков своим подключенным узлам, не использующим Segwit?
Что происходит во время эстафеты? Например, если узел segwit отправляет транзакцию segwit на старый узел, является ли эта транзакция мусором после этого, или узел segwit, который получает транзакцию от старого узла, каким-то образом реконструирует эти данные?