曾在3轮融资中共获得1.95亿美元的公链平台Dfinity,其开发团队在今日发布了它的编程语言Motoko以及软件开发工具包Canister SDK的Alpha版本。 据悉,Dfinity曾获得 Andreesen Horowitz、Polychain Capital 等圈内一线投机机构的青睐,曾被认为是“下一代”公链的有力竞争者,中文社区则将其称为“蒂凡尼”,而其自身的定义是成为“互联网计算机”。
(图片来自Dfinity) 所谓的互联网计算机是指什么?而在了解Dfinity这次发布的产品之前,我们还需要了解两个概念,一个就是“互联网计算机”,另一个就是“Canister”。 那么,它们到底是指什么呢,我们先看官方给出的解释: “对于使用Motoko语言编写的软件服务,互联网计算机提供了托管这些服务的单个共享操作系统的抽象。每个服务都是一个Canister(容器),其由元数据、静态内容以及编译后Motoko软件的Wasm模块(也可以是来自另一种语言的Wasm模块)组成。 互联网计算机上的每个Canister(容器)实现一个微服务,该微服务通过防篡改、异步消息传递和强通信保证与其他微服务交互。 而在底层,互联网计算机是一个由安全通信的联网计算机组成的网络,它们共同为注册用户、开发人员和其他计算机处理服务。 与传统的公共或私有云(如AWS、谷歌云平台或微软Azure)不同,互联网计算机平台托管的程序都是分布式的,而平台本身并不是由单个私有公司拥有和运营。 相反,它的分布式架构,使得多台计算机能够作为一个强大的虚拟机运行。此虚拟机没有单点故障,它独立于易受攻击的传统IT技术运行。因此,互联网计算机为托管Motoko微服务提供了一个独特、开放且不可阻挡的平台。” 好吧,实际上,Dfinity的愿景与以太坊是“一毛一样”的,我们可以把它视为一个竞争品。 Canister SDK和Motoko编程语言 简单的说,Canister SDK 的存在目的是让你能够轻松地在DFINITY平台上构建应用和服务。 根据DFINITY官方发布的信息来看,目前的Canister SDK还只是一个Alpha版本,其暂时只支持 macOS和Linux平台,而在发布正式版本之前,开发者会定期对其进行检查并尝试新的功能。 而Motoko,则是一种现代编程语言,其旨在让那些熟悉JavaScript、或其他现代编程语言(如Rust、Swift、TypeScript、C#或Java)的现代面向对象和函数式编程习惯用法的程序员,能够轻松使用这种语言,并为“DFINITY”平台做贡献。 Motoko 语言允许编程者使用现代编程习惯,包括分布式应用的特殊编程抽象。每个应用都由一个actor组成,该actor与其他actor通信时不使用共享状态,而是使用(异步)消息传递。 Motoko语言基于actor的编程抽象允许人类可读的消息传递模式,并且它们强制所有网络交互遵守某些规则并避免某些常见错误。 具体来说,?Motoko类型系统静态地检查每个motoko程序是否在所有可能的输入上安全地执行,而没有内部类型错误。因此,其排除了其他语言中常见的编程陷阱类,包括空指针错误、参数和结果类型不匹配及很多其它陷阱类型。 Motoko语言亮点 1、原生Canister支持 actor Counter { var value = 0; public func inc() : async Nat { value += 1; return value; }; }Motoko语言对互联网计算机软件Canister有原生支持,这些软件Canister表示为actor、封装其状态并通过异步消息进行通信的自治对象。 2、以直接样式顺序编码 actor Factorial { var last = 1; public func next() : async Nat { last *= (await Counter.inc()); return last; } }在互联网计算机上,软件Canister会异步调用其它Canister,但Motoko语言能够使你以直接样式顺序编程你的系统。 异步消息是返回future的函数调用,await结构则允许链接调用,就好像它们是同步的一样。 3、Modern类型系统 type Tree<T> = { #leaf : T; #branch : {left : Tree<T>; right : Tree<T>}; };Motoko语言的设计对于熟悉Javascript和其他流行编程语言的人来说是非常直观的,但是它具有现代语言特征,比如完备的结构类型、泛型、变体类型以及核实模式匹配。 4、自动生成IDL文件 service Counter : { inc : () -> (nat); reset : () -> (); }SDK会导出你的接口定义,因此其它Canister、浏览器驻留代码以及具有权限的智能手机应用可调用你的函数。Motoko编译器还可读写接口定义文件,允许Motoko与使用其它编程语言编写的Canister进行无缝交互。 5、正交持久性(Orthogonal persistence) import Dict = "mo:dict";互联网计算机会保留Canister运行的寄存器页。因此,参与者及其所有寄存器数据结构的状态将无限期地存在,不需要显式地“保存”它们。Motoko提供了很多功能来帮助你利用这个环境,包括允许你在升级Canister软件时实现自迁移的语言功能。 另外,Motoko还提供了很多很酷的功能,包括对WebAssembly虚拟机的深度支持,其允许你使用其它语言编写的模块链接到你的Canister中。
想要了解Dfinity?SDK更多的信息?你可以看这里:https://sdk.dfinity.org/developers-guide/quickstart.html 关于Motoko语言的?你可以看这里:https://sdk.dfinity.org/language-guide/index.html
—- 编译者/作者:洒脱喜 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Dfinity离上线不远了?新发布的Motoko编程语言和Canister SDK了解下
2019-11-02 洒脱喜 来源:区块链网络
LOADING...
相关阅读:
- 空投不能执着,但也不能忽视,空投信息哪来的?本体、UNI、DFINITY万元2020-10-23
- DFINITY钠网络发布(有空投资格的注意了!)2020-10-23
- Dfinity,迟到两年,你还是“天王”吗?2020-10-14
- DFINITY 发布用于互联网计算机的治理系统——网络神经系统(NNS)2020-10-01
- DeFi 借贷协议 Liquity 完成 240 万美元种子轮融资,Polychain Capital 领投2020-09-25