日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

以太坊智能合約編程概述有哪些?以太坊智能合約編程基本概念是什么?( 二 )


工作量證明 。礦工們總是在競爭解決一些數(shù)學(xué)問題 。第一個解出答案的(算出下一個區(qū)塊)將獲得以太幣作為獎勵 。然后所有節(jié)點都更新自己的區(qū)塊鏈 。所有想要算出下一個區(qū)塊的礦工都有與其他節(jié)點保持同步,并且維護同一個區(qū)塊鏈的動力,因此整個網(wǎng)絡(luò)總是能達成共識 。(注意:以太坊正計劃轉(zhuǎn)向沒有礦工的權(quán)益證明系統(tǒng)(POS),不過那不在本文討論范圍之內(nèi) 。)
以太幣 。縮寫ETH 。一種你可以購買和使用的真正的數(shù)字貨幣 。這里是可以交易以太幣的其中一家交易所的走勢圖 。在寫這篇文章的時候,1個以太幣價值65美分 。
Gas. (汽油) 在以太坊上執(zhí)行程序以及保存數(shù)據(jù)都要消耗一定量的以太幣,Gas是以太幣轉(zhuǎn)換而成 。這個機制用來保證效率 。
DApp. 以太坊社區(qū)把基于智能合約的應(yīng)用稱為去中心化的應(yīng)用程序(Decentralized App) 。DApp的目標(biāo)是(或者應(yīng)該是)讓你的智能合約有一個友好的界面,外加一些額外的東西,例如IPFS(可以存儲和讀取數(shù)據(jù)的去中心化網(wǎng)絡(luò),不是出自以太坊團隊但有類似的精神) 。DApp可以跑在一臺能與以太坊節(jié)點交互的中心化服務(wù)器上,也可以跑在任意一個以太坊平等節(jié)點上 。(花一分鐘思考一下:與一般的網(wǎng)站不同,DApp不能跑在普通的服務(wù)器上 。他們需要提交交易到區(qū)塊鏈并且從區(qū)塊鏈而不是中心化數(shù)據(jù)庫讀取重要數(shù)據(jù) 。相對于典型的用戶登錄系統(tǒng),用戶有可能被表示成一個錢包地址而其它用戶數(shù)據(jù)保存在本地 。許多事情都會與目前的web應(yīng)用有不同架構(gòu) 。)
如果想看看從另一個新手視角怎么理解這些概念,請讀Just Enough Bitcoin for Ethereum 。
以太坊客戶端,智能合約語言
編寫和部署智能合約并不要求你運行一個以太坊節(jié)點 。下面有列出基于瀏覽器的IDE和API 。但如果是為了學(xué)習(xí)的話,還是應(yīng)該運行一個以太坊節(jié)點,以便理解其中的基本組件,何況運行節(jié)點也不難 。
運行以太坊節(jié)點可用的客戶端
以太坊有許多不同語言的客戶端實現(xiàn)(即多種與以太坊網(wǎng)絡(luò)交互的方法),包括C, Go, Python, Java, Haskell等等 。為什么需要這么多實現(xiàn)?不同的實現(xiàn)能滿足不同的需求(例如Haskell實現(xiàn)的目標(biāo)是可以被數(shù)學(xué)驗證),能使以太坊更加安全,能豐富整個生態(tài)系統(tǒng) 。
在寫作本文時,我使用的是Go語言實現(xiàn)的客戶端geth (go-ethereum),其他時候還會使用一個叫testrpc的工具, 它使用了Python客戶端pyethereum 。后面的例子會用到這些工具 。
注: 我曾經(jīng)使用過C的客戶端,現(xiàn)在仍然在用其中的ethminer組件和geth配合挖礦,因此這些不同的組件是可以一起工作的 。
關(guān)于挖礦:挖礦很有趣,有點像精心照料你的室內(nèi)盆栽,同時又是一種了解整個系統(tǒng)的方法 。雖然以太幣現(xiàn)在的價格可能連電費都補不齊,但以后誰知道呢 。人們正在創(chuàng)造許多酷酷的DApp, 可能會讓以太坊越來越流行 。
交互式控制臺 。客戶端運行起來后,你就可以同步區(qū)塊鏈,建立錢包,收發(fā)以太幣了 。使用geth的一種方式是通過Javascript控制臺(JavaScript console, 類似你在chrome瀏覽器里面按F12出來的那個,只不過是跑在終端里) 。此外還可以使用類似cURL的命令通過JSON RPC來與客戶端交互 。本文的目標(biāo)是帶大家過一邊DApp開發(fā)的流程,因此這塊就不多說了 。但是我們應(yīng)該記住這些命令行工具是調(diào)試,配置節(jié)點,以及使用錢包的利器 。
在測試網(wǎng)絡(luò)運行節(jié)點 。如果你在正式網(wǎng)絡(luò)運行g(shù)eth客戶端,下載整個區(qū)塊鏈與網(wǎng)絡(luò)同步會需要相當(dāng)時間 。(你可以通過比較節(jié)點日志中打印的最后一個塊號和stats.ethdev.com上列出的最新塊來確定是否已經(jīng)同步 。) 另一個問題是在正式網(wǎng)絡(luò)上跑智能合約需要實實在在的以太幣 。在測試網(wǎng)絡(luò)上運行節(jié)點的話就沒有這個問題 。此時也不需要同步整個區(qū)塊鏈,創(chuàng)建一個自己的私有鏈就勾了,對于開發(fā)來說更省時間 。

推薦閱讀