區(qū)塊鏈開發(fā)環(huán)境搭建_第1頁
區(qū)塊鏈開發(fā)環(huán)境搭建_第2頁
區(qū)塊鏈開發(fā)環(huán)境搭建_第3頁
區(qū)塊鏈開發(fā)環(huán)境搭建_第4頁
區(qū)塊鏈開發(fā)環(huán)境搭建_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

區(qū)塊鏈開發(fā)環(huán)境搭建前言本章主要總結(jié)在基于Ubuntu14.04系統(tǒng)上搭建區(qū)塊鏈開發(fā)平臺的過程。目前搭建區(qū)塊鏈開發(fā)環(huán)境還是比較復(fù)雜,推薦使用MacOSX和Linux操作系統(tǒng),目前不建議使用Windows,可能會碰到各種各樣的問題,最后導(dǎo)致放棄。注意:?安裝軟件的時候,盡量使用ubuntu系統(tǒng)官方的apt源。由于國很多公司,例如阿里,網(wǎng)易,騰訊等都免費提供apt源,在有的時候當然可以加快我們安裝軟件的速度。但是,在安裝本章所介紹的軟件的時候我就遇到了各種錯誤,后來更換了ubuntu的官方apt源后有些問題就沒有了。?在使用npm安裝某些軟件的時候,建議不要使用cnpm國鏡像,否則裝完可能會出現(xiàn)問題。?由于區(qū)塊鏈相關(guān)技術(shù)領(lǐng)域處于新興階段,變化很快,該章環(huán)境搭建僅供參考。、搭建基于以太坊go-ethereum的私有鏈環(huán)境go-ethereum客戶端以太坊有許多不同語言的客戶端實現(xiàn)(即多種與以太坊網(wǎng)絡(luò)交互的方法),包括C++,Go,Python,Java,Haskell等等。為什么需要這么多實現(xiàn)?不同的實現(xiàn)能滿足不同的需求(例如Haskell實現(xiàn)的目標是可以被數(shù)學(xué)驗證),能使以太坊更加安全,能豐富整個生態(tài)系統(tǒng)。我使用的是Go語言實現(xiàn)的客戶端geth,該客戶端也是官方推薦使用的客戶端,穩(wěn)定性較好,并且資料相對較多。安裝命令:打開終端窗口,依次輸入以下命令:sudoapt-getinstallsoftiiare-properties-conuTLunsudoadd—apt—reposituTy-yppa:etheremi/etherei.utlsudo:ddd-apt-re=posituiy-yppa:etheremL/etheretuii-devsudoapt—getupidatesudoapt—getinstai1etlieieiuTL安裝測試:安裝完成后在終端輸入:geth—heIp如果顯示出各種參數(shù)提示信息,則說明安裝成功。創(chuàng)世塊在以上安裝成功之后,直接啟動,即可連接公有鏈?,F(xiàn)在通過配置創(chuàng)世塊來創(chuàng)建私有鏈。同一個網(wǎng)絡(luò)中,創(chuàng)世塊必須是一樣的,否則無法聯(lián)通。創(chuàng)建一個eth的根目錄,在根目錄下新建創(chuàng)世塊json文件piccgenesis.json。容如下:("nonce”:"0x00042”,"mixhash”:"0x00”,"difficulty":"0x400”,"alloc":(},"coinbase”:"0x000000”,"timestamp":"0x00”,"parentHash”:"0x00”,"extraData":"PICCGenesisBlock","gasLimit":"0xffffffff"}參數(shù)解釋:

參數(shù)名稱參數(shù)描述mixhash與nonce配合用于挖礦,由上一個區(qū)塊的一部分生成的hash。注意他和nonce的設(shè)置需要滿足以太坊的Yellowpaper,4.3.4.BlockHeaderValidity,(44)章節(jié)所描述的條件。.noncenonce就是一個64位隨機數(shù),用于挖礦,注意他和mixhash的設(shè)置需要滿足以太坊的Yellowpaper,4.3.4.BlockHeaderValidity,(44)章節(jié)所描述的條件。difficulty設(shè)置當前區(qū)塊的難度,如果難度過大,cpu挖礦就很難,這里設(shè)置較小難度alloc用來預(yù)置賬號以與賬號的以太幣數(shù)量,因為私有鏈挖礦比較容易,所以我們不需要預(yù)置有幣的賬號,需要的時候自己創(chuàng)建即可以。coinbase礦工的賬號,隨便填timestamp設(shè)置創(chuàng)世塊的時間戳parentHash上一個區(qū)塊的hash值,因為是創(chuàng)世塊,所以這個值是0extraData附加信息,隨便填,可以填你的個性信息gasLimit該值設(shè)置對GAS的消耗總量限制,用來限制區(qū)塊能包含的交易信息總和,因為我們是私有鏈,所以填最大。注意:區(qū)塊難度difficulty一定要小,否則使用起來挖礦將會很困難,就沒有賬戶金額進行開發(fā)實驗;可以通過alloc在該文件中預(yù)分配賬戶和以太幣。

啟動私有鏈節(jié)點啟動節(jié)點所需參數(shù)列表:參數(shù)名稱參數(shù)描述identity區(qū)塊鏈的標示,隨便填寫,用于標示目前網(wǎng)絡(luò)的名字init指定創(chuàng)世塊文件的位置,并創(chuàng)建初始塊datadir設(shè)置當前區(qū)塊鏈網(wǎng)絡(luò)數(shù)據(jù)存放的位置port網(wǎng)絡(luò)監(jiān)聽端口rpc啟動rpc通信,可以進行智能合約的部署和調(diào)試rpcapi設(shè)置允許連接的rpc的客戶端,般為db,eth,net,web3networkid設(shè)置當前區(qū)塊鏈的網(wǎng)絡(luò)ID,用于區(qū)分不同的網(wǎng)絡(luò),是一個數(shù)字console啟動命令行模式,可以在Geth中執(zhí)行命令終端進入配置好的創(chuàng)世塊文件目錄。輸入以下命令初始化創(chuàng)世塊:geth一datadir〃~./ethdev〃initpiccgenesis.json輸入以下命令啟動以太坊私有鏈:geth--identity〃PICCetherum〃--rpc--rpccorsdomain〃*--datadir〃~./ethdev〃--port"30303"--rpcapi〃db,eth,net,web3〃--networkid95518console-dev

注意:添加一dev表示以開發(fā)模式啟動。私有鏈數(shù)據(jù)存儲的目錄要與公有鏈分開??吹揭韵螺敵稣f明私有鏈啟動成功:文件[F]期輯(E]查看叫搜覽(S)終端幫助[H]1123122:21:51*67999134B81123122:21:51+680OZ131B8core/blockchairb,ot>:220]Lastblock:W15[e97b5eO0?.]TD=210core/blQckchflin-go:221]Fastblock:#15[e?7b5eO0?.]TD-2ie1123122:21:51.6&2051p2p/server.go:342]startings&rv&r112312Z:Z1;53.826034p2p/dtscover/udp.go:ZZT]Listening,enode://161ea€936b4deee887Sedie4a91cd8l8d3elcl7242Beel255377bdbSd3977a863bl7fe9d6c3aa068^71d3d915S5&3fe782Cla33aa7CGO432J9f9dec0d9LO45I@[1123122:21:51*67999134B81123122:21:51+680OZ131B8fe782Cla33aa7CGO432J9f9dec0d9LO45I@[:門t557391123111231II23Ih*ipc1123154522:2L22:2122*2153.8B如81S3.82637053.82904722:21:53,S29939whisper/whispervZ/whisper.ga;176]Whisperstartedp2p/server.go:61@]LiEteningon[::]:4D284nocl&/nc}d&xgu:341]ipcendpointopened:/hume/huang/detf/getnQde/n&de,go:411]httpendpointopened:http://tocalhoEt:8instance:Geth/PICCetheruni/vl+5+5-stable-ffD7d546/ltnuK/oolh7+3coinbase:9x8ad63^9cB1366&al6cc949097e429ec3feS3ba6catblock:15(wed,zeDec201600:07:45cst)datadir;/hoMe/huang/devnodules:adntn:1*0debu^:!rð:1*0ntner:l+0net11.9personal:1*0rpcil,&shh:ItxpcitjliixOxebii1.0二、Node.js環(huán)境搭建由于以太坊開發(fā)框架truffle的安裝需要依賴于node.js中的npm命令,下文簡要介紹以下node.js的安裝過程。Node.js官網(wǎng):./

LTSR^ommeindedForMost'UsersWindowsInstaller(uimsi)32-bil&4-t>ltwindowsBkruiry(.ex?j32-bit&4-bltmscOSInstaller(.pkg}M-bitmacOSBinaries(.tangz)LinuxBinaries(?tB6/x64)32-bit&4-blcLinuxBinarfes(ARM)ARMv6ARMy?ARklvaCurrentLatestFuturesWindowsInstaillerncdt-^9ZTSJMJHLlMacintoshinstalleinMi心二Rkc從官網(wǎng)中下載穩(wěn)定的版本,需要注意的是,由于網(wǎng)絡(luò)原因,網(wǎng)絡(luò)上有些教程推薦使用cnpm,然而使用cnpm代替npm有可能安裝的軟件會出現(xiàn)一些問題。依賴安裝安裝nodeJS之前,如果沒有安裝g++與libssl-dev,則先要安裝好,安裝方法如下:$sudoapt-getinstallg++$sudoapt-getinstalllibssl-devnodejs安裝第一步,解壓:1tar-xvfnode-v6.9.l-linu3(-x64:.tar.xz第二步:為node和npm建立兩個軟連接,使之可以全局運行:(第一個路徑為安裝程序所在路徑)1In-£/honie/zhuze/app/nodejs/node-v6.9.1/bin/n.ode/u.sr/local/bin/node2In-s/ham.e/2hu2s/app/nQdejs/node-vS.1/bin/n.pm/usr/local/bin/npm第三步:安裝測試node-v輸出版本號第三步:安裝測試node-v1npm-v輸出版本號,說明安裝成功。三、Truffle開發(fā)框架搭建Truffle是以太坊最受歡迎的一個開發(fā)框架,它幫你處理掉大量無關(guān)緊要的小事情,讓你可以迅速的進入寫代碼-編譯-部署-測試-打包Dapp這么一個較成熟的開發(fā)流程。下面簡要介紹如何搭建truffle開發(fā)框架。git安裝在安裝truffle之前需要核實一下本機是否安裝Git程序。后面的程序安裝需要依賴git。輸入以下命令:1$sudaadd.-apt-repositaryppa;git-coxe/ppa23$sudoapt-getupdate45$sudoapt—getinstallgrt安裝測試:$git—exsiongitversion2.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論