Pinecone覆盖网络

2021-05-08 22:52:53

自2019年底以来,我们花了很多时间思考和探索不同的技术,同时为P2P矩阵构建各种演示。我们对P2P矩阵的使命是将矩阵延伸到今天之间的混合动力和纯粹的P2P网络之间的混合动力和纯P2P网络 - 如果他们想要的数据(通过将其存储在P2P矩阵中,则为用户提供全部自主权和隐私通过将他们的服务器嵌入到他们的矩阵客户端中),同时也让用户在Serverside节点中存储他们的数据,如果它们需要。

目标是保护元数据更好(因为用户不再依赖于其他人运行的服务器进行通信),以及推动新功能,如账户便携性,多宿主帐户,低带宽矩阵和更智能的联合传输 - 并通过矩阵提供对互联网网格通信的支持,该网上通信也可以与更广泛的网络互操作。您可以在上夏天介绍矩阵博客文章中了解更多有关它的信息,或者观看我们的FOSDEM 2021在我们预览PineCone的地方进行谈话。重要的是要注意,这是矩阵的一个小而重要的长期项目,并且一直在改善核心协议和参考实施的常见工作之外。

随着项目的进展,我们使用现有库(Go-libp2p,js-libp2p和yggdrasil)建立了各种原型,演示了如果它在移动设备上运行时可能觉得早期的P2P矩阵可能觉得使用这种覆盖网络的Web浏览器等。这些演示中的每一个都教过我们新的东西,所以在2020年10月我们决定采取这种知识来建立自己的实验新的叠加网络。

PineCone旨在提供设备之间的端到端加密通信,无论它们如何彼此相互连接,以轻量级和自我安排的方式。路由协议是一种混合动力车,通过构建全局生成树来获取来自yggdrasil的启发,而不是使用生成树拓扑转发所有流量,我们将其作为行/蛇拓扑的引导路由机制,由他们的ED25519公开订购键,我们被亲切地命名为Snek(依次联网Edwards键)路由。

节点在网络上寻找其最接近的Keyspace邻居,并且在这些节点对之间构建了路径,类似于Chord DHT函数的函数如何,填充过程中中间节点的路由表。然后,这些路径用于转发流量而无需执行上前搜索,允许在覆盖节点之间进行非常快的连接设置。这些路径对网络拓扑的变化,并且处理节点移动性比任何其他独立的路由方案显着更好,我们已经看到的 - 到目前为止,早期结果非常有前景。我们还在实验中尝试μTP(微传输协议)和TLS的组合,为PineCone网络携带的所有联合流量提供有状态连接设置,拥塞控制和端到端加密。

如果Pinecone备受出疑,我们的目的是与Libp2P和IPFS团队合作,将Pinecone路由合并到Libp2P(如果他们' ll拥有我们!),同时将其八卦路由合并以改善矩阵联合......并获得最好的路由世界都是:)

今天我们'重新释放我们当前早期Pinecone实施的源代码 - 您可以从Github获取它!它非常实验且没有很好地优化它,但它是我们最新的移动P2P矩阵演示的基础,它支持在蓝牙低能量网状网络上的P2P矩阵,LAN内的组播DNS发现和/或通过互联网上的静态PineCone对等体路由:

构建路由覆盖只是P2P矩阵之旅的第一步。 我们还将在未来几个月内仔细研究矩阵联合协议,在混合连接方案中运行良好(而不是今天使用的完整网格方法)以及分散的身份,具有现有家庭住宅的混合部署并获得枝晶() 矩阵主页,嵌入到当前P2P演示中)更稳定和特征完成。 P2P矩阵周围大多数讨论发生在#P2P:Matrix.org中,所以如果您对发生的事情感兴趣,请加入我们!