Как прочитать фрагменты транзакции Arweave с конца по абсолютному смещению

Метод смещения транзакции возвращает абсолютную конечную позицию и размер. Метод фрагментов работает со смещениями общего хранилища weave, поэтому относительная позиция файла указывает не туда.

Вычтите размер декодированного фрагмента

Начните с возвращённой конечной позиции и запросите соответствующий фрагмент. В примере после декодирования получится 133 120 байтов. Вычтите их из остатка и абсолютного смещения, затем запросите предыдущий фрагмент. Число символов Base64URL сдвинет курсор слишком далеко.

absolute end offset = 900000
transaction size = 266240
last chunk size = 133120
preceding query offset = 766880

Восстановите прямой порядок

Обратите порядок полученных фрагментов и проверьте размер и корень данных транзакции. Храните абсолютные смещения в точных целых числах. Успешное чтение фрагмента подтверждает выдачу данных в этой позиции; связь собранного файла с нужной транзакцией устанавливает проверка корня.

Источники