许多人正试图学习如何在EOS上开发智能合约。可是,这些智能合约是由C++编写的,并编译成WebAssembly,这对大多数非c++程序员来讲彷佛很奇怪。所以,在深刻了解EOS以前,最好先学习一些关于WebAssembly的基本知识。html
我不想从官方网站上复制这个定义。你能够本身看一下。在这里,你能够将其视为能够在Web浏览器中加载和运行的文件。它相似于Javascript,但它比JS更快,更简单,更安全。python
这里是一个工做流程:c++
基本上有四个步骤,我将经过一个很是简单的例子来讲明。git
如下代码用于计算数字的平方根。程序员
#include <math.h> float getSqrt (float num) { return sqrt(num); }
编译代码有不少种方法。为了简化这个过程,我找到了一种很是简单的方法。github
将代码复制到该网站并单击build(构建)按钮,你能够找到编译的文件,以下所示。web
而后将program.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>
要解决网站跨域问题,咱们须要在该文件夹中运行本地Web服务器。使用Linux或Mac时,让咱们执行一下这个命令:浏览器
python -m SimpleHTTPServer
而后打开咱们的Chrome浏览器,转到此页面:http://localhost:8000/test.html
。在控制台中,尝试如下方法:
经过本教程,你就能够熟悉WebAssemply,可是对于高级研究,请查看@dan撰写的eos-example-exchange-contract-and-benefits-of-c
分享一个交互式的在线编程实战,EOS智能合约与DApp开发入门:
本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、帐户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
这里是原文