Ссылка из хеша ДНК (не рекомендуется; читайте об якорях ниже)
Каждый пользователь может связать хеш ДНК с самим собой в функции genesis()
- хеш ДНК - это один хеш наDHT, что все знают.Тогда все, что вам нужно сделать, это getLinks(App.DNA.Hash, "user")
, чтобы получить их все.(обратите внимание, это может стать огромным списком. Я также чувствую себя плохо для бедных узлов, которые находятся по соседству с хешем ДНК ... это много метаданных для хранения.
Делая это вGenesis
Это можно сделать с помощью функции genesis, я сделаю это на старом языке holochain-proto, если вы не возражаете:
function genesis() {
commit({ Links: [ { Base: App.DNA.Hash, Link: App.Key.Hash, Tag: "registered_user" } ] };
}
Это создаст что-то вродевещь «зарегистрированный агент» для каждого нового человека, который присоединяется.
Проблема с этим подходом
это немного антипаттерн, потому что избыточная копия ДНК также живет в DHT,и бедные души, чьи узлы находятся в хэш-окрестности ДНК DHT, будут иметь более высокую нагрузку, чем другие. Прямо сейчас я бы порекомендовал вместо этого якоря. Якоря - это не что иное, как шаблон, который состоит из строкового входа + ссылки.создаст якорь с содержимым "registered_users"
и ссылку с этого якоря на любого агента, который входит в совет.Тем не менее создает точку доступа для тех, кто содержит запись якоря, но ожидается, что ваше приложение будетУ меня будет несколько таких якорей, и, по крайней мере, им не нужно будет свисать с одного хэша ДНК.
Связывание с якорями
якоря mixin (в настоящее время совместим только с hc-proto) имеет идемпотентную функцию для создания привязки, поэтому каждый пользователь может безопасно вызывать anchor()
без повторного создания существующей привязки.