從區塊鏈歷史上來講,先誕生了比特幣,當時並無區塊鏈這個技術和名詞,而後業界從比特幣中提取了技術架構和體系,稱之爲區塊鏈技術。從比特幣提取的區塊鏈技術稱之爲區塊鏈1.0時代,那個時候的應用主要以電子貨幣和去中心化交易爲主,好比各類山寨幣。而以太坊將區塊鏈帶入了2.0的時代,區塊鏈2.0不是推翻了1.0,而是在1.0的基礎上實現了區塊知曉、價值知曉、圖靈完備,並進行了細節優化,從而造成了以智能合約爲特點的區塊鏈2.0。比特幣定位於一個應用,而以太坊定位於平臺,你能夠在這個平臺上利用智能合約作各類應用。javascript
因此,學習區塊鏈,直接學習以太坊就行了html
對於沒有接觸過區塊鏈的人,建議先參會以太坊的平常應用。java
一、 使用客戶端python
這裏的教程不少,推薦一個以太坊錢包教程linux
二、 挖礦c++
挖礦的教程不少,通常分佈在各個礦池,這裏推薦一個國內礦池的教程,而且能夠加入各個礦池的羣去交流一下。國內的礦池有www.f2pool.com,www.bw.com 等幾大礦池。git
http://pan.baidu.com/s/1c27DOCogithub
三、 瀏覽公有鏈的區塊信息web
在經歷以上事情後,能夠經過區塊鏈瀏覽器去查看本身的帳戶和交易,更直觀感覺。shell
經過以上的操做,基本能夠算對區塊鏈有了一個初步的瞭解和感知。
以太坊發佈之後,有 多個客戶端,同時也支持多個平臺,初學者每每被各類各樣的客戶端弄迷糊,本文進行了詳細的總結。
以太坊客戶端以語言進行分類,在github上分紅了不一樣項目,源代碼地址:https://github.com/ethereum/,雖然以太坊客戶端衆多,可是有兩個共同特色:
一、同一語言的客戶端在不一樣平臺上的使用是徹底相同的
二、不一樣語言的客戶端(mist、geth、eth等等)之間在同一個平臺(Linux、windows或OSX)上共用同樣的應用配置,同時其命令行可以使用的參數也是一致。
下面就以github上的項目爲分類說明各個客戶端的用途和特色:
(一)Go-ethereum項目
開發語言:go語言
客戶端文件:Geth
界面:命令行
適用平臺:windows、linux和OSX
功能和特色:該項目是使用最普遍的以太坊客戶端,大部分節點都是運行的該客戶端,教程和例子也最多,推薦使用,可用於挖礦,組建私有鏈,管理帳號,部署智能合約等經常使用功能,不能夠編譯智能合約。
(二)webthree-umbrella項目
此項目包含3個客戶端
開發語言:c++
客戶端文件:AlethZero、Mix和Eth
使用平臺:windows、linux和OSX
界面:圖形化界面
功能和特色:該項目嚴格來講是cpp-ethereum 項目的一個shell,是以太坊基金會的前CTO,Gavin Wood主持編寫的,因此人氣也很高,易用性也很好。AlethZero是圖形化的錢包客戶端,對應的是Geth的功能,不過是全圖形化的。可是隨着後續以太坊基金會主推的圖形化錢包Mist的推出,漸漸沒落。Mix 是智能合約(以太坊稱爲DAPP)的開發IDE,能夠支持智能合約(DAPP)的編寫、調試,部署,全圖形化界面,可是目前已經中止開發了,開發組轉向了Remix。Eth是C++編寫的命令行客戶端功能和Geth同樣。
(三)Mist項目
開發語言:JavaScript
客戶端文件:Mist(目前使用Ethereum-Wallet的名稱)
使用平臺:windows、linux和OSX
界面:圖形化界面
功能和特色:該項目是以太坊基金會主推的項目,Mist定位不僅是一個錢包,而是未來DAPP(智能合約的應用APP)市場,相似於蘋果市場,在這裏能夠有你的帳號,能夠瀏覽、發佈和買賣以太坊的DAPP應用。目前由於開發還不夠全面,名稱暫時顯示爲Ethereum-Wallet,做用也很簡單,就是一個錢包的功能。強烈推薦,將來的主流客戶端。
(四)solidity項目
開發語言:C++
客戶端文件:solc
使用平臺:windows、linux和OSX
界面:命令行界面
功能和特色:該項目是以太坊智能合約(DAPP)的編程語言,使用solc做爲編譯程序,該項目主要用於編譯,嚴格來講是一個基本的編譯平臺,通常開發可用MIX替代。
(五)browser-solidity項目
開發語言:C++
客戶端文件:瀏覽器中顯示
使用平臺:windows、linux和OSX
界面:瀏覽器界面
功能和特色:該項目是智能合約瀏覽器版本的開發環境,能夠支持在瀏覽器中直接開發、調試和編譯,對於初學者來講,能夠快速上手,不須要安裝,很是方便,直接訪問地址使用:https://ethereum.github.io/browser-solidity/
(六)pyethereum項目和ethereumj項目
pyethereum項目是用Python語言編寫的以太坊客戶端,ethereumj項目是用Java語言編寫的以太坊客戶端,只是語言不一樣,和前面GO語言編寫的客戶端Geth的功能徹底相同。
(七)etheminer項目
開發語言:C++
客戶端文件:ethminer
使用平臺:windows、linux和OSX
界面:命令行
功能和特色:該項目是cpp-ethereum項目的一部分,用於和Geth配合進行GPU挖礦,比CPU挖礦效率高100多倍,也能夠用於礦池挖礦
以太坊有不少有用的網站都分佈在國外,找起來很費勁,這裏總結一下
一、以太坊官方網站:https://ethereum.org/
該網站爲以太坊的官方網站,有詳細的以太坊介紹和各類鏈接地址,推薦詳細看一看
二、以太坊全部源碼地址(官方):https://github.com/ethereum/
該github爲以太坊全部項目的源碼地址,以及更新和發佈。
三、以太坊Homestead文檔地址(官方):http://www.ethdocs.org/en/latest/index.html
該網站爲以太坊的詳細介紹文檔,基本包括了以太坊的方方面面,若是有什麼不清楚的原理和應用,基本均可以在這裏找到答案和線索。
四、以太坊網絡狀態地址(官方):https://ethstats.NET/
該網站能全面的顯示網絡狀態,包括節點、難度、算力等等,很是直觀
五、以太坊資源網站(官方):http://ether.fund/
該網站提供了以太坊不少應用資源,好比市場狀況、合約輔助工具、已發佈的智能合約、以太坊網絡、DAAP等,方便開發和發佈。
六、Solidity編程文檔(官方):http://solidity.readthedocs.io/en/latest/
該網站提供了以太坊Solidity語言的全面參考手冊,學習Solidity語言必備。
七、以太坊網絡掃描(官方):http://etherscan.io/
該網站提供了以太坊網絡的各類狀態,好比賬號的詳情、TOKEN詳情,難度詳情、區塊詳情,很是方便和直觀。
八、以太坊官方博客:https://blog.ethereum.org/
九、以太坊wiki百科地址:https://github.com/ethereum/wiki/wiki
在這裏有白皮書、黃皮書以及開發指南,比較全面。
十、以太坊中文愛好者網站:http://ethfans.org/
該網站爲國內以太坊愛好者自發創建的網站,內容比較全,信息更新很快。
十一、以太坊的gitter的實時交流網站:https://gitter.im/orgs/ethereum/rooms
該網站是以太坊的gitter chart的網站,根據項目分了不少房間,只要你提問題,大部分有人回答,很不錯,不過只能英語交流。
十二、以太坊的官方論壇:https://forum.ethereum.org/
官方論壇,沒什麼好說的,我遇到的幾個問題,都是在這裏找到的答案
1三、以太坊第三方強大的IDE:https://live.ether.camp/
這個是第三方發佈的Solidity IDE,我看了一下,很強大,強大到還不太會用,他的目標是企業級IDE,老外用的較多。
1四、以太坊開發框架Truffle說明書:http://truffle.readthedocs.io/en/latest/
以太坊目前很流行的開發框架Truffle的說明書,這個框架比較流行。
1五、以太坊開發框架dapple說明書:http://dapple.readthedocs.io/en/master/
這個開發框架是在gitter chart上看到的,感受用的人很少,先觀察
1六、以太坊官方推薦開發框架Meteor說明書:https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor