“代码即服务”:DFINITY 互联网计算机的架构解析

释放双眼,带上耳机,听听看~!

什么是互联网计算机?

互联网计算机是一种网络计算的基础设施,你可以从这几个角度来看:

-无缝共享的虚拟化计算平台
-使用原则上,类似于 TCP 协议的开放式骨干网协议
-拥有通用运算能力的网络,具备存储、运算、验证的能力

过去,以太坊也设想过“世界计算机”,但实质上它仅处理转账与合约运算。以太坊作为一个智能合约平台是非常成功的,但严格来说以太坊上的服务并不是由合约驱动的,只有部分逻辑被写入智能合约以高可信性运行,实际上都需要额外搭建前后端服务器,运行一些通用计算并挂载前段。

这导致一些金融属性不强,但对安全可信有高度要求的服务,如社交网络、数据接口服务等,处于一个非常鸡肋的境地,在此情景下创造一个 token 来激励是不切实际的。并且实际情况告诉我们,依赖的服务器以及网页的连接点都是极其脆弱的。

互联网计算机作为一个具备通用计算能力的网络基础架构,提供了一种构建和运行防篡改软件的新方法。分布式的共识架构为软件提供了智能合约级别的安全性,在这个开放协议下,软件就像运行在本地虚拟机上一样简洁,不再需要依靠服务器与基础组件(如,数据库、防火墙等)就可以永不宕机、安全高效地提供服务。

“代码即服务”

互联网计算机平台不是由任何私人企业所有的,它也不存在于任何物理计算机上,协议把世界各地的数据中心和个人电脑的计算资源,聚合成一台强大的虚拟机,在网络中安全且持续性地提供通用计算能力。

虚拟化的、协议化的服务,让通用计算基础真正做到了打开水龙头就能用的地步。这让“代码即服务”变得现实,开发者不会再有启动、运维与后期扩容的概念,只需要像使用 github 一样上传代码,包含前后端的完整服务就能直接在互联网计算机上运行,并且有近乎无限扩容的能力。

互联网计算机的费用按需产生,可以由服务的调用者支付,而不需要在启动服务之前先租赁或购买一台服务器。以 token 结算的协议让代码具备了直接盈利能力(“数字税收”),互联网计算机将成为开发者的游乐园,这将激励大量的创新,产生丰富多样的开放服务。开放服务之间还能互相调用融合(实际上都在一台虚拟机上运行),组合出更优的服务,这种多赢博弈为网络创造了巨大的“互助网络效应”,让它有能力与垄断的互联网巨头竞争。

重新设计软件模型

基于互联网计算机的特性,我们得以重新思考软件的搭建、部署和使用方式,进而对复杂度做出 优化:

-代码即服务,服务不再运行在定制的操作系统上,降低开发复杂度和成本;
-不用考虑数据的安全性与存储问题,无需数据库等组件,简化了编程,缩短了开发周期;
-多个服务能像运行一台计算机中那样做到相互通信,且不需要获取网络拓扑或端口信息;
-软件可以“自洽运行”,就像一个开源项目一样,任何人都能自发地进行创新、贡献和改进。

基本框架

互联网计算机平台的架构主要由四个层组成:

-执行环境层
-信息路由和分发层
-基于共识的安全验证层
-p2p通信和复制层

以上每一层都包含了执行特定任务的组件和服务,以确保所有参与节点之间的安全通信,与网络性能。

“代码即服务”:DFINITY 互联网计算机的架构解析

对开发者来说这些结构与组件都是无感的。但是,如果要在本地部署测试网,开发和部署过程中的某些步骤会与图中的组件交互,这主要因为互联网计算机带来的变化较大,这样能让开发者在工作时更有流程感与真实感。

怎么开发互联网计算机上的软件?

对开发者来说,互联网计算机的框架极大地简化了软件的设计、搭建和部署。Motoko 是框架中一个重要的组成部分,这是专门为这个系统设计的通用编程语言,它能帮助开发者充分地利用互联网计算机提供的独特功能,包括:

-直接使用 actor 对象和类定义程序;
-使用 async 和 await 语法来处理异步消息传递,让它近似于同步处理;
-自动支持消息的序列化和反序列化;
-“正交持久性”:无需维护或管理外部数据库或存储卷。

Motoko 作为高级编程语言,提供了一些关键特性,包括:

-支持大整数操作和溢出保护;
-具备类型检测系统,能静态地检查每个程序,以确保它在任何输入下都可以执行,而没有类型错误;
-支持函数抽象、用户自定义的类型、用户自定义 actors。

“代码即服务”:DFINITY 互联网计算机的架构解析

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索