智能合约编码
智能合約編碼
最近更新時(shí)間:2019-11-11 18:50:50
合約運(yùn)行環(huán)境(EVM)
- EVM,即以太坊虛擬機(jī),是以太坊智能合約的運(yùn)行環(huán)境,實(shí)際上是一個(gè)沙箱環(huán)境。
- 以太坊中有兩類賬戶,一種是被公私鑰對(duì)控制的普通賬戶,另一種是被智能合約控制的合約賬戶,兩類賬戶共用同一地址空間。
- 交易是指將二進(jìn)制數(shù)據(jù)payload或以太幣從一個(gè)賬戶發(fā)送至另一賬戶 ,而合約的創(chuàng)建就是指向零賬戶發(fā)起交易的過(guò)程。
- 合約的部署和調(diào)用會(huì)按照特定規(guī)則消耗一定量的gas作為交易的手續(xù)費(fèi)。
?
在線IDE
-
飛洛智能合約在線編輯器?soleditor?,可自動(dòng)編譯部署合約,同時(shí)支持調(diào)用合約。用戶可在右側(cè)選擇編譯器版本和交易對(duì)象地址,部署合約后,選擇合約內(nèi)方法進(jìn)行調(diào)用。
-
Remix是以太坊官方推薦的智能合約開(kāi)發(fā)IDE,適合新手,可以在瀏覽器中快速部署測(cè)試智能合約。
-
solc是solidity的命令行編譯器,可以在本地將以solidity編寫(xiě)的以太坊智能合約編譯成為以太坊虛擬機(jī)中的代碼,最終部署到鏈上,形成我們所見(jiàn)到的各種智能合約。
- 下載solc工具 npm install -g solc
- 編譯后綴為sol的合約文件生成abi文件和bin文件 solcjs --abi --bin mycontract.sol
-
Truffle是智能合約開(kāi)發(fā)最流行的框架之一,內(nèi)置了智能合約編譯、鏈接、部署和二進(jìn)制文件的管理功能。
- 安裝truffle npm install -g truffle
- 使用truffle unbox創(chuàng)建可交互合約應(yīng)用 truffle unbox react-uport
- 打開(kāi)truffle控制臺(tái) truffle develop
- 在控制臺(tái)進(jìn)行合約的編譯和遷移 compile migrate
?
合約開(kāi)發(fā)注意事項(xiàng)
- 出于安全和法律合規(guī),合約由官方統(tǒng)一審核,通過(guò)后才可以發(fā)布。這個(gè)約束對(duì)合約的函數(shù)實(shí)現(xiàn)有較大影響。
- 合約必須滿足當(dāng)?shù)胤珊鸵?guī)范要求,官方會(huì)對(duì)提交的合約進(jìn)行源碼和二進(jìn)制審查。合約功能正確性以及合約內(nèi)部的安全由開(kāi)發(fā)者保證。
- 智能合約是一個(gè)去中心化的軟件,官方只提供合約執(zhí)行平臺(tái)。合約升級(jí)由軟件邏輯決定,請(qǐng)軟件支持升級(jí)。
- 出于安全和法規(guī)考慮,開(kāi)發(fā)者提供的合約不能包含?selfdestruct?代碼進(jìn)行合約銷毀。
總結(jié)
- 上一篇: 微软宣布推出Azure Blockcha
- 下一篇: Quorum企业以太坊环境搭建教程