DFINITY - 子网

子网

转自:https://mp.weixin.qq.com/s/odfACZ_Jd_NiW3fghxcolg

要理解互联网计算机,必须理解子网的概念。子网是整个网络的基础组成部分。一个子网负责托管一个互联网计算机软件容器的独特子集。子网通过NNS控制的方式把不同数据中心的节点机器汇聚在一起而创建的,这些节点机器通过ICP协议进行合作,对称地复制与它们所托管的软件容器有关的数据和计算。

NNS在构建子网时将来自不同数据中心的节点组合在一起,这使得ICP协议能够使用DFINITY开发的拜占庭容错技术和密码学技术在数学上保证子网不可篡改。尽管子网是整个互联网计算机的基本组成部分,但用户和软件使用起来是无感的。用户和容器软件只要知道容器的身份(identity)就可以调用该容器开放的函数。

这是传统互联网设计原则的延伸,在传统互联网中,如果用户想要连接到某些软件,他们只需要知道运行该软件的IP地址和端口。在互联网计算机中,如果一个用户想要调用一个函数,只需要知道软件容器的身份(identity)和函数的签名。就像传统互联网创造了无缝连接一样,DFINITY为软件创造了一个无缝连接的宇宙,在这个宇宙中,任何软件都可以在不知道网络底层工作原理的情况下直接调用其他软件。

NNS也确保了子网在其他方面的透明性。例如,NNS可以拆分和合并子网来均衡整个网络的负载,这对于被托管的软件容器来说也是透明的。

在这个例子中,我们有一个虚构的子网ABC,它包含11个软件容器(canister)。NNS对它进行拆分,生成一个新的子网XYZ包含7-11号canister,子网ABC中还有1-6号canister。其中所有的canister都不会因此而服务中断。 

当你上传你的软件容器到互联网计算机,你必须指定一个特殊的子网类型。事实上NNS就是运行在一个特殊的子网上,但你的容器不能部署在该子网上。相反,你需要指定一个子网类型,例如“data”、“system”或“fidciary”。

不同类型子网中的软件容器具有着不同的属性和功能。例如,如果你的容器被托管到一个数据子网,那么它可以处理调用但不能去调用其他软件容器。如果想调用其他的软件容器你需要一个system子网。如果你希望你的容器可以保存ICP Token或者发送cycles到其他容器,你需要一个fiduciary子网。出于这个原因,治理容器只能部署在fiduciary子网上。

子网的部分功能来源于底层的容错性。这是一个非常令人兴奋的基础科学领域,我们希望尽快与公众分享,包括允许 NNS 修复破损子网的新加密技术。

 

posted @ 2021-11-29 14:31  Helios_Fz  阅读(235)  评论(0编辑  收藏  举报