Как работает Обновление IPNS-ссылки - PullRequest
0 голосов
/ 18 октября 2018

У меня есть каталог, который содержит несколько файлов, которые я добавил в ipfs.Когда я делаю это, я получаю список всех хэшей для файлов, содержащихся в каталоге.

Например:

File1.txt QYNOSMSLDFKAL12345
File2.txt QYNOSMSLDFKAL12346
File3.txt QYNOSMSLDFKAL12347

Теперь я публикую этот ipfs-хэш каталога в ipns,и попробуйте получить File2.txt, используя следующую ссылку на шлюз:

http://ipfs.io/ipns/<ipns hash>/File2.txt

Как, когда кто-то пытается получить файл на шлюзе, как именно он находит, где находится хэш ipns?(и впоследствии файлы, содержащиеся в каталоге, связанном с этим хешем)

Я спрашиваю об этом, потому что мне интересно, что происходит в следующей ситуации:

Теперь я изменяю File1.txt в каталоге, которыйЯ хэшировал ранее.Когда я снова добавляю каталог, я замечаю, что изменился только хэш File1.txt, что имеет смысл.Теперь у меня есть:

File1.txt QYNOSMSLDFKAL99999
File2.txt QYNOSMSLDFKAL12346
File3.txt QYNOSMSLDFKAL12347

Теперь я переиздаю эту ссылку на ту же ссылку ipns, что и раньше.

Теперь, когда кто-то пытается получить файл, который ранее обслуживал шлюз ipfs, который не изменился, например.File2.txt - должен ли шлюз запускаться с нуля при попытке найти этот File2.txt, даже если его хэш ipfs идентичен ранее, а его ссылка на ipns будет идентична?

т.е.http://ipfs.io/ipns//File2.txt

Суть, к которой я обращаюсь, - это огромные накладные расходы при обновлении ссылок IPNS, если большинство файлов, содержащихся в новом каталоге, не изменены?

Заранее спасибо,

Том

1 Ответ

0 голосов
/ 19 октября 2018

Если вы используете шлюз и используете ссылку, содержащую IPNS, контент загружается каждый раз, когда вы просматриваете ссылку.Самое большее, это может быть заголовок кэша на несколько секунд.Это неизбежно, поскольку значение имени IPNS может измениться в любое время.

Если вы взаимодействуете непосредственно с IPFS, разрешение пути, например /ipns/<ipns hash>/File2.txt, представляет собой двухэтапный процесс.Сначала имя IPNS преобразуется в хеш IPFS.Затем содержимое этого хэша передается на лист.

Таким образом, чтобы разрешить вышеуказанный путь, имя IPNS должно в настоящее время указывать на хэш IPFS, который является объектом каталога, имеющим дочерний элемент.с именем File2.txt.

Если вы не используете шлюз, ваш локальный демон IPFS заметит, что, хотя объект каталога изменился, File2.txt все еще имеет хэш QYNOSMSLDFKAL12346и не загрузит его снова.

...