在我研究以太坊技術的過程中,由於相關資料較少,因此走了較多的彎路。所以這裡我們不會先介紹Solidity的文法結構,而會在接下來的第一階段,從實戰出發,陸續向大家介紹Geth、Browser-solidity、Mist這三大工具,並在過程中不斷講解以太坊的基本概念。
通過這些工具的實際使用,以及對以太坊的基本概念不斷加深理解,對於第二階段學習solidity語言才能事半功倍(畢竟語言學習是很快的,尤其是一門類js語言來說) 以太坊基本概念 以太坊,最簡單的說法就是:區塊鏈技術+智能合約。 以太坊和區塊鏈技術一樣,有Transaction,Block,賬戶與賬戶之間的關係需要用Transaction來執行,任何Transaction都需要有通過挖礦的block來產生。 以太坊和原來的比特幣技術不同的是 實現了基於Solidity語言的智能合約,並將智能合約看做一種特殊的賬戶,從而使得在智能合約上也可以實現具體的方法 實現了智能合約能落地執行的EVM(以太坊虛擬機器),通過以太坊虛擬機器,從而將solidity這樣的類js的代碼變成了可以在去區塊鏈上執行的加密代碼。 不同於比特幣技術,在以太坊的transaction都需要用到gas,一份合約或者一次交易的gas是固定的(取決於代碼大小和複雜度),而gas的價格則由以太坊中的oracle來決定。 以太坊同時還構建了較完整的、開源的生態系統,不僅有底層的geth、編程的solidity、合約線上瀏覽器browser-solidity、合約錢包Mist/wallet、以太坊的前端開發架構Truffle、各種各樣的開源DApp等等,方便大家快速上手,並開發出適合落地的區塊鏈應用。 對區塊鏈技術感興趣的,也歡迎聯絡我,或者訪問我們的以太中文網 http://www.ethchinese.com Geth工具介紹 Geth工具是Go Ethereum, 是以太坊的官方用戶端(Go語言實現) 通過Geth的一些基本命令,可以很方便的建立出一個以太坊的私人鏈條。
geth --datadir "./" init genesis.jsongeth --datadir "./" --nodiscover console 2>>geth.log
Geth的命令列中包含了大多數的以太坊的命令,包括賬戶建立,賬戶之間的以太幣轉移,挖礦,擷取餘額,部署以太坊合約等。 當然Geth的缺點也很明顯,Geth還是偏底層的內容,很多操作需要較多較複雜的輸入。因此我們將會介紹Browser-solidity
Browser-solidity 這是以太坊智能合約的瀏覽器編譯器,直接存取網站即可,當然如果覺得速度太慢不穩定,也可以自己搭建。 Browser-solidity 因為運行在記憶體中,因此速度很快,對於一些簡單的功能,例如四則運算等,開發調試變得非常容易。 Browser-solidity 中我們將會向大家重複了一些基本的概念,如transaction,gas,account等。 Browser-solidity的缺點也很明顯,那就是因為運行在記憶體中,所以對於涉及賬戶的合約開發、調試&測試,相當的無力。因此接下來向大家介紹了Mist這個官方錢包工具
Mist Mist是以太坊的官方錢包,他既可以串連生產網路、測試網路,更加可以通過設定參數的方式,串連我們自己的私人網路 Mist在通過geth.ipc檔案串連後,就和Geth所建立的網路完全契合在一起了,在Mist上部署的合約,實際上也就是部署在了geth網路上。geth網路上建立帳號,也可以在Mist這個工具上看到。 通過Mist,我們向大家更詳細的講解了以太坊的核心概念,包括:區塊、Transaction、Gas、賬戶、合約、合約中的建構函式,變數以及方法。
通過Geth、Browser-solidity、Mist 三個工具的介紹,給我們提供了開發、調試和測試我們智能合約的很好的利器。
在接下來的文章中,我們將正式向大家分別介紹三大工具 Geth/Browser-solidity/Mist
原文地址: http://www.ethchinese.com/?p=651