Храните файл в XRP Ledger
Картинка вашего токена или любой другой файл записываются в тот же реестр, что и токен, а читаются с проверкой по отпечатку.
Приложение для Windows, которое записывает ваши файлы в реестр.
Кубы изображают фрагменты настоящего файла и появляются по мере чтения из реестра. Когда каждый блок проверен по отпечатку, рядом появляется сам файл.
Ссылки на метаданные умирают
Если NFT, MPT, DID или удостоверение хранит картинку и описание вне реестра, в записи есть только ссылка. Сам файл лежит в IPFS, на сервере эмитента или в корзине S3.
- IPFS без закрепленияЗакрепление перестают оплачивать, и файл пропадает из IPFS.
- Закрытый серверКомпания закрывается или переезжает, и по адресу приходит ошибка.
- Закрытое хранилищеАккаунт в облаке закрывают, и файлы исчезают вместе с ним.
Эта запись остаётся в реестре, а файл по её ссылке можно потерять. С xrpl-file файл записан в тот же реестр транзакциями, которые нельзя изменить или удалить, и проверить его по отпечатку может любой, не доверяя ничьему серверу. Ссылка xrpl-file занимает 84 байта, а поле URI у NFT вмещает 256.
От файла до ссылки и обратно
-
Нарезка
Файл режется на фрагменты по 1000 байт.
-
Запись в транзакции
Каждый фрагмент записывается в отдельную транзакцию, в поле memo.
-
Отпечаток
Каждые 1024 фрагмента образуют блок, а хэш блока попадает в список блоков. Последняя транзакция, манифест, хранит отпечаток всего списка. Хэш этой транзакции и есть ссылка.
-
Чтение и проверка
Любой, у кого есть ссылка, получает фрагменты от узла XRP Ledger, собирает файл и сверяет каждый блок с отпечатком. Если файл не совпал с отпечатком, он не показывается. Сервер этого сайта в чтении не участвует.
Сколько это стоит
Файл записывается примерно по одной транзакции на каждый килобайт, с аккаунта для публикации в приложении. С одного аккаунта можно записать сколько угодно файлов, а когда он больше не нужен, приложение его закрывает. Расходы бывают двух видов. Комиссии тратятся. Резерв аккаунта удерживается, пока аккаунт существует, и большая часть резерва возвращается, когда аккаунт закрыт.
Таблица цен сейчас недоступна. Цифры есть и в файле данных price.json.
Навсегда и для всех
Удалить нельзя
Записанное в реестр остаётся в нём. Удалить или изменить его не может никто, ни вы, ни мы.
Читать может любой
Файл может прочесть любой. Данные реестра открыты всем, а ссылка не секрет.
Публикуйте только то, что готовы показывать всему миру навсегда: не пароли, не личные данные, не картинку, прав на которую у вас нет.
Разработчикам
Формат описан в спецификации. В репозитории лежат библиотека для .NET и модуль чтения для браузера.
Показать файл на своей странице
Добавьте скрипт и элемент. Скрипт закреплён на версии 1.2.0 и проверяется по значению integrity: если файл изменится, браузер не станет его выполнять.
Из npm, через jsDelivr
<script src="https://cdn.jsdelivr.net/npm/xrpl-file-element@1.2.0/xrpl-file-element.js"
integrity="sha384-3Ng6D0oyDdNcgbs1hTua5zQaHdn4E/3o7gnxr0ecp2jVh2kP2KbJymnO++iWWvP+"
crossorigin="anonymous" defer></script>
<xrpl-file src="xrpl-file://mainnet/9B1A9E33DBD9B445BFE2854D4D489DC860869D873AD36DA30A69DD19DDBC0DF5"></xrpl-file>
width и height задают размер, loading определяет, когда начнётся чтение, theme задаёт светлую или тёмную палитру, а node указывает узел, с которого читается файл. Полный список в README: Вставка файла.