通过Web浏览器运行的在线开发环境—Motoko Playground

MakerDAO 又回到了“原点”:实现完全去中心化

来源 | Maker Blog 作者 | Rune Christensen MakerDAO 现在完全去中心化了。 治理部门批准了几个核心单元来有效地组织 DAO 内的所有工作,以及现在由全球社区负责 Maker 协议的所有方面的工作。如此一来,DAO 现在已…

通过Web浏览器运行的在线开发环境—Motoko Playground

Motoko Playground是部署在Dfinity主网的一个在线开发环境Dapp,用户通过Web浏览器即可使用Motoko playground提供的开发服务,为新入门开发人员学习Motoko以及Rust的一个IDE Dapp,本期文章带各位小伙伴一起探讨Motoko Playground有哪些功能利于开发使用。

 

通过Web浏览器运行的在线开发环境—Motoko Playground

Motoko Playground完全运行在Dfinity主网上,为了简化开发流程以及给新手开发人员学习存在的IDE Dapp。

目前Motoko Playground已经开源,Motoko Playground是一个全栈Web Dapp,与大多数IDE相比,Motoko的编译器托管在前端,这都由归功于js-of-oceml编译器,解决了编译器在本地浏览器中运行的安全性和可伸缩性问题,Motoko Playground由以下几部分组成:


  • 由Js-of-ocaml生成的Motoko编译器在Web worker中运行
  • 支持Motoko语法和验证的Monaco(VSCode)编辑器
  • 一个Vessel Package Set加载第三方数据库的容器包管理器
  • 集成Canister安装/升级、actor参数和Candid UI的部署模块
  • 一个代码导入模块,语序开发人员从Github导入任何的Motoko代码

 

使用Motoko Playground的开发优势如下:


  • 允许用户直接在Web浏览器中构建和部署Canister
  • 简化了原有开发流程以及提供学习服务
  • 开发不需要下载Dfinity Canister SDK和在钱包中部署Canister

 

Motoko Playground使用教程入门

 

1、选择一个示例项目

在进入Motoko Plyground中会有几个已经构建好的示例项目作为给初始开发人员开发学习:计数器、随机迷宫、发布者/订阅服务。而且Motoko Playground支持从Github导入任何的Motoko代码。

 

通过Web浏览器运行的在线开发环境—Motoko Playground

 

通过Web浏览器运行的在线开发环境—Motoko Playground


上方图片显示的是示例项目Counter(计数器),Motoko Playground Dapp 导航主页中 Main.mo功能可以查看该项目的代码。


2、部署容器

选择示例项目之后,点击右上角Deploy选项,在Dfinity主网上构建和部署Canister。

通过Web浏览器运行的在线开发环境—Motoko Playground




通过Web浏览器运行的在线开发环境—Motoko Playground

 

点击Deploy选项之后,需要设置Canister的名称Canister默认名字是Main,部署Canisster需要几秒钟的时间,这中间需要Motoko Playground从Dfinity上获取一个免费的Canister ID并且安装已编译的WebAssembly(Wasm)模块。

 

3、使用Candid UI测试代码

 使用Candid UI开发人员可以通过Web浏览器与容器进行通信:查询初始值、增加计数器等等功能,(这个步骤也可以通过DFX或者IC-repl开发工具使用命令与容器交互)。


通过Web浏览器运行的在线开发环境—Motoko Playground

  • DFX安装:

    https://dfinity.org/developers

  • IC-REPL使用:

    https://github.com/chenyan2002/ic-repl

  • 容器交互指南:

    https://sdk.dfinity.org/docs/developers-guide/cli-reference/dfx-canister.html#_dfx_canister_call

 

4、更改代码

在开发人员想对项目Dapp进行升级的时候,开发人员可以通过Motoko Playground的编辑器中进行更改以下示例项目,将原有代码

git()

更改成

git2()

通过Web浏览器运行的在线开发环境—Motoko Playground

 

5、升级容器

更改代码之后需要重新部署更改代码后的现有容器,开发人员可以通过升级现有容器,或者将更改之后的代码重新部署的一个新的容器中,在下面的示例是升级现有的容器。

 

通过Web浏览器运行的在线开发环境—Motoko Playground


6、升级后的计时器

因为计数器在稳定内存中,升级后,我们更改了调用的get2方法时,会返回上一次的计数器而不是作为初始值(0)。

 

通过Web浏览器运行的在线开发环境—Motoko Playground

 

7、给计数器添加actor参数

Motoko Playound支持安装参数,在下面的示例中,开发人员可以给计数器添加一个actor参数。

 

通过Web浏览器运行的在线开发环境—Motoko Playground

8、部署更改参数的容器

部署更改参数的容器,系统会自动安装参数并询问计数器的起始值,在下方示例中起始值42,开发人员可以重新安装容器。

 

通过Web浏览器运行的在线开发环境—Motoko Playground

9、查询初始值

部署完之后开发人员查询初始值,计数器将返回部署期间指定的42初始值。


通过Web浏览器运行的在线开发环境—Motoko Playground

对于大型项目,开发人员通常需要使用第三方Motoko数据库,Motoko Playground支持Vessel Package Set集成容器管理包中的Motoko数据库,开发人员可以通过Motoko Playground Dapp主页中的左上方的 + 选项导入Vessel Packge Set Motoko数据库:解析SHA256和各种数据库。

通过Web浏览器运行的在线开发环境—Motoko Playground

 

为了支持开发人员采用Motoko Playground ,DFINITY为从Motoko Playground部署的容器提供了免费Cycles,新用户不必使用Cycles钱包给容器充入Cycles就可以构建容器。Motoko Platground的后端容器使用Motoko编写管理已部署Canister使用的空闲Cycles,为了保证这些免费的Cycls的公平使用,会对已经部署的Canister有一些限制:


每个Canister的初始Cycles余额为0.5t,并且只能运行10分钟,不允许跨容器对Cycles进行转移。


简单来说,当Motoko Playground收到前端要求生成一个新的Canister时,Motoko Playound后端容器会在它的Canister池中获取一个空闲的Canister将它的Cycles加满,并设置好Canister的过期时间,Canister过期时间到了之后,后端可以将此Canister交给其他请求部署Canister的用户体验,为防止一个用户占用过多的Canister,用户在申请新的Canister时需要提供工作证明,Motoko Playground通过检查提交的Wasm模块并删除Wasm级别的Cycles传输指令来防止通过调用

depsit_cysles

方法将Canister池中Canister可用Cycles转移到其他目标容器的攻击。由于Motoko没有Wasm解析库,因此使用的是Rust Canister实现解析。在Motoko Playground后端收到部署容器请求时,后端会将Wasm模块发送到Rust Canister进行检查。


通过Web浏览器运行的在线开发环境—Motoko Playground

  • Motoko Playground DAPP:

    https://m7sm4-2iaaa-aaaab-qabra-cai.raw.ic0.app/

  • Motoko Playground开源代码:

    https://github.com/dfinity/motoko-playground

在未来Motoko Playground将会添加更多功能,使Motoko Playground成为适用于Dfinity开发的全功能Web IDE。

扫码添加深圳社区小助手进群

获取Dfinity第一手资讯

通过Web浏览器运行的在线开发环境—Motoko Playground

Dfinity深圳社区,专注于Dfinity生态技术发展交流与优质项目挖掘分析。

独立播客之「拆盒子」:探索世界,觉察自我

欢迎来到播客先声的新栏目——「独立播客」~在这里,我会推荐独立播客,让更多人知道独立播客是怎么样的存在~ 007:「拆盒子」「拆盒子」是两个广告人的Chitchat. 尝试拆除、把玩和重建人类世界的各种「盒子」,探索世界,觉察自我。Watch Out whil…

Click to rate this post!
[Total: 0 Average: 0]

人已赞赏
Dfinity名家说小白百科每日优选

Motoko Playground:互联网计算机的在线开发环境

2021-7-28 20:56:24

Dfinity名家说小白百科每日优选

介绍 Motoko Playground,一个互联网计算机的在线开发环境

2021-7-28 20:59:22

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