全國咨詢熱線:400-618-4000

内蒙古快3和尾值:一篇文章從技術層面看 以太坊與智能合約

内蒙古快3网上投注开奖结果 www.hkiww.icu 創建時間:2018年05月09日14時50分

隨著區塊鏈的越來越火,區塊鏈應用也是越來越多,我們本篇文章主要講述區塊鏈巨頭之一,以太坊相關的內容。

首先解釋一下為什么介紹以太坊。畢竟市場上前有老牌勁旅比特幣,后有風頭正盛EOS。

原因如下:

1. 與比特幣相比,在以太坊上編程更加靈活。比特幣作為第一個區塊鏈應用,自產生起就不可避免的金融屬性,所以比特幣上的編程也更偏向于金融有關的業務,不夠靈活。相比之下,在以太坊上編程用的是類js語言solidity(后續文章會專門介紹這個),是圖靈完備的語言,所以處理的業務也就不再限制于金融方面,更加靈活。

2. 和EOS相比,以太坊已經運行了很多程序,目前沒有什么大的問題出現,而目前EOS的公鏈還沒上線 ,盡管EOS白皮書介紹其功能更加完善,市場仍處于觀望狀態。

3. 對開發者來說,以太坊支持多種語言的客戶端,可以適應不同系列的開發語言和操作系統,入門更方便。


技術入門

如果是想深入的進行這門技術開發的話,建議利用好下面的一些資源。

以太坊官網:https://www.ethereum.org/

以太坊愛好者://ethfans.org/

以太坊白皮書:

//ethfans.org/wikis/%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6

在從項目的早期,為了適應不同系列的開發語言和操作系統,以太坊的團隊就實現了很多個的客戶端。如下圖所示的表格,有使用各種開發語言來實現的以太坊客戶端??突Ф說畝嘌遠雜諞蘊簧低忱此凳且桓鼉藪?的優勢。

各個語言版本的客戶端如下:

但是,對于一些準備做以太坊開發的初學者來說,建議使用mist開發環境。因為mist的開發相比較于下載geth開發比較簡單,快捷。如果喜歡自主性更大的開發環境,建議使用geth+錢包開發。

Mist是一個去中心化的分散的web3.0應用的瀏覽器,geth(go-ethereum)是go語言的客戶端。


本文以mist為例:

1) 下載mist客戶端

https://github.com/ethereum/mist/releases

2) 做一個映射,做以太坊開發首先要同步以太坊數據,一般情況下會把節點數據同步到系統盤,截至寫文章的時候公鏈數據有200多G,使系統盤負載過大,最好是做一個映射。操作步驟如下:

a) 剪切C:\Users\PHD\AppData\Roaming\Ethereum,存儲到 D:\blockchain\。切記,這里是剪切,如果C:\Users\PHD\AppData\Roaming\這個目錄下還有“Ethereum”文件夾,會導致下一步的命令報錯,“無法創建該文件”。

b) 打開命令行窗口CMD,敲入命令:mklink /J C:\Users\PHD\AppData\Roaming\Ethereum D:\blockchain\Ethereum

顯示,成功創建符號鏈接。

c) 打開mist以太坊錢包,驗證是否成功

3) 把離線節點拷貝到所需文件夾下面。由于以太坊節點數據太大,等著mist自己更新需要幾天的時間,速度比較慢,最快的方法是下載網上對應的鏡像,放到所需文件夾下面,然后打開mist驗證是否成功

以上就是搭建簡單以太坊開發環境的所有步驟了,接著就可以進行智能合約的開發。

在開發智能合約之前 我們要先說明一下什么是智能合約。


智能合約是一套以數字形式定義的承諾,承諾控制著數字資產并包含了合約參與者約定的權利和義務,由計算機系統自動執行。智能合約程序不只是一個可以自動執行的計算機程序,它本身就是一個系統參與者,對接收到的信息進行回應,可以接收和儲存價值,也可以向外發送信息和價值。這個程序就像一個可以被信任的人,可以臨時保管資產,總是按照事先的規則執行操作。(目前最靠譜的解釋)


通?;嵐研辭榱闖絳蚋某菩粗悄芎顯?。雖然比特幣(Bitcoin)上也能寫智能合約,但是比特幣所支持的語法僅與交易有關,能做的事情比較有限。因此目前提到寫智能合約,通常指的是支持執行圖靈完備程序的以太坊(Ethereum)區塊鏈。


智能合約可以做什么?

目前最常見的智能合約是各種加密貨幣合約,開發者可以很容易地透過部署一個智能合約,來提供運行于以太坊上的新加密代幣。如果這份智能合約相容于ERC20標準1,開發者不需要重新開發從挖礦到交易的整個代幣生態系,你的新加密代幣就可以直接使用支持以太坊的電子錢包?來收送,大大降低了建立新加密代幣的門檻。

智能合約也可以用來運作各種公開公正的自動服務機構(DAO,權力下放自治組織)。透過分散在全球各節點上運作的智能合約,所有運作與決策都是公開透明的,降低了交易的不確定性。


智能合約和一般程序的差異

1) 整合金流容易

2) 部署時與后續寫入時需要費用

3) 存儲資料的成本更高

4) 部署后無法更改

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

合約寫好后,把.sol編譯成EVM(Ethereum Virtual Machine)可用的二進制文件(Contract ByteCode)才能部署到Ethereum的區塊鏈上執行,部署到區塊鏈上的合約會有一個錢包地址(地址)和一樣格式的合約地址(Contract Address)。

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

智能合約范例:


如何編寫智能合約?

Ethereum上的智能合約需要使用solidity語言來編寫,關于solidity語法的詳細介紹,可以參考后面的文章

黑馬程序員Go語言與區塊鏈學科會有智能合約和以太坊以及EOS的區塊鏈知識體系的系統講解。


課程分為八個階段

第一階段Go語言開發實戰

第二階段Go語言高并發服務器開發

第三階段去中心化前端開發與web服務器開發

第四階段區塊鏈密碼學安全理論與開發

第五階段區塊鏈與智能合約開發

第六階段區塊鏈分布式應用開發

第七階段區塊鏈系統框架開發

第八階段Go與區塊鏈面試強化

人才培養方向包含密碼學安全開發、區塊鏈系統開發、區塊鏈應用開發、Go語言Web開發、Go語言微服務開發、Go語言分布式開發。

本文版權歸傳智播客Go語言與區塊鏈學院所有,歡迎轉載,轉載請注明作者出處。謝謝!

作者:傳智播客Go語言與區塊鏈培訓學院

//www.hkiww.icu/subject/gozly/index.html