摘要:許多人正試圖學(xué)習(xí)如何在上開發(fā)智能合約。但是,這些智能合約是由編寫的,并編譯成,這對大多數(shù)非程序員來說似乎很奇怪。在這里,你可以將其視為可以在瀏覽器中加載和運(yùn)行的文件。將代碼編譯成的格式編譯代碼有很多種方法。
許多人正試圖學(xué)習(xí)如何在EOS上開發(fā)智能合約。但是,這些智能合約是由C++編寫的,并編譯成WebAssembly,這對大多數(shù)非c++程序員來說似乎很奇怪。因此,在深入了解EOS之前,最好先學(xué)習(xí)一些關(guān)于WebAssembly的基本知識(shí)。
什么是WebAssembly我不想從官方網(wǎng)站上復(fù)制這個(gè)定義。你可以自己看一下。在這里,你可以將其視為可以在Web瀏覽器中加載和運(yùn)行的文件。它類似于Javascript,但它比JS更快,更簡單,更安全。
如何編寫Webassembly這里是一個(gè)工作流程:
基本上有四個(gè)步驟,我將通過一個(gè)非常簡單的例子來說明。
1.編寫C/C++代碼以下代碼用于計(jì)算數(shù)字的平方根。
#include2.將C/C++代碼編譯成wasm(Webassembly的格式)float getSqrt (float num) { return sqrt(num); }
編譯代碼有很多種方法。為了簡化這個(gè)過程,我找到了一種非常簡單的方法。
將代碼復(fù)制到該網(wǎng)站并單擊build(構(gòu)建)按鈕,你可以找到編譯的文件,如下所示。
然后將program.wasm文件下載到本地文件夾。
3.使用JavaScript將wasm加載到瀏覽器中使用以下代碼創(chuàng)建test.html,將其放在與program.wasm相同的文件目錄中。
4.在Web瀏覽器中運(yùn)行該方法WASM Test
要解決網(wǎng)站跨域問題,我們需要在該文件夾中運(yùn)行本地Web服務(wù)器。使用Linux或Mac時(shí),讓我們執(zhí)行一下這個(gè)命令:
python -m SimpleHTTPServer
然后打開我們的Chrome瀏覽器,轉(zhuǎn)到此頁面:http://localhost:8000/test.html。在控制臺(tái)中,嘗試以下方法:
完成通過本教程,你就可以熟悉WebAssemply,但是對于高級研究,請查看@dan撰寫的eos-example-exchange-contract-and-benefits-of-c
分享一個(gè)交互式的在線編程實(shí)戰(zhàn),EOS智能合約與DApp開發(fā)入門:
EOS教程
本課程幫助你快速入門EOS區(qū)塊鏈去中心化應(yīng)用的開發(fā),內(nèi)容涵蓋EOS工具鏈、賬戶與錢包、發(fā)行代幣、智能合約開發(fā)與部署、使用代碼與智能合約交互等核心知識(shí)點(diǎn),最后綜合運(yùn)用各知識(shí)點(diǎn)完成一個(gè)便簽DApp的開發(fā)。
這里是原文
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24291.html
摘要:對于很多沒有中間語言的字節(jié)碼的編程語言來說,根本不存在解釋執(zhí)行與編譯執(zhí)行的選項(xiàng),比如傳統(tǒng)只能編譯執(zhí)行,直接將代碼編譯成為可執(zhí)行的二進(jìn)制機(jī)器碼,我們電腦上文件就是編譯的成果。 Daniel Larimer 在最近的博客中透露,EOS 新增了官方的 WebAssembly 解釋器,用來解釋執(zhí)行 WebAssembly 智能合約,加上之前的編譯執(zhí)行,EOS 智能合約有了兩種執(zhí)行方式。 對于很...
摘要:所以最簡單的智能合約只需實(shí)現(xiàn)文件。我們看到文件中已經(jīng)聲明了這個(gè),并說明了這個(gè)的李嘉圖合約,大概意思是本合約的輸入為一串字符,本合約意圖是打印輸出,沒有其他效果。 Hello World! 稍微了解 EOS 系統(tǒng),你就會(huì)知道 EOS 的智能合約基于 WebAssembly(WASM) 技術(shù),這種技術(shù)在性能和跨平臺(tái)兼容性之間取得了很好的平衡,通過將原始代碼編譯成字節(jié)碼,使得代碼可以在多種平...
摘要:允許智能合約定義自己的私有數(shù)據(jù)庫表。有了多級索引,智能合約就具備了操作類似數(shù)據(jù)庫模塊的功能。因此雖然只有一列,但是的靈活性絲毫不亞于傳統(tǒng)的數(shù)據(jù)表。 上一章我們學(xué)習(xí)了開發(fā)智能合約之前需要知道的必要概念: 什么是webAssembly以及它在智能合約上下游中的位置; 什么是ABI以及怎樣使用eosiocpp工具產(chǎn)生ABI和wasm、wast hello智能合約的簡單入門:部署和調(diào)用 ...
摘要:在看啟動(dòng)腳本輸出的時(shí)候,發(fā)現(xiàn)了這兩樣輸出設(shè)置和智能合約,以及安裝合約開發(fā)工具。合約開發(fā)工具是的工具鏈和一組工具,用于促進(jìn)平臺(tái)的合同編寫。系統(tǒng)智能合約,可以進(jìn)行很多系統(tǒng)級別的操作,比如用戶投票將用戶注冊成為生產(chǎn)者。 Previously 在EOS DApp開發(fā)入門(一)中,通過docker image的方式架起了本地的eos區(qū)塊鏈,使Note chain DApp與本地區(qū)塊鏈進(jìn)行交互,成...
閱讀 2876·2021-10-08 10:12
閱讀 3977·2021-09-22 15:45
閱讀 2566·2019-08-30 15:52
閱讀 2634·2019-08-29 18:44
閱讀 2655·2019-08-29 12:37
閱讀 1164·2019-08-26 13:36
閱讀 2569·2019-08-26 13:34
閱讀 1483·2019-08-26 12:20