我正在开发一款需要分布式去中心化名称解析的软件应用,并且不受 TCP/IP 的约束。或者更准确地说,我需要存储一个“密钥”并查找它的值,密钥可以是字符串、数字或任何其他实际数据类型。
例子:
- 使用电话号码查找姓名。(或使用区号重定向到处理该交换的服务器)
- 使用 IP 地址获取 DNS 名称或 Whois 联系人(字符串值)
- 使用字符串获取 IP(如 DNS TXT 或 SRV 记录)。
我正在跳出思维定式,寻找任何可以实现这一点的软件。(更多信息见下文)
- 是否存在任何安全、可扩展且声名狼藉的 DNS 替代方案?
我可以在 StackOverflow 上提问,但我认为基础设施小组对此会有更好的见解。
编辑更多信息:
我正在研究比特币的 DNS 版本“Namecoin”,由于该项目摇摇欲坠,我正在寻找存储名称-值对的替代方法,并带有可选限定符。
我认为名称值对具有全球意义是有用的,但规模有限。Namecoin 试图做太多事情,最终却一无所获。我正在研究替代方案并在适用的情况下应用分布式技术来解决这个问题。
比特币/Namecoin 提供了分布式哈希表,它有一些积极的方面,但对于 DNS 没有用,根服务器除外。
答案1
任何数据库都可以做到这一点。LDAP 就是其中之一。任何通用 RDBMS 都是另一个。DNS 和 TXT 记录都可以做到这一点。
安全——防止什么?防止窥探和冒充?使用 IPSec。
分布式 - 您需要在此处定义术语。您可以为上述许多选项“分布”存储层。您需要即时一致性还是最终一致性?某些更新是否需要比其他更新传播得更快?您可以查看 MS 如何处理 AD 中的多主复制,以了解处理这些问题的一些方法。如果您需要始终保证一致性,则可能需要一个可以确认所有写入的单个主服务器。
您实际上并没有给我们提供更多可供参考的假设 - 您没有定义哪些实体存储信息、哪些实体写入信息、哪些实体读取信息,也没有定义它们如何执行此操作,特别是如果它不是通过 TCP/IP 进行的话。
我认为您在一个问题中问了太多问题,并且没有对其中任何一个或大多数问题进行足够好的定义以便我们能够回答。
编辑 - 我投票支持 SO,因为您要求的工具类型通常不在系统管理员的武器库中。我在“分布式 JSON”上进行了一些搜索,发现了很多类似的东西:
https://code.google.com/p/persevere-framework/
如果您没有使用可以使用 JSON 的东西,那么我相信您可以找到一个类似的项目,无论您使用哪种语言,或者一个 JSON 库。
但是,如果像 DNS 这样的技术不能满足要求,那么这似乎是一个编程和设计问题。