官术网_书友最值得收藏!

4.2 智能合約

到底什么是智能合約呢?那就是以太坊上運行的程序,和其他程序一樣,它也是由代碼和數(shù)據(jù)組成的。智能合約中的數(shù)據(jù)也稱為“狀態(tài)”,因為整個區(qū)塊鏈就是由所有數(shù)據(jù)確定的一個狀態(tài)機。

智能合約的英文是smart contract,和人工智能(AI:Artificial Intelligence)所說的智能沒有關(guān)系,智能合約的概念最早由尼克·薩博提出,就是將法律條文寫成可執(zhí)行代碼,讓法律條文的執(zhí)行中立化,這和區(qū)塊鏈上的程序可以不被篡改地執(zhí)行在理念上不謀而合,因此區(qū)塊鏈引入了智能合約這個概念。

以太坊智能合約是“圖靈完備”的,因此理論上我們可以用它來編寫能做任何事情的程序。

智能合約現(xiàn)在的主要編程語言是Solidity和Vyper,Solidity更為成熟一些,本書中的智能合約代碼都是用Solidity編寫,通常合約文件的擴展名是.sol。下面就是一個簡單的計數(shù)器合約。

這段代碼有一個類型為uint(無符號整數(shù))名為“counter”的變量。counter變量的內(nèi)容(值)就是該合約的狀態(tài)。每當(dāng)我們調(diào)用count()函數(shù)時,此智能合約的區(qū)塊鏈狀態(tài)將增加1,這個狀態(tài)是對任何人都可見的。

圖4-2很好地表示了智能合約的內(nèi)容 引用自《完全理解以太坊智能合約》,https://learnblockchain.cn/2018/01/04/understanding-smart-contracts/。

圖4-2 智能合約包含的內(nèi)容

從本書第5章開始,我們會進一步介紹智能合約開發(fā)。

主站蜘蛛池模板: 怀来县| 扎鲁特旗| 周宁县| 阳东县| 乐平市| 南城县| 京山县| 永丰县| 怀宁县| 克什克腾旗| 五河县| 武隆县| 桐乡市| 中宁县| 揭西县| 兴业县| 鲁山县| 团风县| 灵武市| 临安市| 易门县| 铁力市| 河源市| 威信县| 西和县| 绥棱县| 郎溪县| 彭山县| 马鞍山市| 襄垣县| 田东县| 申扎县| 务川| 嘉义县| 扶绥县| 德江县| 石狮市| 凤阳县| 乐昌市| 雷山县| 娱乐|