2015-01-20 2 views
2

Я ищу реализацию DHT, где элементы данных привязаны путем добавления адреса последователя к сохраненным значениям, если каждый узел может иметь одно из трех упорядоченных состояний: Empty -> Data -> Data and Successor Address сверстники получают последовательный и правильный порядок? или возможны постоянные разветвления здесь?Является ли DHT (kademlia) способным надежно хранить цепочки ценностей?

ответ

3

В принципе это возможно с некоторыми ограничениями и поддержкой узлов.

Чтобы иметь дело с несколькими версиями, вам необходимо иметь правильное управление версиями. Чтобы надежно увеличивать их без столкновений, вам нужен один источник. Для обеспечения единственного источника вам придется подписать данные. Подписанные данные обычно хранятся под ключами, полученными из открытого ключа. Таким образом, поисковый узел должен либо каким-то образом получить открытый ключ, либо вам понадобится другое косвенное разрешение для разрешения читаемых человеком ключей на открытые ключи.

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. все, что вам нужно, это хранение и указатели на другие ключи. Например. список может быть реализован как изменяемые узлы, которые изменяют свои указатели вперед или неизменяемые узлы + один изменяемый указатель на голову.

Для более быстрого обхода сортированных деревьев или списков пропусков можно также счесть целесообразным.

Смежные вопросы