DFINITY基本架构

DFINITY简介

DFINITY (Internet Computer): 通过结合区块链网络节点的集体计算能力来创建“Internet Computer”,从而彻底改变互联网。Internet Computer是基于Internet Computer Protocol(ICP)区块链计算协议实现。

DFINITY 的目标是成为一个快速、安全、可扩展的云平台,它将为公共互联网的扩展出更多的功能,允许用户直接部署应用程序和安装代码,而不会出现影响比特币和以太坊等其他主要区块链的拥堵问题。

DFINITY = 链 + 云,换言之链上的云。

系统组件

由小及大,下上贯穿

Canister

WebAssembly容器,罐子

Canister是DFINITY中管理的最小单位,它是用户应用的载体,允许WebAssembly的字节码在其中运行。

Canister具备3个属性:

一是智能合约:附加区块链功能;

二是Actor:自身数据只有自己可改,单线程执行无需锁,与外部交互只有消息

三是进程:WebAssembly, 用不Crash,可以被控制器创建、移动、销毁。

Canister只有两个标准接口update请求和query请求。

img

update请求会改变Canister内部状态(应用数据),多个Canister副本需保持结果一致性。

query请求不会改变Canister内部的状态,不需要保持结果一致。

Canister的接口不仅可以被外界访问,也可以Canister之间互相访问;多种不同的服务互相调用,本质上和K8S的微服务架构没有太多区别。

Canister中的程序和状态存储于子链上,在子链上持久化。Canister不提供直接访问硬盘的传统持久化功能。

Subnets

此子网非传统网络概念中的子网,而是指一堆物理节点(nodes)的集合。

子网运行着多个Canister,对于同一个Canister, 每一个node都作为副本运行它。

对于外界的update请求,Subnet通过共识机制首先对请求排序,获得一致性的执行顺序后,每一个node的canister都按此顺序执行,最后每个Canister执行完之后,再通过共识机制形成一致的结果。

对于外界的query请求,会被分配到就近的Canister执行,返回用户结果。

所以一个Subnet的nodes通常会设置的比较分散,便于各地的用户就近访问。

img

NNS (Network Nervous System)

NNS是管理所有资源和决策的网络神经系统,可大致理解为去中心化的自组织的K8S容器管理平台。

NNS管理所有的物理节点,并将它们划分子网,为不用的应用创建Canister,按照一定规则将Subnet内的子链的结果同步于主链,猜测为rollup模式。

NNS本身是通过多条主链来管理这些资源,而具体的提案决策需要依赖神经元的共识机制–权益投票。

权益来源于质押的通证,通证的获取可以通过资源的提供,通证循环此处暂且不表。

img

计算服务

通过Subnet中的Canister部署用户程序,即可提供计算服务。一个Subnet可以看做是一台电脑,因为一个Subnet内的容器并行的副本计算,并达成共识。

如果需要更多算力呢,就得更多Subnet计算咯。按照Subnet 5台机器的话,那么实际算力使用率只有20%,如果做渲染/机器学习的话是不太适合这里的,浪费太多算力。

存储服务

DFINITY计算全靠Canister, 存储也是一样都在Canister的memory page里,但是DFINITY又限制了Canister的大小为4G,大规模的视频应用不可能部署在Canister上。

为了解决这个问题,DFINITY专门设计了数据存储的Data Canister, 并提供的存储接口BigMap。

img

Data Canister也是Canister,不能摆脱4G的限制,那么就会有大量的Data Canister为应用Canister的提供存储服务。应用Canister只需要记住文件索引以及文件所在的Canister即可,保证了应用Canister只保存状态数据,大量数据保存在后端的Data Canister.

img

  • 25
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值