從零構建以太坊(Ethereum)智能合約到項目實戰——學習筆記3

P7 、1-以太坊(Ethereum)是什麼?html

DAPP:分佈式應用程序網絡

以太坊提供了便於交易的加密貨幣以太幣(Ether),可透過智能合約解決交易上的信任問題,同時也可撰寫DAPP來提供友善的信息彙總與操做界面,讓以太坊成爲一個目前最理想的區塊鏈底層技術。 編輯器

以太幣(Ether)的實際用途分佈式

在電腦上執行的通常的代碼,寫出來可能會有循環不斷執行(死循環)的狀況,搬到區塊鏈上亦然。那麼以太坊怎麼解決這個問題呢?以太坊開發者想到的辦法是讓執行的代碼變得有價。EVM裏支持的全部的指令(OPCODE)都有明碼標價,執行智能合約須要消耗與執行的指令數量至關的以太幣。在智能合約的術語中,這些拿來消耗的以太幣被稱爲gas(燃料)。部署合約到區塊鏈上時,須要附加必定數量的燃料。當燃料消耗完而程序還沒執行完,就會出現 Out of Gas(燃料耗盡)錯誤。智能合約透過這樣的方式來避免死循環等狀況。post

智能合約能作什麼事? 區塊鏈

創造新的加密代幣大數據

募資 atom

程序能作的事加密

當你須要公開時,可被信任的紀錄時,均可以透過智能合約達成。url

以太坊的缺點

  • 目前以太坊區塊鏈的速度和電腦執行速度沒法相比,不適合快速交易,或是須要存儲較大數據的情境。近期的plasma提案有望解決快速交易的問題。
  • 由於缺少即時調控區塊大小的手段,在一些很熱門的交易時段(如某些熱門的ICO開放認購時),整個網絡的交易延遲會變地很長。
  • 智能合約一經部署就永遠存在,除非擁有者啓動智能合約中的自毀(selfdestruct)功能。如何升級合約並保存其中的參數與代幣,是一個值得探討的課題。
  • 以太坊網絡節點上並不適合存儲較大的檔案。目前有Swarm與IPFS等分佈式檔案存儲方式可供選擇。

 

P8 、2-什麼是智能合約(Smart Contract)

在區塊鏈上運行的程序,一般稱爲 智能合約(Smart Contract)。因此一般會把寫區塊鏈程序改稱爲寫智能合約

智能合約能夠作什麼?

目前最多見的智能合約是各類加密貨幣合約,開發者能夠很容易地透過部署一個智能合約,來提供運行於以太坊上的新加密代幣。

智能合約和通常程序的差別

1、整合金流容易

2、部署時與後續寫入時須要費用

3、儲存資料的成本高

4、部署後沒法更改

如何編寫智能合約?

Ethereum上的智能合約須要使用solidity語言來編寫。

將智能合約部署到區塊鏈的流程

寫好solidity代碼(.sol)後,須要先將程序代碼編譯(編譯)成EVM(Ethereum Virtual Machine)能讀懂的二進制度Contract ByteCode,才能部署到Ethereum的區塊鏈上執行。部署到區塊鏈上的合約會有一個和錢包地址(地址)同樣格式的合約地址(Contract Address)。

部署後智能合約可自動執行。後續呼叫智能合約的時候,使用者可使用部署合約的錢包地址(全部者帳戶),或依據編寫的智能合約條件,讓其餘錢包地址也能呼叫這個只能合約。呼叫智能合約,其實就是向這個合約地址發起交易,只是交易的不僅是代幣,而能夠是智能合約提供的呼叫方法。


P9 、3-Atom編輯器編寫智能合約(Smart Contract)插件安裝配置

編輯器的選擇:Atom、WebStorm、VSCode、Sublime等等。

Atom下載地址:https://atom.io/,下載安裝Atom

安裝Atom插件:

  • autocomplete-solidity(代碼自動補齊)
  • linter-solium、linter-solidity(代碼錯誤檢查)
  • language-ethereum(支持Solidity代碼高亮以及Solidity代碼片斷)

離線插件安裝參考此文:Atom離線插件安裝

相關文章
相關標籤/搜索