Я ищу реализацию DHT, где элементы данных привязаны путем добавления адреса последователя к сохраненным значениям, если каждый узел может иметь одно из трех упорядоченных состояний: Empty -> Data -> Data and Successor Address сверстники получают последовательный и правильный порядок? или возможны постоянные разветвления здесь?Является ли DHT (kademlia) способным надежно хранить цепочки ценностей?
ответ
В принципе это возможно с некоторыми ограничениями и поддержкой узлов.
Чтобы иметь дело с несколькими версиями, вам необходимо иметь правильное управление версиями. Чтобы надежно увеличивать их без столкновений, вам нужен один источник. Для обеспечения единственного источника вам придется подписать данные. Подписанные данные обычно хранятся под ключами, полученными из открытого ключа. Таким образом, поисковый узел должен либо каким-то образом получить открытый ключ, либо вам понадобится другое косвенное разрешение для разрешения читаемых человеком ключей на открытые ключи.
DHT.put("keyword", Pubkey)
DHT.get("keyword") => List<Pubkey>
DHT.put(Pubkey, Tuple<Value, ForwardPointer, VersionNumber>, Pubkey, Signature)
DHT.get(Pubkey) => List<Tuple<Tuple<Value, ForwardPointer, VersionNumber>, Signature>>
Обратите внимание, что первый аргумент всегда будет хэшироваться. Также обратите внимание, что API-интерфейсы являются асимметричными, возвращают списки и добавляют дополнительные параметры для целевых узлов для обработки и проверки.
I.e. хранящиеся узлы должны делать немного больше работы, чем просто «хранилище с немым ключом»
Редактирование: в вашем конкретном случае вы, вероятно, можете пропустить номер версии и использовать отсутствие/наличие указателя вперед в качестве неявного приращения версии ,
В принципе вы можете реализовать любую структуру данных поверх DHT. все, что вам нужно, это хранение и указатели на другие ключи. Например. список может быть реализован как изменяемые узлы, которые изменяют свои указатели вперед или неизменяемые узлы + один изменяемый указатель на голову.
Для более быстрого обхода сортированных деревьев или списков пропусков можно также счесть целесообразным.
- 1. realtime p2p streams with dht
- 2. Является ли CLR способным к статическим интерфейсам?
- 3. Является ли clarifai способным распознавать логотип
- 4. Является ли arraylist способным функционировать с JOptionPane
- 5. Является ли Robotlegs способным выполнять эту задачу?
- 6. Является ли ReportViewer способным отправлять почтовые ярлыки?
- 7. Является ли QuickSort способным переполнять стек?
- 8. Является ли objectLoader трём.js способным загружать текстуры?
- 9. Является ли JIT способным оптимизировать распределение памяти?
- 10. Является ли DLR способным компилировать клиентский код?
- 11. Является ли Java способным контролировать процесс?
- 12. Надежно хранить пароль hash django
- 13. Как протокол Kademlia гарантирует сверстники, образующие связный граф?
- 14. Как Kademlia/DHT получает идентификатор узла и обновляет сверстников, покидающих рой?
- 15. Возможны ли ассоциации объектов ценностей?
- 16. Проверьте, является ли вызов методом цепочки
- 17. Является ли метод цепочки медленным C++?
- 18. Проверьте, является ли вызов методом цепочки PHP
- 19. Рубин проверить, является ли метод цепочки valud
- 20. Effiencient Kademlia Buckets
- 21. Является ли оценщик JavaScript UIWebView способным использовать объект RegExp JS?
- 22. Является ли Perl CAM :: PDF способным объединять объекты аннотации?
- 23. Является ли MQTT способным сохранять сообщения в базе данных
- 24. Является ли GHC способным оптимизировать операции ввода-вывода?
- 25. Является ли цикл foreach не способным обрабатывать ссылки в PHP?
- 26. Является ли это условие сравнения даты SARG-способным в SQL?
- 27. Является ли это способным к смене класса хранения существующих объектов?
- 28. Является ли PHP PDO способным к расширенным связям?
- 29. Является ли Open XML SDK 2.5 способным пересчитывать формулы Excel?
- 30. Является ли RedBean ORM способным создавать уникальные ключи?