биткойн репо sighash.json формат данных

Биткойн-энтузиаст здесь. Изучая «трудным путем» то, как работает биткойн (книги Андреаса, поиск реализаций js/python), я пишу (в качестве хобби) некоторый код здесь и там, чтобы понять вещи и протестировать их, я использую доступные тесты. в репозитории биткойнов на github. Но теперь я борюсь с теми, что в sighash.jsonфайле.

Какой формат кодирования используется для необработанных транзакций? (первый элемент в каждом массиве).

Я понимаю традиционный формат, который выглядит как 0100000000010280e688...000ffffffffe9b54...39da98ac00000000. Но тут я честно растерялся. В тестовом файле это не похоже на обычную транзакцию.

Пример :

907c2bc503ade11cc3b04eb2918b6f547b0630ab569273824748c87ea14b0696526c66ba74020000004ab65ababfd1f9bdd4ef073c7afc4ae00da8a66f429c917a0081ad1e1dabce28d373eab81d8628de802000000096aab5253ab52000052ad042b5f25efb33beec9f3364e8a9139e8439d9d7e26529c3c30b6c3fd89f8684cfd68ea0200000009ab53526500636a52ab599ac2fe02a526ed040000000008535300516352515164370e010000000003006300ab2ec229

Как я должен декодировать такую ​​строку?

Спасибо.

Ответы (1)

Вы декодируете их точно так же, как декодируете транзакцию. Это абсолютно достоверные транзакции, и декодер должен уметь правильно их декодировать и извлекать из них значимые данные. Причина, по которой они выглядят странно, заключается в том, что каждая часть транзакции генерируется случайным образом , поэтому поля не обязательно содержат данные, которые вы ожидаете (например, номер версии генерируется случайным образом вместо стандартного 01000000или 02000000).