http://www.7klian.com

教你用Dfinity实现一个开放式二维码处事

 
将以上代码封装在 Motoko actor 声明中界说接口。
 
接下来将演示如安在互联网上成立一个永久的微处事。
public type ErrorCorrection = { #L; #M; #Q; #H };
C 和 Rust 内里都有现成的库可以发生二维码,只需要再成 WebAssembly 运行即可。

媒介
我把实现代码放到了 GitHub 上,总共2000多行代码,需要十几个模块支持。可以 git 下来后在 Visual Studio 中打开,Visual Studio 上有一个可以高亮 Motoko 语法的插件,较量利便。
) : async ?Matrix { .. };
$ dfx canister install –all
public type Version = { #Version : Nat };    
$ wget https://sdk.dfinity.org/install.sh
这个二维码处事在很洪流平上依赖于 Motoko 的尺度代码库。之前我一直不伤风,用了才知道, Motoko 已经足够成熟了,而且成果强大。Motoko的 API 和 Rust 与 SML 提供的很相似,所以假如你很熟悉这些语言,那用 Motoko 的时候根基不需要查阅任何的文档。固然文档网站仍在开拓中,,然而,通过直接在 Visual Studio 中打开尺度库,始终可以找到最新的具体信息。
所以深思熟虑之后,我最终抉择写一个二维码生成处事,用它来显示钱包的地点。
固然这样较量快,可是这里想做点有趣的实验,所以抉择通过 Motoko 开拓。
 
$ code $HOME/.cache/dfinity/versions/$DFX_VERSION/stdlib
预备事情
在用 Motoko 为微处事界说接口之前,先回首一下二维码的尺度,组成二维码的相关组件如下: 

$ dfx canister call demo encode
实现方针
想象一下,就仿佛你把代码传上到一个超等 Github 上,不消管操纵系统等等一些巨大度,后端就可以永不宕机的提供处事了!虽然这些都需要用
Dfinity 的 token 来计价。
在另一个窗口中执行以下呼吁
 
$ dfx build
 
 
Motoko 是由 WebAssembly 尺度的原作者设计的一门高级语言。它在语法上雷同于 Swift 和 unique,奇特之处在于它为互联网计较机上的特性提供了很好的支持。
 * Encodes the input text according to the QR code specification or

这些组件所需的相关参数包罗:版本号(1到40)、LMQH的四种纠错级别(别离暗示数据丢失容忍度为7%、15%、25%和30%)和编码方案(可以是数字、字母数字、八位或汉字)。
public func encode(
$ code qr
$ git clone https://github.com/enzoh/qr
实现
 */
public type Mode = { #Alphanumeric; #EightBit; #Kanji; #Numeric };
界说接口
$ yes Y | sh install.sh
 
演示
 
$ dfx start
启动当地互联网计较机节点:
我们可以利用这些范例,在 Motoko 中界说一个函数来生成二维码:
如何搭建
将二维码的组件范例转换为 Motoko 的范例:
筹备实现一些简朴的处事,但也得展示互联网计较机的特性。所以只做“hello world”或简朴算式是远远不足的。我们需要去实现一些真正有用,并能集成到现有的处事里的对象。

Dfinity 的互联网计较机是一个安详的网络协议,它答允我们将代码直接看成处事陈设在网络中,这些软件就像在当地一样,被运行在这台无缝共享的超等计较机上。
互联网计较机上的措施运行在 WebAssembly 虚拟机中,因此要构建微处事,只需要写好代码后编译成 WebAssembly 运行即可。
$   ‘(variant{Version=2}, variant{M}, variant{Alphanumeric}, “HTTPS://SDK.DFINITY.ORG”)’
/**
public type Matrix = { #Matrix : [[Bool]] };
  input : Text             // Input text.

 
  version : Version,       // Version number. 
  level : ErrorCorrection, // Error correction level.
  mode : Mode,             // Encoding scheme.
$   | sed ‘s/[(“)]//g’
$   | sed ‘s/#/█/g’
什么是 Motoko
功效就输出来了:

只需下载并安装互联网计较机的 SDK,就可以得到 Motoko 的最新版本:
 * returns null if the input text is invalid for the given mode.

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

相关文章阅读