新利体育官网 分类
‘新利体育官网’教你用Dfinity实现一个开放式二维码服务发布日期:2024-01-11 浏览次数:
本文摘要:前言Dfinity 的互联网计算机是一个安全性的网络协议,它容许我们将代码必要当成服务部署在网络中,这些软件就像在本地一样,被运营在这台无缝分享的超级计算机上。

前言Dfinity 的互联网计算机是一个安全性的网络协议,它容许我们将代码必要当成服务部署在网络中,这些软件就像在本地一样,被运营在这台无缝分享的超级计算机上。想象一下,就样子你把代码记可到一个超级 Github 上,不必管操作系统等等一些复杂度,网卓新闻网,后端就可以誓言宕机的获取服务了!当然这些都必须用 Dfinity 的 token 来计价。

接下来将展示如何在互联网上创建一个永久的微服务。实现目标打算构建一些非常简单的服务,但也得展出互联网计算机的特性。所以只做到“hello world”或非常简单算式是远远不够的。

我们必须去构建一些确实简单,并能构建到现有的服务里的东西。所以深思熟虑之后,我最后要求写出一个二维码分解服务,用它来表明加密货币钱包的地址。

如何搭起互联网计算机上的程序运行在 WebAssembly 虚拟机中,因此要建构微服务,只必须写出好代码后编译成 WebAssembly 运营才可。C 和 Rust 里面都有现成的库可以产生二维码,只必须再成 WebAssembly 运营才可。虽然这样较为慢,但是这里想要做到点有意思的尝试,所以要求通过 Motoko 研发。什么是 MotokoMotoko 是由 WebAssembly 标准的原作者设计的一门高级语言。

它在语法上类似于 Swift 和 unique,独有之处在于它为互联网计算机上的特性获取了很好的反对。只需iTunes并加装互联网计算机的 SDK,就可以取得 Motoko 的近期版本:$ wget https://sdk.dfinity.org/install.sh$ yes Y | sh install.sh预备工作在用 Motoko 为微服务定义模块之前,再行总结一下二维码的标准,包含二维码的涉及组件如下:这些组件所需的涉及参数还包括:版本号(1到40)、LMQH的四种数据流级别(分别回应数据遗失容忍度为7%、15%、25%和30%)和编码方案(可以是数字、字母数字、八位或汉字)。

定义模块将二维码的组件构造函数为 Motoko 的类型:public type Version = { #Version : Nat }; public type ErrorCorrection = { #L; #M; #Q; #H };public type Mode = { #Alphanumeric; #EightBit; #Kanji; #Numeric };public type Matrix = { #Matrix : [[Bool]] };我们可以用于这些类型,在 Motoko 中定义一个函数来分解二维码:/*** Encodes the input text according to the QR code specification or* returns null if the input text is invalid for the given mode.*/public func encode( version : Version, // Version number. level : ErrorCorrection, // Error correction level. mode : Mode,// Encoding scheme. input : Text// Input text.) : async ?Matrix { .. };将以上代码PCB在 Motoko actor 声明中定义模块。构建我把构建代码放在了 GitHub 上,总共2000多行代码,必须十几个模块反对。可以 git 下来后在 Visual Studio 中关上,Visual Studio 上有一个可以高亮 Motoko 语法的插件,较为便利。

$ git clone https://github.com/enzoh/qr$ code qr这个二维码服务在相当大程度上依赖 Motoko 的标准代码库。之前我仍然不发烧,用了才告诉, Motoko 早已充足成熟期了,并且功能强大。Motoko的 API 和 Rust 与 SML 获取的很相近,所以如果你很熟知这些语言,那用 Motoko 的时候基本不必须查询任何的文档。

虽然文档网站仍在研发中,然而,通过必要在 Visual Studio 中关上标准库,一直可以寻找近期的详细信息。$ code $HOME/.cache/dfinity/versions/$DFX_VERSION/stdlib展示启动本地互联网计算机节点:$ dfx start在另一个窗口中继续执行以下命令$ dfx build$ dfx canister install --all$ dfx canister call demo encode \$ '(variant{Version=2}, variant{M}, variant{Alphanumeric}, "HTTPS://SDK.DFINITY.。


本文关键词:新利体育官网

本文来源:新利体育官网-www.tyresquaremis.com