掌握了區(qū)塊鏈的原理垛孔、發(fā)展趨勢(shì)及現(xiàn)狀,現(xiàn)在到了真槍實(shí)彈演習(xí)的時(shí)刻了随闽。由于區(qū)塊鏈技術(shù)還處在慢慢被人們理解和接受的初級(jí)階段傲诵,學(xué)習(xí)資料的匱乏和不完善雏吭,加上愛好者們翻譯文檔的水平良莠不齊刃唐,給區(qū)塊鏈技術(shù)的初學(xué)者借浊,帶來不小的障礙层玲。
為了入門号醉,我也研究過很多資料,看過很多教程辛块,通俗易懂的不多畔派,部分書籍甚至東拼西湊(比如某開發(fā)指南),嚴(yán)重打擊初學(xué)者的積極性润绵,但無論條件多么困難线椰,都阻止不了一顆熱切的心,隨著開發(fā)者們不斷的分享與交流尘盼,相信總有一些經(jīng)驗(yàn)和知識(shí)與別人有關(guān)憨愉、對(duì)別人有用烦绳,這也是我寫博的原因之一。
言歸正傳配紫,本文將探討以下幾個(gè)問題:
1径密、以太坊與區(qū)塊鏈的關(guān)系?
2躺孝、為什么要學(xué)習(xí)以太坊享扔?
3、什么是智能合同植袍?
4惧眠、在開發(fā)實(shí)戰(zhàn)之前要做哪些準(zhǔn)備?
以太坊(Ethereum)與區(qū)塊鏈的關(guān)系
如果把區(qū)塊鏈比作傳統(tǒng)互聯(lián)網(wǎng)里的TCP/IP協(xié)議奋单,那以太坊就是HTTP;如果把以太坊比作Android猫十,那區(qū)塊鏈就是Android Framework览濒;還沒明白? 如果把區(qū)塊鏈比作手機(jī)拖云,以太坊就是智能手機(jī)贷笛,這些比喻深究起來未必絕對(duì)準(zhǔn)確,但對(duì)初學(xué)者而言宙项,理解概念才是最重要乏苦。
要更加透徹地理解區(qū)塊鏈和以太坊之間的關(guān)系,先回顧一下《小白秒懂區(qū)塊鏈》里的一張圖
區(qū)塊鏈發(fā)展的三個(gè)階段:1.0數(shù)字貨幣(比特幣)——2.0智能合同(以太坊)——3.0高級(jí)智能合同尤筐、智慧資產(chǎn)汇荐。以太坊是目前最穩(wěn)定、最成熟盆繁、并被廣大開發(fā)者所追捧的掀淘,一個(gè)基于區(qū)塊鏈架構(gòu)設(shè)計(jì),可以運(yùn)行智能合同的系統(tǒng)級(jí)應(yīng)用油昂。
為什么是系統(tǒng)級(jí)應(yīng)用革娄?
早期開發(fā)者們開發(fā)區(qū)塊鏈應(yīng)用大多復(fù)制比特幣源碼進(jìn)行修改,擴(kuò)展冕碟,開發(fā)成本高和局限性大拦惋,直到以太坊的橫空出世,將區(qū)塊鏈開發(fā)者們的三輪車換成了小摩托安寺,以太坊不僅提供了靈活厕妖、穩(wěn)定、成熟挑庶、多樣化的開發(fā)語言叹放,和完善的工具包饰恕,還有一整套從開發(fā)到編譯、到部署發(fā)布的完整流程井仰,以至于埋嵌,一夜之間(在很短的時(shí)間內(nèi)),眾多基于太坊的應(yīng)用俱恶,代幣如雨后春筍般涌現(xiàn)雹嗦。用眾星捧月形容以太坊,實(shí)不為過合是,它的出現(xiàn)了罪,也標(biāo)志著區(qū)塊鏈技術(shù)真正進(jìn)入了2.0時(shí)代。
為什么要學(xué)習(xí)以太坊聪全?
在當(dāng)下區(qū)塊鏈2.0時(shí)代泊藕,學(xué)習(xí)區(qū)塊鏈技術(shù)就要學(xué)習(xí)智能合約,而以太坊是智能合約的先祖和標(biāo)桿难礼,毫不客氣地說娃圆,目前學(xué)習(xí)區(qū)塊鏈,就要學(xué)習(xí)以太坊蛾茉。(這當(dāng)然只是為了表達(dá)學(xué)習(xí)以太坊的重要性)
什么是智能合約讼呢?
智能合約,就是把現(xiàn)實(shí)中的合同谦炬,程序化悦屏,數(shù)字化,在陌生的網(wǎng)絡(luò)環(huán)境中键思,在毫無信任基礎(chǔ)的情況下础爬,通過編程,把交易雙方的協(xié)議吼鳞、約束變成可執(zhí)行代碼幕帆,嵌入到數(shù)字貨幣中,從而實(shí)現(xiàn)價(jià)值的轉(zhuǎn)移和流通赖条,這也是區(qū)塊鏈被稱為價(jià)值互聯(lián)網(wǎng)的根本原因失乾。
智能合約,是區(qū)塊鏈技術(shù)去信任纬乍,實(shí)現(xiàn)可編程貨幣的關(guān)鍵技術(shù)碱茁。
在開發(fā)實(shí)戰(zhàn)之前要做哪些準(zhǔn)備?
1仿贬、開發(fā)語言
Solidity 是以太坊默認(rèn)的開發(fā)語言纽竣,因?yàn)楹蚃avascript語言類似。也是目前最受歡迎的和功能豐富的智能合約腳本語言。
Serpent 和Python語言類似蜓氨,在以太坊歷史的早期受歡迎聋袋。
LLL(Lisp Like Language)? 和Lisp類似,也只有在早期使用穴吹。它大概是最難用的幽勒。
2、開發(fā)環(huán)境
【運(yùn)行環(huán)境】: EVM(Ethereum Virtual Machine)以太坊虛擬機(jī)港令,是以太坊中智能合約的運(yùn)行環(huán)境啥容,和JVM類似。
【編譯(智能合約)】:初學(xué)者推薦使用web編譯器Browser-Solidity Web IDE顷霹,當(dāng)然也可以自己安裝solc編譯器咪惠。
【部署(智能合約)】:把編譯好的合約(字節(jié)碼)通過節(jié)點(diǎn)以發(fā)送交易的形式部署到以太坊區(qū)塊鏈上,以太坊官方提供了以太坊錢包(Ethereum Wallet)淋淀,其實(shí)就是一個(gè)客戶端遥昧,它集成了賬戶管理、挖礦朵纷、轉(zhuǎn)賬炭臭、智能合約的部署和執(zhí)行等等功能,幾乎就是一個(gè)強(qiáng)大完善的IDE(開發(fā)者工具)柴罐,當(dāng)然錢包也集成了EVM徽缚,不需要開發(fā)者單獨(dú)安裝憨奸。
【運(yùn)行(智能合約)】:合約部署之后革屠,當(dāng)需要調(diào)用這個(gè)智能合約的方法時(shí)只需要向這個(gè)合約賬戶發(fā)送消息(交易)即可,通過消息觸發(fā)后智能合約的代碼就會(huì)在EVM中執(zhí)行了排宰。
【測(cè)試(智能合約)】:在以太坊的公共網(wǎng)絡(luò)上似芝,進(jìn)行測(cè)試需要賬戶里有以太幣余額,開發(fā)者可以通過以下四種方式來進(jìn)行開發(fā)測(cè)試板甘,在測(cè)試成功之后党瓮,再部署到公共以太坊區(qū)塊鏈上。
選擇以太坊官網(wǎng)測(cè)試網(wǎng)絡(luò)Testnet
之所以選擇測(cè)試網(wǎng)絡(luò)盐类,是為了更容易獲得免費(fèi)的以太幣寞奸,以便測(cè)試,美中不足的是需要發(fā)很長(zhǎng)時(shí)間進(jìn)行節(jié)點(diǎn)初始化在跳。
使用私有鏈
我們可以搭建屬于自己的以太坊枪萄,甚至取名叫太太坊也無所謂,專門用來開發(fā)猫妙、調(diào)試和測(cè)試智能合約瓷翻,
使用開發(fā)者網(wǎng)絡(luò)(模式)
在開發(fā)者網(wǎng)絡(luò)(模式)下,系統(tǒng)會(huì)自動(dòng)分配一個(gè)有大量余額的開發(fā)者賬號(hào)給我們使用。
使用模擬環(huán)境
使用testrpc來創(chuàng)建測(cè)試網(wǎng)絡(luò)齐帚,testrpc是在本地使用內(nèi)存模擬的一個(gè)以太坊環(huán)境妒牙,對(duì)于開發(fā)調(diào)試來說,更方便快捷对妄。testrpc在啟動(dòng)時(shí)可以幫我們創(chuàng)建10個(gè)存有一定余額的測(cè)試賬戶湘今。
3、開發(fā)工具
如果你使用的是Mac饥伊,除了以太坊錢包這一必不可少的開發(fā)工具之外象浑,在我們搭建、配置開發(fā)環(huán)境的過程中琅豆,對(duì)于初學(xué)者而言還有一件利器——Homebrew愉豺,它可以一鍵幫你安裝好所有缺失的軟件包。
注意:以太坊錢包?Ethereum Wallet 在安裝的過程中茫因,可以選擇以太坊官網(wǎng)測(cè)試網(wǎng)絡(luò)Testnet的選項(xiàng)蚪拦。
最后,科普一下Dapp(去中心化的應(yīng)用程序或分布式應(yīng)用程序)
Dapp是什么冻押?
一驰贷、運(yùn)行在分布式網(wǎng)絡(luò)上;
二洛巢、參與者信息被安全存儲(chǔ)括袒,隱私得到很好的保護(hù);
三稿茉、通過網(wǎng)絡(luò)節(jié)點(diǎn)去中心化操作锹锰。符合這3個(gè)條件的應(yīng)用可以認(rèn)為是一個(gè)去中心化應(yīng)用。
Dapp三個(gè)特征:
一漓库、程序開源恃慧,數(shù)據(jù)加密保存在公開且去中心化的區(qū)塊鏈上。
二渺蒿、應(yīng)用必須通過標(biāo)準(zhǔn)算法來生產(chǎn)代幣痢士,代幣根據(jù)應(yīng)用需要使用,提供貢獻(xiàn)的用戶都應(yīng)該獲得代幣獎(jiǎng)勵(lì)茂装。
三怠蹂、根據(jù)市場(chǎng)反饋改進(jìn),必須由多數(shù)用戶一致同意少态。
在太坊社區(qū)里城侧,把基于智能合約的應(yīng)用稱為去中心化的應(yīng)用程序或分布式應(yīng)用程序。
好了况增,知己知彼赞庶,百戰(zhàn)不殆,掌握了這些基礎(chǔ)知識(shí),以太坊實(shí)戰(zhàn)演習(xí)將要開始了歧强。