Изменчивость
Данные в Irys являются неизменными. Однако вы можете имитировать изменчивость, используя изменяемые ссылки. С помощью изменяемых ссылок вы создаете единый статичный URL-адрес, который связан с последовательной серией транзакций.
Вы можете в любое время добавить новую транзакцию в серию транзакций, и URL-адрес всегда будет изменяться в последней транзакции в сети.
Чтобы создать изменяемую ссылку:
Загрузите базовую транзакцию в Irys и сошлитесь на нее, используя URL-адрес в следующем формате https://gateway.irys.xyz/mutable/:txId
const irysUploader = await getIrysUploader();
const receiptOne = await irysUploader.upload("First TX");
console.log(`TX 1 uploaded https://gateway.irys.xyz/mutable/${receiptOne.id}`);Загрузите дополнение к серии в качестве новой транзакции и добавьте тег с именем Root-TX со значением исходного идентификатора транзакции.
const tags = [{ name: "Root-TX", value: receiptOne.id }];
const receiptTwo = await irysUploader.upload("Second TX", { tags: tags });
console.log(`TX 2 uploaded https://gateway.irys.xyz/mutable/${receiptOne.id}`);Исходный URL-адрес (https://gateway.irys.xyz/mutable/:txId) теперь изменяется во второй транзакции в сети.
Детализация
Изменяемые ссылки основаны на временных метках Irys с точностью до миллисекунд. Вы можете публиковать несколько последовательных обновлений для данной транзакции и быть уверенными, что транзакция, обслуживаемая конечной точкой /mutable/, всегда будет самой последней в хронологическом порядке.
Версионность
Хотя конечная точка https://gateway.irys.xyz/mutable/:txId всегда будет изменяться в самую последнюю транзакцию в цепочке, можно напрямую получить доступ к любой транзакции в цепочке, используя идентификатор транзакции и URL-адрес в формате https://gateway.irys.xyz/:id
Вы можете запросить цепочку версий с помощью GraphQL:
query getChain {
transactions(
tags: [
{
name: "Root-TX"
values: ["WF--VR1ZERvABYy1aNYD3QJ0OAVDSUF8dTlg6zFKveQ"]
}
]
owners: ["0x591b5ce7ca10a55a9b5d1516ef89693d5b3586b8"]
order: ASC
) {
edges {
node {
id
timestamp
}
}
}
}Примеры использования
Изменяемые ссылки Irys открывают новые возможности для разработчиков, в том числе:
Игровые NFT: метаданные изменяются в зависимости от действий в игре
Динамические NFT: изображения изменяются в зависимости от активности в цепочке
Распространение программного обеспечения: последняя версия всегда доступна по одной и той же ссылке
Публикация контента / социальные сети: контент может быть обновлен в любое время, и пользователи всегда будут иметь самую последнюю версию.
Оригинал статьи: https://docs.irys.xyz/build/d/features/mutability
Последнее обновление