以太坊入門手冊(附各類工具鏈接)

編者按:從 2008 年誕生以來,區(qū)塊鏈走過了十多年的風(fēng)雨路乱顾,繁衍出比特幣板祝、以太坊、EOS?等諸多公有鏈糯耍。誕生于 2014 年的以太坊扔字,到今天已經(jīng)走過了整整 5 個年頭。本文將圍繞以太坊温技,介紹相關(guān)基礎(chǔ)知識革为,提供各種查詢工具、社群鏈接舵鳞,幫助大家更加深入學(xué)習(xí)以及在以太坊上進行開發(fā)震檩。

以下為本入門手冊目錄

一、以太坊是什么?

二抛虏、以太坊代幣

三博其、節(jié)點、網(wǎng)絡(luò)迂猴、賬戶與錢包

四慕淡、以太坊挖礦

五、智能合約與 DApp 開發(fā)

六沸毁、以太坊的發(fā)展歷史

七峰髓、以太坊社區(qū)治理:基金會、社群息尺、貢獻者介紹

八携兵、其他

在介紹以太坊之前,如果你對區(qū)塊鏈以及比特幣還不了解搂誉,可以閱讀《區(qū)塊鏈 100 問》徐紧、《區(qū)塊鏈課堂 100 問》或者觀看一下這個視頻《比特幣的原理》。一炭懊、以太坊是什么并级?

什么是以太坊?根據(jù)以太坊白皮書定義侮腹,以太坊是一個全新開放的區(qū)塊鏈平臺死遭,它允許任何人在平臺中建立和使用通過區(qū)塊鏈技術(shù)運行的去中心化應(yīng)用;它是一個開放源代碼的項目凯旋,由全球范圍內(nèi)的很多人共同創(chuàng)建呀潭,允許用戶按照自己的意愿創(chuàng)建復(fù)雜的操作;以太坊核心是以太坊虛擬機(“EVM”)/智能合約至非,可以執(zhí)行任意代碼钠署,用計算機科學(xué)術(shù)語說,以太坊的虛擬機是“圖靈完備的”荒椭。

以太坊究竟是什么谐鼎?推薦閱讀以太坊創(chuàng)始人 Vitalik Buterin 的文章《以太坊是什么》。

此外趣惠,我們建議大家可以閱讀一下以太坊白皮書狸棍,盡管不一定能全部看懂,但是可以從一個更高的維度去把握以太坊味悄。除了白皮書草戈,以太坊還有黃皮書、紫皮書侍瑟。

以太坊白皮書:2014 年初唐片,由以太坊創(chuàng)始人 Vitalik Buterin ( V神)發(fā)表丙猬,從技術(shù)方面來看,白皮書只是描述了一種新技術(shù)的理論(英文版/中文版)费韭;

以太坊黃皮書:2014 年 4 月茧球,由 Gavin Wood 博士(以太坊聯(lián)合創(chuàng)始人兼 CTO )發(fā)布,號稱以太坊的技術(shù)圣經(jīng)星持,將以太坊虛擬機(EVM)等重要技術(shù)規(guī)格化(中文版/英文版)抢埋;

以太坊紫皮書:2016年,V 神發(fā)布了一份紫皮書督暂,為解決區(qū)塊鏈的效率和能耗問題羹令,提供了一種將 POS 和基于分片證明進行合并的解決方案,包括提高可擴展性损痰、確保經(jīng)濟終結(jié)性和提高計算機抗審查等(英文版/中文版)。

關(guān)于以太坊酒来,國內(nèi)和國外都有一些以太坊文庫可以參考卢未,Odaily星球日報推薦:《以太坊官方中文文檔》、以太坊愛好者知識庫堰汉、ethdocs英文版辽社;如果不愿意看文字版的,視頻也是個不錯的選擇翘鸭,推薦《以太坊入門》滴铅。

二、以太坊代幣

2014 年 1 月就乓,Vitalik 在美國佛羅里達州邁阿密舉行的北美比特幣會議上正式宣布了以太坊汉匙。

同年 6 月,以太坊基金(StiftungEthereum)在瑞士楚格成立生蚁,并在隨后的 42 天內(nèi)對第一批公開預(yù)售的以太幣進行分配噩翠,凈賺 31591 比特幣,當(dāng)時價值 1840萬美元邦投,售出大約6010萬個以太幣伤锚。銷售所得首先用于償還日益增加的法律債務(wù),回報開發(fā)者們數(shù)月以來的努力志衣,以及資助以太坊的持續(xù)開發(fā)屯援。

代幣是什么?

什么是以太坊代幣念脯?簡單來講狞洋,以太坊代幣是內(nèi)置在以太坊區(qū)塊鏈上的數(shù)字資產(chǎn)。如果將以太坊區(qū)塊鏈看作一個程序绿店,代幣在某種程度上就是程序中的流通貨幣/積分徘铝,不同的是,傳統(tǒng)的積分只能由程序的設(shè)置者發(fā)行,而以太坊上的代幣任何人都可以發(fā)行惕它。

以太坊上的代幣分為兩種:一種是以太坊區(qū)塊鏈原生代幣以太幣(ETH)怕午;另一種是按照以太坊提供的工具和標(biāo)準(zhǔn)開發(fā)所發(fā)行的代幣(比如BNB)。兩者的區(qū)別最直觀在于流通場景淹魄,ETH 是以太坊網(wǎng)絡(luò)的通貨郁惜,鏈上的每次操作/交易都需要付燃料費(有點像手續(xù)費);BNB 等代幣無法支付燃料甲锡,只有 ETH 可以兆蕉。在幣安、火幣和 OKex 等鏈下交易所缤沦、鏈上去中心化交易所或線下 P2P虎韵,BNB 等代幣也可以按一定比率換成 ETH。

代幣可以固定總發(fā)行量以及流通量缸废,也可以不固定包蓝,比如 ETH 至今仍未停止增發(fā),盡管去年 4 月 Vitalik 曾提議將 ETH 供應(yīng)量上限定為 1.2 億企量。

代幣可以用來做什么呢测萎?每個代幣的屬性和功能都要遵守其預(yù)期用途的約束,比如支付訪問網(wǎng)絡(luò)届巩、驅(qū)動智能合約硅瞧、激勵用戶對某個協(xié)議的使用或者充當(dāng)生態(tài)運行燃料(即 Gas,下面會解釋)恕汇。當(dāng)然也有一些代幣沒有任何實際用途腕唧,在其生態(tài)中也并非完全必須的,發(fā)行代幣也只是項目圈錢的手段瘾英。

代幣通常通過“原始貨幣眾籌”(Initial Coin Offering四苇,ICO)的銷售方式或者挖礦(后文會解釋)的方式進入公眾視野。代幣創(chuàng)建者會通過提供內(nèi)置代幣方咆,來交換以太幣月腋、比特幣或其他數(shù)字資產(chǎn)。2017 年的 ICO熱潮就是這樣被炒起來的瓣赂,魚龍混雜榆骚,各種跑路事件層出不窮。

推薦閱讀《代幣為什么存在煌集,如何使用》妓肢、《以太坊代幣入門指南》以及以太坊創(chuàng)始人V 神的文章《關(guān)于代幣發(fā)售模型》。

代幣標(biāo)準(zhǔn)

目前苫纤,以太坊上代幣超過 1000 種碉钠,不同的代幣發(fā)行標(biāo)準(zhǔn)也各不相同纲缓。最常見的就是 ERC-20 代幣,它也是各個代幣的標(biāo)準(zhǔn)接口喊废。不同的標(biāo)準(zhǔn)有不同特點祝高,比如 ERC20 代幣可以繼續(xù)分解,更類似貨幣污筷;但是 ERC-721 即非同質(zhì)代幣(NFTs)卻是不可以工闺。目前 ERC—20 是最多項目用于發(fā)幣的標(biāo)準(zhǔn)悠鞍。

然而蟆湖,ERC-20 代幣標(biāo)準(zhǔn)很可能會造成終端用戶的資金丟失夺溢,主要的問題在于無法處理 ERC-20 代幣轉(zhuǎn)賬函數(shù)執(zhí)行的 ERC-20 收入交易吃警,ERC-233 應(yīng)運而生。ERC-233 定義了一個標(biāo)準(zhǔn)函數(shù)古胆,能夠防止意外發(fā)送代幣到(不支持該標(biāo)準(zhǔn)的)合約中甩骏,同時也讓代幣的轉(zhuǎn)賬就像以太坊轉(zhuǎn)賬一樣揖庄。

除此之外诈皿,還有 ERC-777(基于操作者的代幣標(biāo)準(zhǔn))林束、ERC-809 (非同質(zhì)代幣的租賃標(biāo)準(zhǔn))等 23 種不同的代幣發(fā)行標(biāo)準(zhǔn)。想要了解更多纫塌,可以閱讀《以太坊代幣標(biāo)準(zhǔn)的詳細列表》。

查詢工具推薦

關(guān)于 ERC—20 代幣讲弄,有一個專門的網(wǎng)站可以查詢措左,這便是ethplorer——它可以查詢以太坊上代幣及代幣排名比較。你知道以太坊生態(tài)中除了 ETH避除,那個代幣的市值最高嗎怎披?這個網(wǎng)站可以給你答案。除此之外瓶摆,它還有其他功能凉逛,包括錢包、ICO 查詢(收費)群井。

對于二級市場的參與者状飞,尤其是參與過多次私募的投資者而言,最害怕的就是項目方套現(xiàn)跑路书斜。dappcapitulation瀏覽器不僅可以看到以太坊創(chuàng)世“巨鯨”的賬戶余額诬辈,還能看到以太坊上各個項目方的賬戶余額,防止項目方套現(xiàn)跑路荐吉。

最后推薦一個可以查看以太坊鏈上的大額轉(zhuǎn)賬的瀏覽器——Tokenview焙糟,除了以太坊還有其他幾十種代幣都可以,數(shù)據(jù)可以追蹤到幾個月前样屠。

三穿撮、節(jié)點缺脉、網(wǎng)絡(luò)、賬戶與錢包

節(jié)點

節(jié)點可以簡單理解為運行著以太坊客戶端的計算機/服務(wù)器悦穿,所有以太坊節(jié)點通過網(wǎng)絡(luò)連接組成主網(wǎng)攻礼。根據(jù)運行的客戶端類型不同,可以分為全節(jié)點和輕節(jié)點咧党,輕節(jié)點需要通過連接主節(jié)點獲取最新數(shù)據(jù)和發(fā)起交易秘蛔。

關(guān)于全節(jié)點、輕節(jié)點以及歸檔節(jié)點的區(qū)別傍衡,推薦閱讀Odaily星球日報編譯的《以太坊節(jié)點運行成本》深员;想要查看各個節(jié)點,推薦使用節(jié)點瀏覽器ethernodes蛙埂。

賬戶與錢包

以太坊帳戶可以用來存儲所有的以太坊代幣(不僅僅是 ETH )倦畅,創(chuàng)建時不需要花費gas(EOS的賬戶創(chuàng)建要花費少量 gas )。一個帳戶就是一個私鑰和公鑰地址對绣的。公鑰可以理解為賬戶地址叠赐,私鑰可以理解成賬戶的密碼、鑰匙屡江。

區(qū)塊鏈地址是根據(jù)非對稱加密算法芭概,生成私鑰和公鑰,從公鑰根據(jù)一系列的計算推導(dǎo)出地址惩嘉。任何人均可以生成大量的私鑰罢洲、公鑰、地址文黎,可是用人力自己計算非常不現(xiàn)實惹苗。區(qū)塊鏈錢包正是幫助我們生成私鑰、公鑰耸峭、生成符合某個公鏈規(guī)范的工具桩蓉。具體計算方式請參照《什么是區(qū)塊鏈錢包》。

區(qū)塊鏈錢包可以分為熱錢包劳闹、冷錢包院究、托管錢包等不同種類,不同的錢包性質(zhì)本涕、安全性與易用性不同儡首,其中熱錢包易用性較高,但因為聯(lián)網(wǎng)而容易被盜私鑰偏友;冷錢包本質(zhì)是私鑰存儲工具蔬胯、安全性較高;托管錢包則私鑰由運營方托管位他。具體差異氛濒,推薦閱讀《區(qū)塊鏈數(shù)字貨幣錢包分類》产场。

以太坊錢包客戶端也有很多種,推薦閱讀《 6 種以太坊( ETH )錢包的基本介紹》:

Ethereum 官方錢包:瀏覽器 Mist舞竿。Mist是一個全節(jié)點錢包(全節(jié)點錢包通俗的來說就是同步了全部的以太坊區(qū)塊信息的錢包)京景。也就是說打開錢包后,電腦會自動同步全部的以太坊區(qū)塊信息骗奖。優(yōu)勢是安全度高确徙,不需要經(jīng)過第三方發(fā)起交易,節(jié)點未同步完成之前無法查看地址余額执桌;劣勢是無法調(diào)整 Gas價格鄙皇,對網(wǎng)絡(luò)要求高,需要連接全節(jié)點仰挣,才能發(fā)起交易伴逸。

Parity 錢包:原以太坊基金會部分成員開發(fā)的錢包。功能強大膘壶,也是一個全節(jié)點錢包错蝴。優(yōu)勢是安全度高,不需要經(jīng)過第三方發(fā)起交易颓芭;劣勢是對網(wǎng)絡(luò)要求高顷锰,需要連接節(jié)點才能發(fā)起交易。

imToken:移動端錢包亡问,操作簡便官紫,在 imToken 上生成的錢包私鑰保存在手機本地,平臺方并無備份玛界。

請注意:這里我們需要辨析一點万矾,節(jié)點悼吱、錢包慎框、瀏覽器三者并未完全沖突的,成為節(jié)點可以說是做區(qū)塊瀏覽器基礎(chǔ)后添。就拿 Mist 來說笨枯,它是一個瀏覽器,因為它要查詢數(shù)據(jù)遇西,因此是構(gòu)建在一個全節(jié)點上的馅精;但與此同時,它也有管理功能粱檀,可以管理私鑰和公鑰洲敢,因此也是一個錢包。當(dāng)然茄蚯,并非所有的錢包都要求是全節(jié)點压彭。

主網(wǎng)與測試網(wǎng)

以太坊一直以來有兩種網(wǎng)絡(luò)——主網(wǎng)以及測試網(wǎng)睦优。主網(wǎng),通常是所有客戶端的默認網(wǎng)絡(luò)壮不;所謂的測試網(wǎng)是用來模擬主網(wǎng)的行為汗盘,功效與主網(wǎng)相同,因此開發(fā)者可以在測試網(wǎng)上開發(fā)和測試自己的智能合約询一、發(fā)幣等等隐孽,作為上鏈前的環(huán)境評估。反之健蕊,當(dāng)主網(wǎng)對以太坊協(xié)議進行任何重大改變時菱阵,其測試主要在這些測試網(wǎng)絡(luò)上完成。

最常用的 3 種測試網(wǎng)分別是 Ropsten绊诲、Kovan送粱、Rinkeby。

Ropsten:只支持 geth 客戶端掂之,一個 POW 的區(qū)塊鏈抗俄,非常類似于以太坊主網(wǎng),但由于低計算量世舰,容易遭到 DDOS 攻擊动雹。過去受到垃圾攻擊,問題較多跟压。

Kovan:只支持 Parity 客戶端胰蝠;一個POA的區(qū)塊鏈,不能挖礦震蒋。

Rinkeby:支持 geth 和 Parity 客戶端茸塞;一個 POA 的區(qū)塊鏈,不能挖礦查剖。盡管計算量低钾虐,但是對惡意行為者更有彈性。

對于開發(fā)中的測試環(huán)境笋庄,建議使用 Rinkeby 或 KoVan 測試鏈效扫。這是因為他們使用的工作量證明 POA 共識機制,確保交易和塊能夠一致并及時的創(chuàng)建直砂。

關(guān)于主網(wǎng)與測試網(wǎng)的更多內(nèi)容菌仁,推薦閱讀《以太坊測試網(wǎng)絡(luò) testNet 匯總》。

如果想要搭建自己的測試網(wǎng)絡(luò)静暂,推薦使用kubernetes或者docker-compose济丘,具體搭建過程可以參考《接入以太坊(Ethereum)測試網(wǎng)絡(luò)》。

四洽蛀、以太坊挖礦

挖礦

上文已經(jīng)提到摹迷,代幣獲得一個重要途徑就是挖礦弯院。”挖礦”實際上是一個增加貨幣供應(yīng)量的過程泪掀。關(guān)于什么是挖礦听绳,可以閱讀 Odaily星球日報的專欄《數(shù)字貨幣中的挖礦是什么?》异赫。

挖礦本質(zhì)是在爭奪記賬權(quán)椅挣,獲得某輪記賬權(quán)礦工會獲得:區(qū)塊獎勵,包含3個以太幣(君士坦丁堡硬分叉后將降為兩個)塔拳;區(qū)塊鏈中交易發(fā)起人所支付的 gas 費 鼠证;作為被引用叔塊的區(qū)塊,可以獲得挖礦報酬的 1/32靠抑。

由于以太坊采用 PoW (工作量證明)共識機制量九,計算(其實就是亂猜)出特定隨機數(shù)的礦工可獲得本輪記賬權(quán),理論上算力越大獲得記賬權(quán)的可能性越高颂碧,因為每秒可以計算(猜)的次數(shù)更多荠列。難度動態(tài)調(diào)整的方式是每 15 秒整個網(wǎng)絡(luò)會產(chǎn)生一個區(qū)塊。

以太坊在很多方面與比特幣類似载城,但也有些不同——以太坊區(qū)塊不僅包含交易列表也包含最近狀態(tài)肌似,除此之外,區(qū)塊數(shù)和難度也儲存在區(qū)塊中诉瓦。

以太坊使用的PoW算法叫 Ethash(Dagger-Hashimoto算法的改良版本)川队,Ethash 的工作量證明是內(nèi)存難解的,這使它能抵抗 ASIC睬澡。

Gas

在以太坊上執(zhí)行的每個計算步驟都需要花錢固额,這里的錢就是 gas。Gas 的設(shè)計目的一是為了避免繁瑣的操作占用較多的有限資源煞聪,堵塞網(wǎng)絡(luò)斗躏;二是為了避免整個網(wǎng)絡(luò)遭受惡意攻擊;三是為了讓記賬礦工獲得一定的收益米绕。

Gas 的價格由市場決定瑟捣,類似于比特幣的交易費機制馋艺。如果你的 gas 價格高栅干,節(jié)點則將優(yōu)先打包你的交易。

在這里捐祠,gas 費用其實是由兩部分相乘得來:Gas price* Gas碱鳞。這里的 Gas price 可選范圍為 1 到 60 GWei,數(shù)額越大踱蛀,交易處理速度越快窿给;Gas 的可選范圍是 800 萬以上贵白,如果數(shù)額較小,就會造成 gas 費用太小崩泡,因而不會被礦工打包禁荒。

(數(shù)據(jù)來自etherchain.org)

總體而言,以太坊上“計算和存儲”比在傳統(tǒng)環(huán)境中做的更為昂貴角撞;在以太坊網(wǎng)絡(luò)上“讀取狀態(tài)”是免費的呛伴,只有“寫入狀態(tài)”是收費的。關(guān)于 Gas谒所,要想了解更多热康,推薦閱讀《計算以太坊合約成本》。

叔塊

在比特幣協(xié)議中劣领,如果一個塊不是最長鏈的一部分姐军,那么它被稱為是“孤塊”。它也是合法的尖淘,但是發(fā)現(xiàn)得稍晚奕锌,或者是網(wǎng)絡(luò)傳輸稍慢,而沒有能成為最長的鏈的一部分村生。在比特幣中歇攻,孤塊沒有意義,隨后將被拋棄梆造,發(fā)現(xiàn)這個孤塊的礦工也拿不到采礦相關(guān)的獎勵缴守。

但 Ethereum 的 GHOST協(xié)議,不認為孤塊沒有價值镇辉,而是會給與發(fā)現(xiàn)孤塊的礦工以回報屡穗。在以太坊中,孤塊被稱為“叔塊”(uncle block)忽肛,它們可以為主鏈的安全作出貢獻村砂。

通過鼓勵引用叔塊,使引用主鏈獲得更多的安全保證(因為孤塊本身也是合法的)屹逛;給與叔塊報酬础废,可以一定程度上緩解采礦中心化(礦池集中化)的問題。

關(guān)于叔塊的更多內(nèi)容罕模,可以閱讀《以太坊中的叔塊(uncle block)》以及《以太坊叔塊相關(guān)技術(shù)解析》评腺。

礦機與礦池

在以太坊早期,可以用電腦的中央處理器(CPU)挖以太幣淑掌,但自從顯卡(GPU)礦工的效率高出兩個數(shù)量級蒿讥,CPU 就不再盈利了。

后來出現(xiàn)了專門只用于數(shù)字貨幣挖礦的計算機,被稱為“礦機“芋绸。

以太坊目前挖礦使用顯卡挖礦媒殉,可選顯卡是 AMD 顯卡(簡稱“ A 卡”)或者 NVIDIA 顯卡(簡稱“ N 卡”)—— N 卡常見選項是 GTX 1060、GTX 960摔敛、GTX 950廷蓉、GTX 750 Ti 等型號。

想要自己嘗試挖礦的讀者马昙,推薦閱讀《以太坊新手挖礦指南》苦酱。

顯卡挖礦采用的 Ethash 算法曾被廣泛認為是“抗 ASIC ”的,然而去年 4 月 4 日给猾,比特大陸在 Twitter 上宣布正式發(fā)布適用于以太坊挖礦的ASIC礦機Antminer E3疫萤,旨在打破以太坊本身設(shè)計中“抗ASIC ”的挖礦算法( EtHash 算法 )。

不過敢伸,以太坊社區(qū)開發(fā)者們也并沒有善罷甘休扯饶,他們不斷提出新的方案,想以此抵抗來自比特大陸的侵染池颈。據(jù)Cointelegraph1 月 5 日報道尾序,以太坊核心開發(fā)人員已經(jīng)就實現(xiàn)一種新的工作量證明(Prog-PoW)算法達成初步共識,該算法不僅可以增加 ASIC 礦機的挖礦“難度”躯砰,而且還可以穩(wěn)定哈希速率每币,提高基于 GPU(而不是基于 ASIC )的網(wǎng)絡(luò)挖礦效率。

不過目前琢歇,社區(qū)關(guān)于是否采用 Prog-PoW 以及何時采用尚未達成一致意見兰怠,在今年 2 月 1 日的公開電話會議上,以太坊開發(fā)人員決定推遲提交 ProgPow 升級代碼李茫,轉(zhuǎn)而繼續(xù)進行審計揭保。

如果你想關(guān)注最新消息,可以加入以太坊群組 ProgPoW參與討論魄宏。

挖礦的另一個維度則是礦池壟斷算力秸侣。根據(jù)etherchain.org數(shù)據(jù),以太坊礦池算力占比目前排名是:Ethermine(30.37%)宠互、SparkPool(16.24%)味榛、NanoPool(15.51%)、F2Pool(12.37%)予跌,并且在過去 30 天乃至往前追溯半年搏色,這個排名一直如此。

此對于散戶而言匕得,由于算力并不占優(yōu)继榆,出塊的幸運值不高,很難挖到區(qū)塊汁掠,因此不得不加入礦池略吨,手續(xù)費大概在 1% 到 5%。

查詢工具

查詢挖礦收益可以參考網(wǎng)上的魚池?zé)衢T礦機頁面或挖幣網(wǎng)數(shù)據(jù)考阱;

查詢關(guān)于以太坊的算力翠忠、挖礦難度、出塊數(shù)等各種數(shù)據(jù)乞榨,可使用各家以太坊區(qū)塊鏈瀏覽器秽之,除了基礎(chǔ)數(shù)據(jù),關(guān)于歷史數(shù)據(jù)會用圖表展現(xiàn)吃既,適合各類統(tǒng)計考榨,比如etherscan和etherchain;

此外鹦倚,BTC.com 旗下的瀏覽器也可以查詢以太坊相關(guān)情況河质。

五、智能合約與 DApp 開發(fā)

智能合約

以太坊上的程序稱之為智能合約震叙,它是代碼和數(shù)據(jù)的集合掀鹅。智能合約可以理解為在區(qū)塊鏈上可以自動執(zhí)行的、以代碼形式編寫的合同媒楼。很多博彩類區(qū)塊鏈游戲就宣稱自己使用了智能合約乐尊,可以自動賠付,不會有莊家操盤划址。推薦閱讀 Odaily星球日報專欄《智能合約是如何工作的扔嵌?》以及《什么情況下智能合約應(yīng)用案例難以實現(xiàn)?》夺颤。

(1)編程

智能合約官方推薦的編程語言是 Solidity对人,文件擴展名以 .sol 結(jié)尾。Solidity 語言和 JavaScript 很相似拂共,可以用它來開發(fā)合約并編譯成以太坊虛擬機字節(jié)代碼牺弄。

關(guān)于Solidity 語言開發(fā),以太坊官方準(zhǔn)備了下面的工具:

Solidity Documentation

Solidity在線實時編譯器

標(biāo)準(zhǔn)合約 API

Useful Dapp Patterns

(2)運行

EVM(Ethereum Virtual Machine)——以太坊虛擬機是以太坊上智能合約的運行環(huán)境宜狐。EVM 運行在以太坊節(jié)點上势告,把合約部署到以太坊網(wǎng)絡(luò)上,合約就可以在以太坊網(wǎng)絡(luò)中運行了抚恒。

虛擬機咱台、智能合約和智能合約語言之間的關(guān)系,感興趣的讀者可以閱讀《一文看懂區(qū)塊鏈虛擬機》俭驮。

以太坊虛擬機上運行的是合約的字節(jié)碼形式回溺,需要我們在部署之前先對合約進行編譯春贸,可以選擇Browser-Solidity Web IDE或solc 編譯器。

在以太坊上開發(fā)應(yīng)用時遗遵,常常要使用到以太坊客戶端(錢包)——使用錢包是用來管理代幣的萍恕,這里有一個完整的以太坊客戶端列表。

Geth是開發(fā)以太坊時最長使用的客戶端车要,基于 Go 語言開發(fā)允粤;另一個最常使用的是Parity,基于 Rust 開發(fā)翼岁。

(3)部署

智能合約的部署是指把合約字節(jié)碼發(fā)布到區(qū)塊鏈上类垫,并使用一個特定的地址來標(biāo)示這個合約,這個地址稱為合約賬戶琅坡。

合約部署之后悉患,當(dāng)需要調(diào)用這個智能合約時,只需要向這個合約賬戶發(fā)送消息(即交易)即可榆俺;通過消息觸發(fā)后购撼,智能合約的代碼就會在 EVM 中執(zhí)行。

具體操作細節(jié)谴仙,推薦閱讀《以太坊是什么 - 以太坊開發(fā)入門指南》迂求,另外推薦以太坊開發(fā)者網(wǎng)站ethdev以及remix,他們提供基本的編譯晃跺、測試網(wǎng)絡(luò)揩局、執(zhí)行合約。

如果你想?yún)⒖家蕴簧弦呀?jīng)開發(fā)的項目掀虎,可以登陸Ethereum·Github凌盯。

DApp

去中心化應(yīng)用程序(DApp)與傳統(tǒng) APP 一樣,都是提供一種服務(wù)烹玉,實現(xiàn)用戶和提供商之間的直接交互驰怎。但區(qū)塊鏈 DApp 擁有一些智能合約組合,這些合約組合可以實現(xiàn) DApp 特定的功能二打。

去年下半年县忌,區(qū)塊鏈 DApp 被抬上風(fēng)口,不少人認為它可以改變傳統(tǒng)的中心化 App 所固有的問題(不透明继效、缺乏隱私等)症杏,然而目前 DApp 應(yīng)用最廣泛還是博彩類,游戲類次之瑞信。根據(jù)Dapprader數(shù)據(jù)厉颤,以太坊 DApp 應(yīng)用最高日活不超過 1500 人。推薦閱讀《什么是DApp凡简?》

(1)查詢

您可以使用下列這些 DApp查詢工具:

dappradar?與?dapp.review:除了查看以太坊逼友,還可以查看 EOS 及 Tron 鏈上 DApp精肃;

Mist:以太坊官方的 DApp 瀏覽器。

Status:手機上可以使用的 DApp 瀏覽器帜乞。

MetaMask:Google瀏覽器擴展司抱,把 Chrome 變成了一個 DApp 瀏覽器⊥诤可以管理你的錢包状植,以及連接到不同的以太坊網(wǎng)絡(luò)浊竟,包括本地的開發(fā)網(wǎng)絡(luò)怨喘。

Parity:以太坊客戶端,也是一個 DApp 瀏覽器振定。

(2)開發(fā)

如果想要開發(fā)一個DApp必怜,怎么操作?首先后频,DApp 開發(fā)需要了解 Web3 Javascript API梳庆、 Solidity 等編程語言,如下所示:

Web3 JavaScript API- 當(dāng)您想要與以太坊節(jié)點交互時卑惜,這是主要的 JavaScript SDK膏执;

Solidity Docs- Solidity 是以太坊開發(fā)使用的智能合約語言,它為 EVM(以太坊虛擬機)提供編譯操作碼露久;

Solium- 嚴格遵守官方Solidity Style Guide制定規(guī)則的開發(fā)器更米;

測試網(wǎng)絡(luò)- 測試網(wǎng)絡(luò)可幫助開發(fā)人員開發(fā)和測試以太坊代碼以及進行網(wǎng)絡(luò)交互;

DApp開發(fā)資源-有助于開發(fā)毫痕、調(diào)試和部署以太坊應(yīng)用程序征峦,具體包括:智能合約ELI5、101 noob 編寫智能合約的介紹消请、標(biāo)準(zhǔn)化合約 API 列表栏笆。

關(guān)于 DApp 開發(fā),也有一些教程臊泰,可供參考:

關(guān)于 ethereum.org DApp 教程

DApps 初學(xué)者教程系列

Solidity 教程系列

高級 Solidity 教程

A contract packager for Ethereum and Javascript (formerly ether-pudding)

六蛉加、以太坊的發(fā)展歷史

以太坊路線圖

根據(jù)以太坊創(chuàng)始者 Vitalik 及 Gavin Wood 的規(guī)劃,以太坊的發(fā)展被分為4 個階段:Frontier (前沿)缸逃、Homestead (家園)七婴、Metropolis (大都會)和 Serenity (寧靜)。

以太坊路線圖如下:

Frontier (2015.7-2016.3):以太坊發(fā)布測試版(非正式版)察滑,供開發(fā)者學(xué)習(xí)打厘、試驗并開始建立以太坊去中心化的應(yīng)用和工具;

Homestead (2016.3-2017.10):以太坊發(fā)布正式版本贺辰,普通用戶也可挖礦户盯,中間經(jīng)歷了 4 次硬分叉嵌施,分叉出ETC

Metropolis (2017.10-現(xiàn)在):由 PoW 向 PoS 過渡莽鸭,中間經(jīng)歷兩次硬分叉——拜占庭與君士坦丁堡硬分叉吗伤;

Serenity (待定):成為真正主流區(qū)塊鏈,升級為 ETH 2.0硫眨。

目前足淆,以太坊尚處于 Metropolis (大都會)階段,并且君士坦丁堡硬分叉還被推遲到 2019 年 2 月 27 日礁阁。關(guān)于 Serenity階段更多細節(jié)巧号,推薦閱讀 Vitalik 的《以太坊 Serenity 設(shè)計依據(jù)綜述》。

關(guān)于以太坊發(fā)展歷史的更多細節(jié)姥闭,推薦閱讀《以太坊發(fā)展歷史回顧》丹鸿、《一篇文章帶你了解以太坊的前世今生》以及《以太坊五年》。

擴容問題

以太坊至今仍處于成長初期棚品,面臨諸多問題——包括共識機制靠欢、吞吐量等問題,推薦閱讀《以太坊的發(fā)展去向深度分析》铜跑。

對此门怪,包括 Vitalik 在內(nèi)的眾多開發(fā)人員清楚認識到這一點,他們提出了一些基于“鏈下(off-chain)” 和 “第二層(layer 2)” 的擴容解決方案——致力于構(gòu)建基礎(chǔ)架構(gòu)和擴展以太坊性能——通常被稱為擴展方案(scaling solutions)锅纺,包括狀態(tài)通道(state channels)掷空、分片(sharding) 、子鏈/側(cè)鏈方案 Plasma和Truebit伞广。Vitalik 更是宣稱 Plasma 和 sharding 可能會產(chǎn)生一種協(xié)同效應(yīng)拣帽,使得以太坊處理速度達到 100 萬 TPS。

狀態(tài)通道(state channels):設(shè)計者希望通過“把很多處理流程轉(zhuǎn)移到鏈下”嚼锄,來提高區(qū)塊鏈的使用效率减拭,降低手續(xù)費,增加隱私的同時又能保留區(qū)塊鏈可信賴的特性区丑。狀態(tài)通道是支付通道泛化出來的形式拧粪,但不僅限于支付,還可用于區(qū)塊鏈上任意的“狀態(tài)更新”沧侥,比如智能合約中的更改可霎。

分片(sharding):將以太坊網(wǎng)絡(luò)的整個狀態(tài)分割成一系列被稱為分片的分區(qū),其中包含自己獨立的狀態(tài)片及交易歷史記錄宴杀。在這種系統(tǒng)中癣朗,特定的節(jié)點只為特定的分片處理交易,從而允許在所有分片中處理的交易吞吐量比在單個分片中處理所有交易(像現(xiàn)在的主鏈一樣)要高得多旺罢。

Plasma:和狀態(tài)通道一樣旷余,Plasma 也是一種用于管理鏈下交易的技術(shù)绢记,同時依靠底層的以太坊區(qū)塊鏈來實現(xiàn)其安全性。但是 Plasma 采用了一種新思路正卧,它是通過創(chuàng)建依附于“主”以太坊區(qū)塊鏈的“子”區(qū)塊鏈蠢熄。這些子鏈又可以循序產(chǎn)生它們自己的子鏈,并能依次循環(huán)往復(fù)炉旷。

Truebit:Truebit是一種幫助以太坊在鏈下進行繁重或者復(fù)雜運算的技術(shù)签孔。它可以讓基于以太坊的應(yīng)用程序處理更復(fù)雜的事務(wù)并仍能被主鏈驗證,對于提高以太坊區(qū)塊鏈的總交易通量更有效窘行,這使得它與狀態(tài)通道和 Plasma 不一樣饥追。

更多詳細內(nèi)容,推薦閱讀《以太坊第 2 層擴容方案》抽高、《什么是狀態(tài)通道》判耕、《 V 神:以太坊上的分片》透绩、《如何擴展以太坊:分片原理解釋》翘骂、《以太坊分片:overview and finality》、《以太坊 Plasma 解說》以及《Truebit × 管理未來》帚豪。

ETH2.0

以上方案計劃在 ETH 2.0 實現(xiàn)碳竟,目前以太坊研究團隊提出了關(guān)于以太坊 2.0 的一些計劃和設(shè)想。如果您希望詳細了解狸臣,可以閱讀Odaliy星球日報編譯的《以太坊 2.0 是什么莹桅?分成幾個階段?》以及Vitalik 的《 ETH 2.0 》烛亦。根據(jù)文章诈泼,各階段大致為:

階段 0 引入信標(biāo)鏈(?The Beacon Chain):這條鏈承擔(dān)的其中一個職能是讓驗證者可以參與質(zhì)押系統(tǒng)、替代礦工的角色而成為鏈的構(gòu)建者煤禽。另一個職能是存儲分片狀態(tài)的索引铐达。對信標(biāo)鏈的詳細介紹可閱讀《以太坊 2.0 協(xié)議核心 Beacon 鏈詳解》;

階段 0+入股:信標(biāo)鏈以及每一條分片鏈將使用 Casper FFG 來完成出塊檬果。FFG 是一種權(quán)益證明算法(Proof of Stake)瓮孙,用于對鏈上不良行為實施罰沒(即削減權(quán)益);

階段 1分片:旨在就分片鏈的內(nèi)容達成共識选脊,并非對其意義達成共識。換言之,這是一次對分片結(jié)構(gòu)的“試運行”履肃,而不是嘗試使用分片進行擴容(Scale)星瘾。信標(biāo)鏈將分片鏈視為沒有結(jié)構(gòu)或意義簡單的位(Bit)集合。分片鏈尚未擁有賬戶钝的、資產(chǎn)或智能合約翁垂。

階段 2智能合約:熟悉的以太坊系統(tǒng)開始回歸忿墅。此時,新的以太幣 BETH 可實現(xiàn)轉(zhuǎn)讓沮峡,并且將重新引入智能合約疚脐。每個分片將基于 eWASM(我們稱之為“EVM2”)管理一個虛擬機。

階段 3鏈下狀態(tài)存儲:盡可能減少鏈上狀態(tài)邢疙,鏈上存儲時并不用存儲整個狀態(tài)棍弄,用戶將負責(zé)在鏈下存儲完整的狀態(tài)。EVM2 將支持我們熟悉的賬戶疟游、合約呼畸、狀態(tài)以及其他抽象內(nèi)容。

階段 4 分片智能合約:希望實現(xiàn)跨片通訊颁虐,但是存在很多尚待解決的困難蛮原,具體可看文章。

值得注意的是另绩,2019 年 1 月 31 日儒陨,以太坊發(fā)布了向以太坊 2.0 網(wǎng)絡(luò)演進的第 0 階段第一個預(yù)發(fā)布版。

另外笋籽,核心開發(fā)者Ben Edgington每周會發(fā)布關(guān)于 Eth 2.0 信標(biāo)鏈(Beacon)第 0 階段規(guī)范的更新蹦漠,值得關(guān)注一下。

以上關(guān)于以太坊研究研究進展的最新情況车海,均可以在下文的社群中獲得最新消息笛园,可以密切關(guān)注。

七侍芝、以太坊社區(qū)治理:

基金會研铆、社區(qū)、貢獻者介紹

以太坊基金會

2014 年 6 月州叠,以太坊基金會瑞士注冊成立棵红,是一家非營利性機構(gòu), 旨在管理以太幣銷售中籌措的基金留量,以更好地為以太坊和去中心化技術(shù)生態(tài)系統(tǒng)服務(wù)窄赋。它主要但并非唯一的重心是促進以太坊協(xié)議和相關(guān)技術(shù)的開發(fā), 以及扶持使用以太坊技術(shù)及協(xié)議的應(yīng)用楼熄。

以太坊基金會的官方溝通通常在以太坊博客上以發(fā)帖形式呈現(xiàn)——有些帖子是技術(shù)性的忆绰、有些是組織性的、有些是個人的可岂,所有博客帖子都在Twitter和 Reddit上公開错敢。

另外,基金會還會在Youtube?頻道上主持一些開發(fā)者會議,比如 1 月 18 日晚上關(guān)于延遲君士坦丁堡分叉的核心開發(fā)者電話會議稚茅。

相關(guān)入口總結(jié):官網(wǎng)網(wǎng)站(主要入口)纸淮;社區(qū);博客亚享;推特咽块;Youtube;Facebook(不怎么更新)欺税;電子郵件(很慢侈沪,但很有用,緊急情況可以發(fā)郵件)晚凿。

社區(qū)

以太坊reddit論壇是最全面的以太坊論壇亭罪,很多討論都是在這里完成的,其中的核心開發(fā)者也很活躍歼秽。但這里很難獲得實際幫助和答案应役,建議大家選擇Gitter Rooms和Stack Exchange。

Stack Exchange上采用問答形式燥筷,一人發(fā)帖箩祥,其他人踴躍留言,用戶活躍度較高荆责。

Gitter是 Github 旗下的聊天軟件滥比,使用 Github 帳戶登陸亚脆。它以太坊日常聊天的首選論壇做院,里面有很多的核心開發(fā)者,能夠立刻獲得想要的答案濒持。開發(fā)者們通常在Gitter上聊天協(xié)作键耕,然后在 Github上提交代碼。

另外Gitter不同的房間有不同的主題柑营,最核心的是AllCoreDevs房間屈雄,這里聚集了幾乎全部的以太坊開發(fā)者。

相關(guān)的Gitter房間總結(jié):

go-ethereum—— 關(guān)于 geth(與 go 實現(xiàn)相關(guān)的工具)

cpp-ethereum—— 關(guān)于 eth(與 C++ 實現(xiàn)相關(guān)的工具)

web3.js—— 關(guān)于 web3.js(以太坊 Java 描述語言用戶操作界面庫)

Solidity—— Solidity 合約相關(guān)編程語言

serpent—— 用于合約開發(fā)的 Serpent 語言

mist—— GUI 資料獲取和處理方式瀏覽器官套,官方錢包應(yīng)用

light-client—— 關(guān)于 light 客戶端和 LES 協(xié)議

research—— 以太坊研究

governance—— 關(guān)于開發(fā)者管理

whisper—— 匿名數(shù)據(jù)電報發(fā)表

swarm—— 去中心化的內(nèi)容存儲和分配網(wǎng)絡(luò)

EIPs—— 以太坊改進協(xié)議 ( EIPs ) 討論

ethereumjs-lib—— 以太坊核心功能的Java描述語言庫

devp2p——DΞV’s 點對點網(wǎng)絡(luò)協(xié)議及框架

以太坊改進提案(EIPs)

以太坊改進協(xié)議( EIPS )計劃旨在成為協(xié)調(diào)協(xié)議改進的框架和非正式商業(yè)流程酒奶。人們會首先向以太坊 EIP 資源庫提出想法作為一個問題或 pull 請求。經(jīng)過基本的過濾奶赔,提議會收到一個數(shù)字并以草稿的形式發(fā)布惋嚎。必須經(jīng)過社區(qū)一致同意,以太坊改進協(xié)議才能變成活躍狀態(tài)站刑。從提出改變到最終的同意另伍,取決于以太坊用戶的共識。對于以太坊改進協(xié)議的討論绞旅,可進入 gitter 關(guān)于以太坊改進協(xié)議的頻道摆尝。

EIP 指南和 EIP 示例

EIP 模板

EIP 存儲庫和 README

用于 EIP 討論的 gitter 頻道

Meetups

以太坊的 Meetups 分布在世界各地温艇,他們通常會舉辦線下見面會,討論技術(shù)以及行業(yè)發(fā)展堕汞,抱團取暖勺爱。

Meetup 線下見面會資源表

以太坊論壇上的Meetup頻道

貢獻者

以太坊作為開源項目,得到了眾多開發(fā)者的支持讯检,以太坊社群也給出一份貢獻者名單邻寿,如果你對這些人感興趣,可以去私聊视哑。篇幅有限绣否,以下簡單列出幾個人:

Ricardo de Azevedo Brandao

Santanu Barai

Brooks Boyd

RJ Catalano

Joseph Chow

Keri Clowes

Fran?ois Deppierraz

Bertie Dinneen

Gregg Dourgarian

Raghav Dua

八、其他

以太坊有一些信息網(wǎng)站挡毅,感興趣的可以關(guān)注一下:

以太坊創(chuàng)始人 & 靈魂 vitalik個人網(wǎng)站:http://about.me/vitalik_buterin

以太坊前 CTO Gavin Wood個人網(wǎng)站:http://gavwood.com/

以太坊智能合約之父 Nick Szabo 個人網(wǎng)站:http://szabo.best.vwh.net/index.html

以太坊大事年表:http://ethereumtimeline.org/

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

以太坊世界新聞網(wǎng):https://ethereumworldnews.com/category/news/ethereum-news/

以太坊每周周報:http://www.weekinethereum.com/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒜撮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子跪呈,更是在濱河造成了極大的恐慌段磨,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耗绿,死亡現(xiàn)場離奇詭異苹支,居然都是意外死亡,警方通過查閱死者的電腦和手機误阻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門债蜜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人究反,你說我怎么就攤上這事寻定。” “怎么了精耐?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵狼速,是天一觀的道長。 經(jīng)常有香客問我卦停,道長向胡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任惊完,我火速辦了婚禮僵芹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘专执。我一直安慰自己淮捆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攀痊,像睡著了一般桐腌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上苟径,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天案站,我揣著相機與錄音,去河邊找鬼棘街。 笑死蟆盐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遭殉。 我是一名探鬼主播石挂,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼险污!你這毒婦竟也來了痹愚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蛔糯,失蹤者是張志新(化名)和其女友劉穎拯腮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚁飒,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡动壤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了淮逻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琼懊。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖弦蹂,靈堂內(nèi)的尸體忽然破棺而出肩碟,到底是詐尸還是另有隱情,我是刑警寧澤凸椿,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站翅溺,受9級特大地震影響脑漫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咙崎,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一优幸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褪猛,春花似錦网杆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽队秩。三九已至,卻和暖如春昼浦,著一層夾襖步出監(jiān)牢的瞬間馍资,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工关噪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鸟蟹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓使兔,卻偏偏與公主長得像建钥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子虐沥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容