链资讯 链资讯
Ctrl+D收藏链资讯
首页 > XRP > 正文

WAS:去中心化计算平台DFINITY宣布开源项目编程语言 Motoko_SOCCER币

作者:

时间:

去中心化计算平台DFINITY已经开源项目编程语言Motoko宣布项目编程语言Motoko的编译器、解释器、测试套件及文档已全面开源,目前Motoko的完整源代码现在可以在Apache2.0许可下使用。

Motoko是基于Wasm语言,为实现InternetComputer安全且易于使用的特点而开发的编程语言。Dfinity表示,此举旨在促进与更广泛社区的合作和贡献,包括改进文档、完善错误消息、开发全新的工具等方面。

DFINITY基金会的Motoko团队很高兴地宣布Motoko编译器、解释器、测试套件和文档的开源。自公开推出以来,经过三年半的开发,Motoko的完整源代码现在在Apache2.0许可下可用。

Motoko是一种编程语言,旨在无缝支持Internet计算机的编程模型,从而可以更轻松地高效构建应用程序并利用该平台的一些更独特的功能。Motoko是强类型的、基于参与者的,并且具有对正交持久性和异步消息传递的内置支持。生产力和安全特性包括自动内存管理、泛型、类型推断、模式匹配以及任意精度和固定精度算术。消息传递透明地采用InternetComputer的Candid接口定义语言和有线格式,以实现类型化、高级和跨语言的互操作性。

我们希望此代码版本能够促进与更广泛社区的合作和贡献,无论它们涉及改进文档、完善错误消息,还是开发全新的工具,例如额外的IDE集成、调试器支持和代码格式化工具。

a16z宣布投资去中心化自治组织PleasrDAO:12月15日消息,a16z 普通合伙人 Ali Yahya 在社交媒体上宣布 a16z 正在投资去中心化自治组织 PleasrDAO,具体金额暂未透露。Ali Yahya 表示,像 PleasrDAO 这样的 DAO 是 Web3 的基础。它们是互联网原生的一种新的经济组织形式,使人们能够大规模合作并实现目标。

此前报道,去中心化自治组织 PleasrDAO 曾于 3 月 27 日以 310 枚 ETH(约 50.5 万美元)购入 Uniswap V3 的动画视频 NFT,后于 6 月 11 日在拍卖网站 Zora 上以 1696.9 枚 ETH(价值约 400 万美元)成功拍下 Doge 原始照片 NFT。[2021/12/15 7:40:39]

我们的目的是为内部和外部贡献者提供相同的开发体验。目前,我们的测试基础设施仍然部分依赖于内部服务,但我们正在努力将它们替换为可公开访问的服务。外部和内部开发人员将处于平等地位。毫无疑问,当我们进入开放空间时,我们会遇到一些成长的烦恼。请耐心等待。

对于那些还不熟悉Motoko的人,这里简要介绍一下它是什么、我们为什么开发它以及它是如何工作的……

WebAssembly

要理解Motoko,我们首先必须简要介绍一下WebAssembly——又名Wasm。您可能知道,Wasm是一种新的低级代码格式,旨在实现可移植性、安全性和高效性。它最初的用例是网络,但这个名字实际上是用词不当:当我们在W3C工作组设计Wasm时,我们小心翼翼地将它作为一个开放标准和通用平台。也就是说,它不针对任何特定的编程语言、范式、计算环境或平台,我们确保它完全不与网络绑定。因此,Wasm在许多其他环境中得到采用绝对不是偶然的,例如云计算、边缘计算、移动、嵌入式系统、物联网和区块链。

去中心化协议Stafi将于7月21日启动激励性测试网:据官网消息,去中心化协议Stafi宣布将于7月21日启动激励性测试网,持续时间约1个月,并提供50万FIS(占总供应量的0.5%)作为对验证者的奖励。

此前报道,Stafi已于7月1日启动其公共测试网Seiya,并计划于9月推出主网。Stafi基于StakingToken,通过SC发行替代性Token-rToken,来解决锁定资产的流动性问题,一方面让用户兼得Staking收益和流动性,一方面提高了PoS项目的网络安全。[2020/7/14]

Wasm有很多很多设计考虑因素,有些是显而易见的,有些则相当微妙。太多了,无法进入这里。关于Wasm的技术目标、设计选择、形式语义和实现技术的相当全面的讨论可以在我们发表在ACM通讯上的一篇科学文章中找到。

Wasm与其他虚拟机的主要区别在于,它没有针对任何特定的编程语言进行优化,而只是抽象了底层硬件,字节码直接对应于现代CPU的指令和内存模型。最重要的是,Wasm通过强大的模块化和严格的数学规范支持沙箱,确保执行是安全的,没有未定义的行为,并且完全确定。而且,这些属性实际上有经过机器验证的数学证明!

总之,这些特性旨在使Wasm成为对便携性、安全性、通用性和性能有很高期望的各种环境和用例的有吸引力的选择——例如互联网计算机。

Wasm的特性使其成为表示在Internet计算机上运行的程序的明显选择。但在实践中,将现有的编程语言移植到Wasm并非易事。显然,它需要实现一个新的编译器后端。这很有趣,但努力并不止于此:它还需要移植语言的运行时系统和库原语。还有一些特性,尤其是与更高级语言相关的特性,目前无法在Wasm中轻松实现——例如:线程、协程、异常和尾调用。虽然各种用各自的功能丰富Wasm的提案即将出现,但它们尚未最终确定标准化。

金色相对论丨火币集团副总裁Will Huang:去中心化钱包可以保障保障用户隐私与安全:在今日举行的金色相对论中,火币集团副总裁、火币钱包CEO Will Huang谈到如何保证数字资产安全时表示,保护自己私钥安全是第一要义。此外用户也要注意:

1、不要把资金长时间放在不知名、不靠谱的小交易所;

2、根据资产数量和用途分散存贮在去中心化软件钱包和硬件钱包;

3、离线保存助记词和私钥,不要以任何形式透露给任何人此外,也要注意防范网络风险和,比如核对网站域名,使用2FA验证;

4、不贪图便宜有防范意识,目前有一些子喜欢在用户群以折扣价出售同名假币等等,这些都需要用户有判断意识,不要轻易相信。

Will Huang表示,火币钱包作为去中心化钱包,用户助记词/私钥完全由用户保管,用户资产由且仅由用户控制和管理;所有交易全部走链上,不存在提币审核等人工干预,完全用户自主操作。此外,火币钱包依托火币良好的安全声誉以及强大的安全运维团队,全方位确保用户的隐私与安全,火币钱包没有账户体系,无法定位获取到用户的个人信息,对于注重隐私匿名的用户是很好的选择。[2020/4/7]

尽管已经有许多针对Wasm的实验性语言实现,但大多数还没有准备好迎接黄金时段。主要包括低级系统语言,如C/C++和Rust。这些对于它们的用例来说当然是很好的,但它们不是为Internet计算机开发高级应用程序的理想工具,在Internet计算机中,可访问性、生产力和高保证往往比手动干预内存管理更可取。

与此同时,互联网计算机的语言需要提供对平台主要概念的访问:具有异步消息传递的分布式编程模型、资源概念,如循环,以及其他一些特性。当然,它们都可以作为库提供,但是一种本身包含适当结构的语言可以提供更加无缝的编程体验。

动态 | 隐私浏览器 Brave 提出基于 ZKP 的去中心化虚拟隐私网络解决方案 VPN?:隐私浏览器 Brave 发布研究论文提出了一种去中心化虚拟隐私网络解决方案 VPN?,该解决方案使用无需中央授权的 ZKP 实现了充分的去中心化,同时还保障用户隐私。作为一种去中心化的 VPN 解决方案,用户既是 dVPN 网络中的 VPN 客户端,又是 P2P 网络中继 / 退出节点,通过使用零知识证明技术,VPN? 允许中继节点在无需知道具体内容的情况下控制想要传输流量的类别,既保持了去中心化特性, 又不会侵犯用户隐私。值得注意的是,该用例有可能集成到 Brave 的效用代币 BAT 中,流量中继者可获得 BAT 补偿,同时使用者则可以支付代币 BAT 使用或订阅 VPN 服务。目前 VPN?集成了 BitTorrent 的 DHT (Mainline)和 ProtonVPN,并针对 DHT 查找、VPN 隧道设置和零知识流量证明对 VPN? 的性能进行了基准测试。[2019/10/13]

因此,如果我们无论如何都必须做一些工作才能开始工作,为什么不将其应用到创建可以提供最佳用户体验并传达我们对如何对互联网计算机进行编程的愿景的东西呢?

MOTOKO

这就是为什么——尽管创建另一种语言存在所有风险——我们决定创建Motoko。我们想要一种安全、易于使用、无缝公开平台概念的语言,以及一种对大多数程序员来说看起来足够友好和易于使用的语言。目前,后一个目标使它几乎不可避免地处于分号和大括号语言阵营中。在这个营地中没有合适的语言。

动态 | Melon上线AragonOS 尝试运行去中心化治理组织:去中心化数字资产管理协议Melon的治理组织Melon Council宣布上线 AragonOS,运行去中心化治理组织Melon Council DAO,旨在提升组织决策系统的安全和透明度。Melon官方称,AragonOS 治理系统非常强大,理论上可满足Melon Council制定任何决策,包括协议参数变更、ENS 子域名更新、资源支出、销毁未使用代币等。[2019/8/14]

但元子相当传统的皮肤只是表面的:它的内部是一种现代语言。例如,每个构造都是一个表达式,它有闭包,它有变体类型和静态检查模式匹配,它有垃圾收集,当然它有一个实际上健全的灵活的类型系统,即它确实保证不存在某些错误,例如崩溃、未定义的行为、曲解数据或只是在switch中遗漏了一个case。没有洞!

同时,我们有意尝试不花哨或重新发明轮子,而是建立在丰富的实践和理论历史的基础上,并承认在该领域几十年来吸取的经验教训。除了将易于理解的功能组合在一起之外,Motoko的设计还包含许多小决策,以最大限度地减少脚步和安全方面的错误,例如,默认情况下数字不能溢出,默认情况下局部变量是不可变的,默认情况下并发执行是原子的,默认情况下不能出现null,默认情况下字段是私有的,等等。哦,没有继承,只有子类型。

实现Motoko的这些部分并将它们编译为Wasm是传统的编译器工艺。用OCaml编写的Motoko编译器使用类型化的中间表示,经过一些转换,并输出Wasm字节码。生成的Wasm模块包括一个用C和Rust编写的小型运行时系统,主要实现一个简单的垃圾收集器,使用Wasm内存作为其堆。这并不难,但这里肯定有很大的改进潜力,我们正在努力。

Actors

然而,Motoko的核心特征是它在语法和类型系统中直接支持角色。演员模型是一个众所周知的概念,已有40多年的历史,但遗憾的是,它几乎没有进入主流语言。Actor就像一个对象,因为它封装了私有状态以及一组方法来处理可以发送给它的消息。但是所有消息发送都是异步的。因此,与面向对象中的传统方法不同,actor方法没有结果。此外,所有消息都由参与者顺序接收——也就是说,它有一个隐式消息队列和方法以原子方式执行,即使消息是并发发送的。

Actors是并发编程的一个很好的模型,因为它们会自动防止竞争条件和死锁,因此排除了许多并发错误。所有这一切都不需要程序员定义锁。Actors也是分布式编程的一个很好的模型,因为异步自然会处理将消息发送到潜在的远程接收器所涉及的延迟。最后,actor非常适合Dfinity的互联网计算机,其中应用程序以所谓的罐的形式部署——本质上,actor表示为可以跨子网通信的Wasm模块。因此,Motokoactor编译为Wasm模块,其中方法成为具有平台定义的特殊约定的导出Wasm函数。

简而言之,Motoko中的应用程序是一个actor,它又是一个编译成Wasm模块的大型异步对象。使用Wasm的内存概念,这样的参与者可以立即管理多达4GiB的内部状态,尽管可以通过链接多个Wasm模块来进一步扩大,每个模块都有自己的内存。

Futures

为了使异步编程更方便并允许以顺序“直接风格”表达它,Motoko采用了另一个来自编程语言研究年鉴的40多年的想法,尽管幸运的是最近变得有点流行:期货。在Motoko中,它们以“异步值”的形式具体化,即由async关键字前缀的表达式生成的async类型的值。特别是,函数体可以是一个异步表达式,从而自然地替换和概括存在于其他一些语言中的“异步函数”的更单一的概念。

有了这个,actor方法毕竟是允许有结果的——只要这些是期货。可以等待Future来获取它们的值,但只能在另一个异步表达式中,类似于其他现代语言中已知的async/awaitmonad。

Motoko编译器通过传统的CPS转换来实现这一点,将每个等待点转换为一个单独的Wasm函数,代表等待的延续。事实上,它是双管CPS,因为每条消息也可以有一个失败回复和各自的失败延续。按照惯例,具有异步结果的方法是发送带有结果值作为参数的回复消息的方法。这个消息被创建的延续函数接收,然后它可以恢复它捕获的执行。等待回复不会阻止参与者——它可以在此期间自由接收其他消息。

Persistence

Motoko的另一个重要考虑因素是允许开发人员利用区块链技术,而无需学习全新的计算类型。因此,我们删除了您可能需要的有关当前区块链编程语言种类的大部分特殊知识。例如,没有可观察到的块或块高度的概念,没有用于更新区块链状态的显式构造,也没有用于将数据写入持久存储的其他API.取而代之的是,互联网计算机实现了正交持久性——这是另一个古老的想法,其中程序有一种“永远”运行的错觉,它的内存只是保持活跃。在Motoko中,这意味着开发人员不必担心在消息之间显式保存他们的数据,也不必担心文件或外部数据库:存储在程序变量中的任何值或数据结构在下一条消息到达时仍然存在,即使那是几个月后。

该平台负责在方法调用之间透明地保存和恢复容器的私有状态。这相对容易改装到Wasm引擎上,因为Wasm模块的状态在模块的内存、全局变量和表中明显隔离。在大多数情况下,使用操作系统公开的虚拟内存技术观看Wasm内存就足够了。通过这种方式,平台知道此类内存中的页面何时被修改,并且可以采取任何必要的措施来持久化脏页面,以及为分布式共识协议对它们进行哈希处理。

超越Motoko:Candid的接口定义

因为互联网计算机运行Wasm,所以Motoko只是创建应用程序的一种选择——而且是有意如此。我们还提供Rust,我们期待提供其他语言选择。即便如此,因为每种语言都会统一编译为以Wasm表示的容器,所以这些容器可以通过消息发送自由地相互通信,而不管它们的源语言如何。

为了明确定义这种互操作性,我们引入了一种名为Candid的通用接口定义语言(IDL)。它是Internet计算机上通信的通用语言,完全独立于Motoko。它描述了容器理解的一组消息以及随同发送的数据类型。在Candid中,数据通过独立于Motoko类型系统或任何其他编程语言的规范数据类型的组合进行描述。

呼,又是一个类型系统?好吧,程序员可能会很高兴Motoko编译器可以自动使用和生成这样的接口描述,用于actor导出和导入,并将它们映射到相应的Motoko类型和映射到相应的Motoko类型。它还自动生成正确的Wasm代码来序列化和反序列化每条消息的参数数据,透明地将Motoko的内部表示与Candid指定的二进制格式相互转换。

通过这种方式,Motoko程序可以以有类型的方式与外部容器进行通信,并将远程调用表示为程序中的本地对象。这与远程容器是用Motoko还是Rust编写的无关;容器的接口描述足以作为类型信息。除了方便之外,接口还提供了一种强大的模块化形式,其中程序可以针对其他参与者/容器进行类型检查,而无需访问它们的实现。

结论

我们的目标是让所有语言在Internet计算机上拥有平等的权利,所有语言都在Wasm中编译为容器,并且所有语言都通过Candid进行无缝通信。这对于打开Internet计算机很重要。Motoko只是众多选择中的一种,但它旨在成为在Internet计算机上开发的各种应用程序的特别好选择。?

标签:WASCTOOCCSBFswash币行情VectorspaceSOCCER币sbf币圈流水

XRP热门资讯
OCC:链密钥技术:互联网计算机背后的科学突破_sbf币圈

互联网计算机将公共互联网升级为防篡改的计算平台,使开发人员、组织和企业家可以构建和部署安全且自治的软件程序.

马斯克:华尔街守望者VS宇宙网红:SEC或许真的能封了马斯克社交账号_CTO

昨日,美国当地时间1日消息,美国证券交易委员会SEC已经向特斯拉提出警告,表示特斯拉没有监督其CEO埃隆马斯克的推特使用,或将对特斯拉以公司治理责任为由追责.

ERN:巴比特学院公开课直播预告丨当“非同质权益”被通证化制成NFT后,我们获得了什么?_Masternode Hype Coin Exchange

5月19日20:00-21:00,巴比特学院公开课第35期将正式开课。本期的主讲嘉宾是AlchemyNFT.org项目负责人、Stormbird联合创始人VictorZhang,分享内容包括:1.

比特币:数据分析:“鲸鱼”在这次暴跌中趁机抄底7.7万枚比特币_OSHI

根据区块链分析公司Chainalysis的数据,大型投资者上周利用比特币的价格暴跌抄底了更多的币.

BTC:投研 | 2021去中心化衍生品生态报告_KEX

投研公司:2021年前三季度ETC需求会稳定增长:投资研究公司FundStrat的David Grider表示,2021年三季度前,ETC需求会稳定增长.

BTC:兴业银行:任何机构与个人不得将我行账户用于虚拟货币交易等活动_区块链工程专业学什么课程好

巴比特讯,6月21日,兴业银行发布《关于禁止使用我行账号参与虚拟货币交易的声明》表示,任何机构与个人不得将在该行开立的账户用于虚拟货币的交易资金充值及提现、购买及销售相关交易充值码等活动.