Как воспроизвести деление Arweave на фрагменты при коротком остатке
Загрузчик, который всегда режет файлы строго по 256 КиБ, может получить другой корень данных, чем arweave-js, если файл ненамного больше этой границы.
Примените корректировку последней пары
Для файла 260 КиБ первый полный фрагмент оставил бы только 4 КиБ. Эталонный алгоритм замечает положительный остаток меньше 32 КиБ и делит оставшиеся данные на две почти равные части. Здесь обе части содержат ровно 133 120 байтов. Сохраните их границы при построении листьев дерева.
input = 266240 bytes (260 KiB)
naive split = 262144 + 4096
reference split = 133120 + 133120
Сопоставьте корень данных
Создайте одинаковый тестовый файл для обеих реализаций и сравните границы до сравнения корней. При совпадении границ и расхождении корней проверьте хеширование листьев и кодировку смещений. Пример охватывает короткий остаток; для пустого файла и точных кратных нужны отдельные примеры.