您的位置 首页 > 德语词汇

identitymatrix是什么意思?用法、例句(Matrix大全系列4-10分钟轻松了解Matrix基本架构原理)

各位老铁们,大家好,今天由我来为大家分享identitymatrix是什么意思?用法、例句,以及Matrix大全系列4-10分钟轻松了解Matrix基本架构原理的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

1、Matrix定义了一系列可扩展JSON对象的API,用来在客户端、服务器和服务之间进行数据同步,这些同步的数据对象称之为“事件”。不论是运行即时消息(IM)、IP语音(VoIP)客户端,还是物联网(IoT)设备客户端,都使用“Client-ServerAPI”将通讯记录与“主服务器”同步来进行通讯。

2、每个主服务器存储其所有客户端的通讯记录和帐户信息,并通过与其他主服务器及其客户端同步通讯历史记录,与更多的Matrix生态系统共享数据。

identitymatrix是什么意思?用法、例句(Matrix大全系列4-10分钟轻松了解Matrix基本架构原理)

3、客户端通常通过在虚拟“房间”的上下文中发出“事件”来相互通讯。房间数据在用户参与给定房间的所有主服务器上复制。因此,没有一个主服务器能够控制或拥有给定房间。家庭服务器将通信记录建模为部分有序的事件图,称为房间的“事件图”,使用“Server-ServerAPI”与参与服务器之间的最终一致性同步。这种在由不同方运行的主服务器之间同步共享会话历史的过程被称为“联合”。Matrix以牺牲一致性为代价,确保了系统的可用性和分区性(详细参见CAP定理)。

4、例如,对于客户端A向客户端B发送消息,客户端A使用客户端-服务器API在其主服务器(HS)上执行所需JSON事件的HTTPPUT。A的HS将此事件附加到文件室事件图的副本中,在图的上下文中对消息进行签名以确保完整性。然后,A的HS通过使用服务器-服务器API执行HTTPPUT,将消息复制到B的HS。B的HS验证请求,验证事件的签名,授权事件的内容,然后将其添加到房间事件图的副本中。然后,客户端B通过长期GET请求从其主服务器接收消息。

5、下面对以上提出的概念,进行一一的说明。

6、每个客户端都与一个用户帐户相关联,该帐户在Matrix中使用唯一的“用户ID”进行标识。此ID与分配帐户的主服务器同名,其形式为:

7、以上用户ID表明,其账号是通过domain服务器注册分配的,其本地名称为localpart。

8、Matrix中“设备”具有特殊含义。作为一名用户,我可能有几个设备:桌面客户端、一些网络浏览器、安卓设备、iPhone等。它们广泛地与物理世界中的真实设备有关,但你可能在物理设备上有几个浏览器,或者在移动设备上有多个Matrix客户端应用程序,每个应用程序都是不同的设备。

9、设备主要用于管理用于端到端加密的密钥(每个设备都有自己的解密密钥副本),但它们也可以帮助用户管理访问权限,例如,通过撤销对特定设备的访问权限。

10、当用户第一次使用客户端时,它会将自己注册为新设备。设备的寿命可能取决于客户端的类型。Web客户端可能会在注销时放弃其所有状态,并在每次登录时创建一个新设备,以确保加密密钥不会泄露给新用户。在移动客户端中,如果登录会话到期,只要用户是相同的,那么重用该设备可能是可以接受的。

11、设备由device_id标识,它在给定用户的范围内是唯一的。

12、用户可以将人类可读的显示名称分配给设备,以帮助他们管理他们的设备。

13、Matrix交换的所有数据都表示为“事件”。通常,每个客户端动作(例如发送消息)都与一个事件相关。每个事件都有一个类型,用于区分不同类型的数据。根据Java的包命名约定,类型值必须是唯一的全局命名空间,例如com.example.myapp.event。特殊的顶级命名空间m是Matrix中定义的事件保留的,例如m.room.message是即时消息的事件类型。事件通常在“房间”的上下文中发送。

14、注意:事件体被视为不受信任的数据。这意味着,任何使用Matrix的应用程序在使用内容之前,都必须验证事件主体是否具有预期的形状/模式。

15、假设事件主体将具有预期类型的所有预期字段是不安全的。

16、有关此假设不安全的原因的更多详细信息,请参阅MSC2801。

17、在房间上下文中交换的事件存储在一个称为“事件图”,是有向无环图(DAG)。该图的部分顺序给出了房间内事件的时间顺序。图中的每个事件都有一个零个或多个“父”事件的列表,这些事件指的是从创建事件的主服务器的角度来看没有按时间顺序继承的任何先前事件。

18、通常,事件只有一个父级:发送时房间中的最新消息。但是,主服务器在发送消息时可能会合法地相互竞争,从而导致单个事件具有多个后续事件。因此,添加到图中的下一个事件将具有多个父级。每个事件图都有一个没有父级的根事件。

19、为了排序并简化图中事件之间的时间比较,主服务器为每个事件维护一个深度元数据字段。事件的深度是一个正整数,严格大于其任何父级的深度。根事件的深度应为1。因此,如果一个事件在另一个事件之前,那么它必须具有严格较小的深度。

20、房间是一个概念性的设计,用户可以在这里发送和接收事件。事件被发送到一个房间,该房间中所有有足够访问权限的参与者都将收到该事件。房间通过“房间ID”在内部进行唯一标识,其形式如下:

21、每个房间只有一个房间ID。虽然房间ID确实包含一个域名,但它只是用于全局命名房间ID。

22、房间类似于通常意义上的群组,但又不近相同。在Matrix中,任何发送和接收事件都必须在房间内进行,及时是两个人私聊的情况下也是需要一个房间。

23、下面的概念图显示了正在发送到房间!qporfwt:example.org的事件m.room.message:

24、“联合”会维护多个主服务器之间每个房间的共享数据结构。数据分为消息事件和状态事件。

25、消息事件:它们描述房间中的短暂“一次性”活动,如即时消息、VoIP呼叫设置、文件传输等。它们通常描述通信活动。

26、状态事件:这些事件描述了对与文件室相关的给定持久信息(“状态”)的更新,如房间的名称、主题、成员资格、参与服务器等。状态被设计为每个房间的键/值对的查找表,每个键都是状态键和事件类型的元组。每个状态事件都会更新给定键的值。

27、房间在给定点的状态是通过事件图中给定事件之前和包括该事件的所有事件来计算的。在事件描述相同状态的情况下,将应用合并冲突算法。状态解析算法是可传递的,不依赖于服务器状态,因为它必须一致地选择相同的事件,而不考虑服务器或事件的接收顺序。事件由发起服务器签名(签名包括父关系、类型、深度和有效负载哈希),并通过“联合”推送到房间中的参与服务器,当前使用全网格拓扑。服务器还可以请求通过“联合”从参与房间的其他服务器回填事件。

28、提示:事件不限于Matrix中定义的类型。使用Java包命名约定,可以随心所欲地创建新的或自定义的事件类型。例如,com.example.game.score事件可以由客户端发送,其他客户端将通过Matrix接收,假设客户端可以访问com.example命名空间。

29、每个房间也可以有多个“房间别名”,看起来像:

30、房间别名“指向”房间ID,是用于公布和发现房间的可读标签。别名所指向的房间ID可以通过访问指定的域来获得。请注意,从房间别名到房间ID的映射不是固定的,并且可能会随着时间的推移而变化,以指向不同的房间ID。因此,客户端应将房间别名解析为房间ID一次,然后在后续请求中使用该房间ID。

31、解析房间别名时,服务器还将响应房间中可用于通过加入的服务器列表。

32、Matrix中的用户通过其Matrix用户ID进行识别。但是,也可以使用现有的第三方ID命名空间来识别Matrix用户。Matrix“身份”描述用户标识和链接到其帐户的第三方命名空间中的任何其他现有标识。Matrix用户可以将第三方ID(3PID)(如电子邮件地址、社交网络帐户和电话号码)链接到其用户ID。链接3PID会创建从3PID到用户ID的映射。然后,Matrix用户可以使用此映射来发现其联系人的用户ID。为了确保从3PID到用户ID的映射是真实的,使用受信任的“身份服务器”(IS)的全局联合集群来验证3PID,并保留和复制映射。

33、为了使客户端应用程序成为Matrix生态系统的一部分,不需要使用IS。但是,如果没有一个IS,客户端将无法使用3PID查找用户ID。

34、用户可以发布与其帐户关联的任意密钥/值数据

35、例如人类可读的显示名称、个人资料照片URL、联系信息(电子邮件地址、电话号码、网站URL等)。

36、用户还可以在其帐户中存储任意私钥/值数据,例如缺少任何其他专用API的客户端首选项或服务器配置设置。API与管理配置文件数据是对称的。

37、到目前为止,我们通过本文可以清楚了解到:Matrix明确了客户端(Clients)、服务器(homeserver)、事件(Events)、事件图(EventGraphs)、用户(Users)、设备(Devices)、房间(Room)、身份(Identity),数据对象(JSONObject)等基本概念,规定了客户与服务器之间的数据同步、服务器与服务器之间的通讯联合的数据交换模式。基本架构和数据流动清楚明晰,下一步让我们继续深入Matrix,去了解更加细节的标准规范内容。

关于identitymatrix是什么意思?用法、例句的内容到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023