区块链操作系统eos简单入门(EOS用C)

许多人正试图学习如何在EOS上开发智能合约。但是,这些智能合约是由C 编写的,并编译成WebAssembly,这对大多数非c 程序员来说似乎很奇怪。因此,在深入了解EOS之前,最好先学习一些关于WebAssembly的基本知识。

什么是WebAssembly

我不想从官方网站上复制这个定义。你可以自己看一下。在这里,你可以将其视为可以在Web浏览器中加载和运行的文件。它类似于Javascript,但它比JS更快,更简单,更安全。

如何编写Webassembly

这里是一个工作流程:

区块链操作系统eos简单入门(EOS用C)(1)

基本上有四个步骤,我将通过一个非常简单的例子来说明。

1.编写C/C 代码

以下代码用于计算数字的平方根。

#include <math.h> float getSqrt (float num) { return sqrt(num); }

2.将C/C 代码编译成wasm(Webassembly的格式)

编译代码有很多种方法。为了简化这个过程,我找到了一种非常简单的方法。

区块链操作系统eos简单入门(EOS用C)(2)

将代码复制到该网站并单击build(构建)按钮,你可以找到编译的文件,如下所示。

区块链操作系统eos简单入门(EOS用C)(3)

然后将program.wasm文件下载到本地文件夹。

3.使用JavaScript将wasm加载到浏览器中

使用以下代码创建test.html,将其放在与program.wasm相同的文件目录中。

<!doctype html> <title>WASM Test</title> <script> fetch('./program.wasm') .then(res => { if (res.ok) return res.arrayBuffer(); throw new Error(`Unable to fetch WASM.`); }) .then(bytes => { return WebAssembly.compile(bytes); }) .then(module => { return WebAssembly.instantiate(module); }) .then(instance => { window.wasmSqrt = instance.exports.getSqrt; }); </script>

4.在Web浏览器中运行该方法

要解决网站跨域问题,我们需要在该文件夹中运行本地Web服务器。使用Linux或Mac时,让我们执行一下这个命令:

python -m SimpleHTTPServer

然后打开我们的Chrome浏览器,转到此页面:http://localhost:8000/test.html。在控制台中,尝试以下方法:

区块链操作系统eos简单入门(EOS用C)(4)

完成

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页