LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > Nervos推出新工具:Animagus...MoveonNervos:此Move非彼Move

Nervos推出新工具:Animagus...MoveonNervos:此Move非彼Move

2020-03-07 NervosCommunity 来源:区块链网络

关于 Animagus

Animagus,阿尼马格斯,玛里苟斯?安妮麻瓜丝?俺是个麻瓜?

你才麻瓜呢吧!

把拉丁词 magus(巫师)加在英语单词 animal(动物)上,就创造出了Animagus(阿尼马格斯),想必不用多说了,你应该能猜出来这个词语来自哪里了。

Animagus?一词出自《哈利·波特》,指自身能够变成某种动物,同时又保留自身魔法法力的巫师。

你怎么扯到哈利·波特去了,不应该聊 Nervos 吗?

你再仔细想一想,有了 Eaglesong,Overlord,Muta 等等这些先例,Animagus 肯定又是一个 Nervos 开发者们挖出来的新坑呗。

要如何介绍 Animagus 呢?这是一个相当令人头大的事情,如果借用 Animagus 在《哈利·波特》中的定义,那么我们可以这样去理解:

通过 Animagus,我们可以将 CKB 的 UTXO 模型变成账户模型,同时还能保留 UTXO 模型的优势。

按照雪洁老师目前比较倾向的描述就是?Animagus 是「CKB 的 account 层」,Animagus 为 UTXO 模型中遇到的大多数编程难度大的问题提供解决方案。

技术的内容我就不在此展开了,简单描述一下 Animagus 可以实现的功能吧。

首先我们通过一个栗子,来说明一下为什么需要开发 Animagus。

众所周知 CKB 采用的是 UTXO 模型,我们的 CKB 是存在一个一个 cell 里面的。

假设存在这样一个地址,它里面有多个 cells,这个时候我们需要获得这个地址里面的 CKB 总余额,我们要怎么办?

注意,CKB 从未提供过可以获取任意账户余额的 RPC 接口。

这个时候我们就可以通过 Animagus 来帮忙,那这个忙要怎么帮呢?

我们先来看看同一个地址内的多个 cells,它们有什么相同点,有什么不用点。

相同点在于他们的 lock script 其实都是一致的,其中因为采用的是 CKB 的默认锁定脚本,所以 code_hash 和 hash_type 是固定的,而剩下的 args 字段实际上就定义了这个 cell 属于哪一个地址。既然是同一个地址中的 cells,那么 args 字段也应该是一致的。

那有什么不同呢?因为是 UTXO 模型,他们是一个个独立的 cell,而不会像账户模型一样合在一起,所以你要获取总余额,你需要一个个地找到它们。

这个时候 Animagus 要做的事情就十分简单了,找出所有 args 一样的 cells(code_hash 和 hash_type 已经是固定值了),然后获取这些 cells 的 capacity,最后将这些 capacities 都加起来,通过一个 RPC 接口返回给用户。

你这说了一大通,不就是给你一大堆玩具,然后让你找出其中颜色相同的玩具,最后数一下一共多少个吗?

没错!按照我拙劣的理解,就是这样的。

当然 Animagus 的功能还不止于此。我们再衍生一下,还是给你一大堆玩具:

请找出,其中哪些是圆形的玩具?

请找出,其中共有多少个红色的带波点图案的玩具?

请找出,其中哪些是木制的方形的玩具?

这就是我理解的 Animagus,你只要把需求都告诉它,它就可以把答案告知你。

我们希望?Animagus 能够填补 UTXO 编程模型的空白,真正发挥出 CKB 的全部优势。

(本文仅属个人理解,欢迎拍砖 ~)

关于 Move on Nervos

首先请注意,这里的 “Move”,并非移动的意思,而是指去年?Facebook发布的,用于在?Libra?中实现自定义交易逻辑和智能合约的,一种新的编程语言。

时间回到19年6月18日,Facebook 发起的加密数字货币项目 Libra 正式亮相,Libra 的使命是建立一套简单的、无国界的货币和为数十亿人服务的金融基础设施。与多语言官网、白皮书等一同发布的,还有多份技术白皮书,其中就包括了新的编程语言 Move。

关于 Move 的更多介绍,可以阅读安比实验室的:Move语言:我眼中的 Libra 最大亮点。

也可以前往知乎:https://www.zhihu.com/question/330177843

了解更多关于 Move 的评价(有小惊喜 ~)

话说这里不是 Nervos Community 的公众号么,怎么突然又聊起 Move 了?

这里就得提到我今天在 Nervos 论坛上(talk.nervos.org)看到的一份 新的 Grants 申请:

Move Smart Contract Framework Proposal

https://talk.nervos.org/t/move-smart-contract-framework-proposal/4395

本提案旨在为 Nervos 提供一个完整的框架,以允许开发者在 Nervos 上可以使用 Move 语言来编写智能合约。

是的,你没有看错,有开发者准备要把 Move 搬到 Nervos 上来,除了我们之前提到过的,可以将目前区块链行业主流的 EVM 和 WASM 搬到 CKB 上,现在社区的开发者们已经盯上了一个潜在的庞大的用户市场和开发者市场。

提案中这样写道,这一项目将主要包含以下几个部分:

在 Nervos 上实现?Move?VM(虚拟机)

Move SDK

一个?toolkit,包含 Move 编译器,Move 字节码验证器,模拟器等

使用 Move 开发智能合约的最佳实践,包含开发流程和部署。

开发教程,技术文档,demo 示例等

这里向大家介绍一下发起这个提案的团队:Ping.pub。Ping.pub 是一家专注于区块链技术的初创公司,为多个 PoS 区块链提供安全可靠的验证服务,如 Cosmos,IRISnet,Kusama 等。他们还在第一届 Cosmos GOS hackathon 中获得了 Uptime Leader 奖,也曾为 Cosmos 开发过浏览器,钱包,水龙头等工具。Ping.pub 团队的创始人们均有丰富的开发经验和参与开源社区贡献的经历。

Move 作为 Facebook 开发并在 Libra 上使用的一种智能合约语言,它是世界上目前最先进的智能合约语言之一,简单、安全、强大。

尽管 Nervos 已经支持多种语言编写智能合约,但是随着 Move 语言的加入,未来将可以在 Nervos 生态和 Libra 生态之间搭建起一座桥梁,从而吸引到更多的开发者和用户。

好文推荐

Nervos blog:《当我们在谈论 Token 价值时,我们在谈论什么?》

NervosCommunity:《公链发展难道就没有别的路了么?》

链闻:《与 Nervos 合作的火币公链,究竟有哪些与众不同之处?》

区块律动:《放弃乌托邦幻想,Nervos如何助力火币公链实现真落地》

白话区块链:《火币公链正式公测:区块链金融黑马,未来可期?》

—-

编译者/作者:NervosCommunity

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...