Как сверить хеш медиафайла в метаданных NFT сети NEAR
После обновления CDN ссылка на медиа может вернуть другие байты. Если в метаданных NEP-177 есть media_hash, исходный хеш позволяет проверить полученный файл.
Получите исходные байты по ссылке media
Прочитайте метаданные токена и при необходимости base_uri коллекции. Разрешите ссылку media и сохраните исходный файл как downloaded-media.bin. Уменьшенное или повторно сжатое превью отличается от оригинала на уровне байтов.
import base64, hashlib
with open("downloaded-media.bin", "rb") as asset:
digest = hashlib.sha256(asset.read()).digest()
print(base64.b64encode(digest).decode("ascii"))
Сопоставьте хеши в одной кодировке
Сравните выведенную строку base64 с media_hash. Скрипт вычисляет SHA-256 от байтов файла и кодирует в base64 полученные 32 байта. Если закодировать печатную строку шестнадцатеричного хеша, получится другое значение. Зафиксируйте token ID, блок наблюдения и URL.
При отсутствии хеша целостность остаётся непроверенной. Для внешнего документа метаданных применяется reference_hash. Это отдельная проверка другого содержимого.