# 【Decentraland通信协议改进】即将到来的通信协议变化的快速预览

By [Decentraland 中文社区](https://paragraph.com/@decentraland-2) · 2022-04-02

---

![](https://storage.googleapis.com/papyrus_images/ed13fa94b6984462f28f367c0826f9cb99c12234b957d8af768699c941e3e8fc.png)

_2021-8-3文章_

这篇文章将深入探讨 Decentraland 中玩家与玩家之间的通信是如何运作的，以及这将如何变得更好。我们将获得相当的技术性，但我们会尽量保持其要点平易近人。

即将发生的变化将使大型活动和玩家聚会成为可能，让世界变得更加充满活力。自从 Decentraland 推出以来，我们就设置了一些限制，限制每个进入世界的玩家与同一位置的其他玩家保持联系。然而，Decentraland 通信协议即将发生的变化将使每个玩家能够与更广泛的对等点进行交互，为更强大和可扩展的通信协议和更大的事件铺平道路。

### 当前限制

您可能已经知道，Decentraland 使用服务器和层将玩家放在单独的包含组中。您可能已经注意到，Decentraland URL 包含一些随机名称，后跟颜色，例如“fenrir-ambar”或“unicorn-blue”。第一个名称是服务器，颜色表示该服务器中的图层。

为什么我们要把玩家分成几组？这是因为在不炸毁服务器的情况下，可以进行 1 对 1 连接的人数是有限的。有一个简单的数学公式可以说明当您向网络中添加更多人时，点对点通信如何呈指数增长。如果你想学习数学，谷歌“梅特卡夫定律”，但为了用一个简单的例子来说明这个概念，假设我们有一组 4 人，他们都相互联系。起初，总共有 6 个连接需要跟踪。引入第 5 个人，增加 4 个新联系人，总共 10 个。添加第 6 个人，这次我们需要添加 5 个新联系人，使总数达到 15。继续这样做一段时间，你会意识到指数增长的力量不是你想要搞砸的。因此，至少现在，硬性限制设置为 100 名玩家。

![](https://storage.googleapis.com/papyrus_images/991ccf597cb9c4af6cc629be2c2adf7bf27a7ddda49eaef41b177eea877d4007.jpg)

这意味着在构成 Decentraland 通信网络的所有服务器上，我们每层只能有 100 个玩家。一个服务器可能有多个层，但这些层都不能超过 100 个玩家，而且这些层中的每一层都像它自己的服务器一样孤立。我们称这些孤立的群体为“领域”。不同领域的玩家无法互相见面、互动或公开聊天，即使他们在同一个地块上并排站在一起。

这种设计很强大，因为它使我们能够在我们的服务器上处理大量用户，但它是有代价的：

• 您只能遇到当前世界上的一小部分其他玩家或与之聊天。 • 大型拥挤的活动可能只会感觉部分人满，因为您只与您所在图层上恰好也在同一位置的人有联系。如果您图层中的 100 名玩家在地图的其他地方闲逛，您可能会感到完全孤单。 • 令人困惑的用户体验，因为领域的概念不是很透明。事实上，它只在 URL 中公开。如果您尝试在给定位置加入朋友，如果你们最终处于不同的层次，则可能不会见面。需要非常高级的用户才能知道您可以通过更改 URL 的不那么漂亮的部分来在领域之间跳转。

### 什么即将到来？

进入[Archipelago](https://github.com/decentraland/archipelago)。这是一种组织对等点之间通信的新方法，它引入了通信岛的概念，而不是层。就像图层一样，岛屿是一种在服务器内将玩家分成子组的方式；**岛屿的新颖之处在于它们考虑了世界位置，并且随着玩家进出一个区域而动态调整。**

因此，您不必让 100 人共享一个图层并分布在整个地图上，而是在一个岛上，您只与您可能实际遇到的人分组在一起。例如，一个岛屿可能包括伏尔泰区及其周边地区的所有玩家。如果玩家从那里向南走到加密谷，他们将无缝切换岛屿以与其他地区的玩家联系。如果某个地区的玩家人数超过 100 人，那么该岛可能会缩小或一分为二。一个岛屿仍然永远不会包含超过 100 名玩家，因为总是将距离最近的玩家重新分组。

此协议更改将使我们能够：

• 去掉玩家脑海中“层”的概念，让事情变得更简单。玩家也不需要知道岛屿，如果他们在地图上走动，他们将能够遇到服务器中的每个人，感觉就像一个有凝聚力的空间。 • 减少用户之间的延迟。 • 提高 P2P 连接的成功率。 • 通过自动聚类用户和构建“连接孤岛”来利用 P2P 网络的当前限制。 • 支持多个重叠的岛屿，这应该保证一个有凝聚力的体验，同时可以让大量的人群占据同一个地方。 • 为未来的变化做好准备，这将为真正的大规模事件提供更大的可扩展性和支持。

我们非常高兴看到这从根本上改变了 Decentraland 的感受。作为场景创建者，这些更改不应影响您。作为一名玩家，当您在 Decentraland 周围散步时，您肯定会遇到更多的玩家。

### API 支持

正如您想象的那样，为了实现所有这些伟大之处，我们需要更改一些 API。因此，一些依赖领域和通信的社区制作的集成可能需要适应。如果您负责维护此类集成，请查看更改并在可能时进行调整。尽管这可能需要一些额外的工作，但这些变化将为 Decentraland 平台和社区带来巨大的价值。

在以下[公共架构决策记录](https://github.com/decentraland/adr/blob/main/docs/ADR-35-coms-protocol-optimizations.md)中，您可以找到将引入的 API 更改的详细信息。

### 推出

已经有一个公共 Catalyst 在 [Peer Testing](https://peer-testing.decentraland.org/) 上实现了这些 API 更改。您可以使用[以下链接](https://play.decentraland.zone/?CATALYST=https%3A%2F%2Fpeer-testing.decentraland.org&ENV=org&realm=testing-amber)从资源管理器连接到对等测试服务器，并验证您的服务是否与新架构配合良好。

2021年8月16日是这些协议更改的目标推出日期。16日之后，我们可以期待看到探索 Decentraland 的社交体验发生一些剧烈变化。

**选择您常用的频道加入与我们联系，关注Decentraland(MANA)的最新动态**

**DCL基金会全球社区： 【**[**Official Website**](https://decentraland.org)】 【[**Telegram**](https://t.me/decentralandTG)】 【[**Blog**](https://blog.decentraland.org)】 【[**Twitter**](https://twitter.com/decentraland)】 【[**Discord**](https://decentraland.org/discord/)】

**DCL中文社区： 【**[**电报群**](https://t.me/+BtB90_SKDeQ4OGQ1)**】 【**[**推特**](https://twitter.com/decentralandcn)】 【[**微博**](https://weibo.com/decentralandcn)】 【**微信群**】请加微信ID ChinWaan 【**微信公众号**】manalandcn

---

*Originally published on [Decentraland 中文社区](https://paragraph.com/@decentraland-2/decentraland-16)*
