區塊鏈開發的環境搭建
區塊鏈開發(一)搭建基於以太坊的私有鏈環境
通過本文所述方法和專案中的指令碼,我們可以快速的搭建好自己的私有鏈進行區塊鏈開發測試,本文基於以太坊技術進行搭建,分兩個部分,一個是Ubuntu下搭建方法,另一個是Windwos下搭建方法,關於以太坊相關的基礎知識,可以看我原先發表的一些文章
一、 Ubuntu下安裝Geth客戶端
之所以採用Ubuntu,是因為以太坊的官方對Ubuntu支援的很好,是在各個Linux系統中安裝最簡單。
Geth官方安裝指南:
https://github.com/ethereum/Go-ethereum/wiki/Building-Ethereum
進入ubuntu命令列,執行如下命令
sudo apt-get update
sudo apt-get installsoftware-properties-common
sudo add-apt-repository -yppa:ethereum/ethereum
sudo add-apt-repository -yppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install ethereum
系統聯網執行後,即完成了安裝以太坊客戶端,其中包括geth,bootnode, evm, disasm, rlpdump,ethtest
此時如果輸入Geth命令,會出現啟動以太坊啟動的畫面
二、 安裝Windows下Geth客戶端
Windows必須64位系統,從官方網站下載編譯好的win64客戶端,解壓縮即可執行,下載地址如下:
https://github.com/ethereum/go-ethereum/releases/
下載後,只有一個Geth.exe的檔案。
安裝影象化客戶端Mist,依然是從官方地址下載編譯好的客戶端即可,下載地址:
https://github.com/ethereum/mist/releases/
下載解壓縮後,Ethereum-Wallet即為以太坊圖形化介面。
三、 準備創世塊檔案
配置自己的創世塊是為了區分公有鏈,同一個網路中,創世塊必須是一樣的,否則無法聯通,此方法在windows和Ubuntu下通用。
新建檔案piccgenesis.json,輸入如下內容並儲存
{
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "PICC GenesisBlock",
"gasLimit":"0xffffffff"
}
解釋一下各個引數的作用:
mixhash |
與nonce配合用於挖礦,由上一個區塊的一部分生成的hash。注意他和nonce的設定需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節所描述的條件。. |
nonce |
nonce就是一個64位隨機數,用於挖礦,注意他和mixhash的設定需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節所描述的條件。 |
difficulty |
設定當前區塊的難度,如果難度過大,cpu挖礦就很難,這裡設定較小難度 |
alloc |
用來預置賬號以及賬號的以太幣數量,因為私有鏈挖礦比較容易,所以我們不需要預置有幣的賬號,需要的時候自己建立即可以。 |
coinbase |
礦工的賬號,隨便填 |
timestamp |
設定創世塊的時間戳 |
parentHash |
上一個區塊的hash值,因為是創世塊,所以這個值是0 |
extraData |
附加資訊,隨便填,可以填你的個性資訊 |
gasLimit |
該值設定對GAS的消耗總量限制,用來限制區塊能包含的交易資訊總和,因為我們是私有鏈,所以填最大。 |
四、 啟動私有鏈節點
啟動Geth即可以啟動以太坊的區塊鏈,為了構建私有鏈 ,需要在Geth啟動時加入一些引數,Geth引數含義如下:
identity |
區塊鏈的標示,隨便填寫,用於標示目前網路的名字 |
init |
指定創世塊檔案的位置,並建立初始塊 |
datadir |
設定當前區塊鏈網路資料存放的位置 |
port |
網路監聽埠 |
rpc |
啟動rpc通訊,可以進行智慧合約的部署和除錯 |
rpcapi |
設定允許連線的rpc的客戶端,一般為db,eth,net,web3 |
networkid |
設定當前區塊鏈的網路ID,用於區分不同的網路,是一個數字 |
console |
啟動命令列模式,可以在Geth中執行命令 |
1、 在Ubuntu啟動區塊鏈節點
在Ubuntu下,首先切換到打算執行的目錄,目錄下應該有配置好的piccgenesis.json檔案,執行如下命令
basepath=$(cd `dirname $0`; pwd)
獲取當前的目錄
geth --datadir "$basepath/chain" init piccgenesis.json
建立資料存放地址並初始化創世塊
geth --identity"PICCetherum" --rpc --rpccorsdomain "*" --datadir "$basepath/chain" --port "30303" --rpcapi "db,eth,net,web3"--networkid 95518 console
啟動後介面如下,游標停留在最後的命令列上,可以執行以太坊命令。
I0707 00:45:43.680087 ethdb/database.go:82]Alloted 128MB cache and 1024 file handles to /home/lihe/桌面/chain/chaindata
I0707 00:45:43.726008ethdb/database.go:169] closed db:/home/lihe/桌面/chain/chaindata
I0707 00:45:43.728913 ethdb/database.go:82]Alloted 128MB cache and 1024 file handles to /home/lihe/桌面/chain/chaindata
I0707 00:45:43.908795 ethdb/database.go:82]Alloted 16MB cache and 16 file handles to /home/lihe/桌面/chain/dapp
I0707 00:45:43.969506 core/genesis.go:92]Genesis block already in chain. Writing canonical number
I0707 00:45:43.980337 eth/backend.go:274]Successfully wrote custom genesis block:6e92f8b23bcdfdf34dc813cfaf1d84b71beac80530506b5d63a2df10fe23a660
I0707 00:45:43.980618 eth/backend.go:184]Protocol Versions: [63 62], Network Id: 95518
I0707 00:45:43.981567core/blockchain.go:204] Last header: #81 [6193c4b0…] TD=10836704
I0707 00:45:43.981645core/blockchain.go:205] Last block: #81 [6193c4b0…] TD=10836704
I0707 00:45:43.981677core/blockchain.go:206] Fast block: #81 [6193c4b0…] TD=10836704
I0707 00:45:43.985253 p2p/server.go:313]Starting Server
I0707 00:45:45.834488p2p/discover/udp.go:217] Listening,enode://134881790e54c803955715e3661c27f91caaf499be813e29c9f986e2eac62d47e[email protected][::]:30303
I0707 00:45:45.835853 node/node.go:366]HTTP endpoint opened: http://localhost:8545
I0707 00:45:45.848008 p2p/server.go:556]Listening on [::]:30303
I0707 00:45:45.849731 node/node.go:296] IPCendpoint opened: /home/lihe/桌面/chain/geth.ipc
Welcome to the Geth JavaScript console!
instance:Geth/v1.5.0-unstable/linux/go1.5.1/PICCetherum
coinbase:0x93509a2f4b2b974b07ef0b52e07c3992601f5de1
at block: 81 (Tue, 05 Jul 2016 21:02:25CST)
datadir: /home/lihe/桌面/chain
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
>
可以看到Listening on [::]:30303和Welcome to the Geth JavaScript console!的提示,說明已經啟動成功
注意:如果想將Ubuntu作為永久區塊鏈節點使用,當使用nohup命令時,Geth啟動引數console必須去掉,否則Geth會自動停止。
2、 在windows啟動區塊鏈節點
進入Windows下Geth的目錄 ,放置配置好的piccgenesis.json檔案,執行如下命令:
geth --datadir "%cd%\chain" init piccgenesis.json
建立資料存放地址並初始化創世塊
geth--identity "PICCetherum" --rpc--rpccorsdomain "*" --datadir "%cd%\chain" --port"30303" --rpcapi"db,eth,net,web3" --networkid 95518 console
當看到Listening on [::]:30303和Welcome to the Geth JavaScript console!的提示,說明已經啟動成功
五、 使用節點建立賬號
啟動節點成功後,會進入Geth的命令列模式,輸入如下命令
personal.newAccount()
系統會提示你輸入賬號密碼,並確認,最後會顯示一個新生成的賬號。
六、 啟動Windows下私有鏈圖形節點
首先按上面的步驟啟動Geth並建立了賬號,然後解壓縮Ethereum-Wallet,執行Ethereum-Wallet.exe,即啟動成功,如果區塊鏈正常的話,會在右上角顯示“PRIVATE-NET”,點選“LAUNCH APPLICATION”進入圖形介面即可。
七、 連線其他節點
首先要知道自己的節點資訊,在Geth命令列介面下輸入命令,注意大小寫
admin.nodeInfo
系統會顯示
enode:"enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fc[email protected]0.0.0.0:30303“
其中
enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fc[email protected]0.0.0.0:30303
就是自己節點的資訊,注意要把“0.0.0.0“換成你自己的IP。將這個資訊傳送給其他節點,在其他節點的命令列中輸入:
admin.addPeer(‘enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fc[email protected]192.168.1.101:30303’)
如果新增成功,輸入admin.peers會顯示出新新增的節點。
八、 使用節點進行挖礦
在Geth命令列介面下,輸入miner.start()即啟動挖礦,挖礦後,會不停刷屏,輸入miner.stop()即停止,不用管刷屏導致的命令不全,命令會正常執行。
到這一步,已經組建一個私有鏈的網路,可以像其他區塊鏈一樣不停的擴充這個網路,下一篇文章,我會介紹如何在私有鏈上編寫、除錯和部署智慧合約。
參考文章:
相關推薦
區塊鏈開發環境搭建總結
最近在開發一個基於Ethereum區塊鏈的應用,於是上網搜尋資料,發現網上資料太少,由於這項技術在國內較少人研究,許多問題都無法找到答案,我將這兩天自己的總結寫出來,希望能幫到大家 首先我們要下載以太坊的客戶端工具,我參考的是網上的視訊《明說》http://ethcast
區塊鏈開發(一)Windows平臺搭建基於以太坊的區塊鏈開發環境
引言 Ethereum(以太坊)是一個使開發人員能夠建立和釋出下一代分散式應用的公共區塊鏈平臺。 通過其專用加密貨幣以太幣(Ether)提供去中心化的虛擬機器(稱為“以太虛擬機器”Ethereum Virtual Machine)來處理點對點合約。具體可以訪問
Java搭建區塊鏈開發環境
1.首先我們需要一個虛擬機器或者ubuntu 16.04雲伺服器 我的環境是ubuntu 16.04 ok,第一步,跟著我的節奏來 至於怎麼安裝ubuntu,大家可自行度娘 建議搭建選擇國內的源(國外的源訪問實在實在實在................
【區塊鏈】從0開始搭建基於以太坊的區塊鏈開發環境
Ethereum(以太坊)是一個使開發人員能夠建立和釋出下一代分散式應用的公共區塊鏈平臺。 通過其專用加密貨幣以太幣(Ether)提供去中心化的虛擬機器(稱為“以太虛擬機器”Ethereum Virtual Machine)來處理點對點合約。本文從0開始搭建了以太坊的開發環境,猶如當年初學其他語言一樣,這是我
區塊鏈測試環境搭建
1.從docker hub選擇下載相關容器 https://hub.docker.com/search/ 2.容器下載 docker pull ubuntu 3.容器加速 https://www.daocloud.io/mirror#ac
以太坊本地私有鏈開發環境搭建
ethereum-bootstrap是我建立的一個github專案,目的是幫助剛接觸以太坊的同學快速的搭建起自己的本地開發環境,體驗智慧合約的開發。閱讀本文需要有基本的程式設計知識。專案地址:https://github.com/janx/ethereum-boots
20181117--深入淺出區塊鏈 智慧合約開發環境搭建及Hello World合約
安裝都完成了 geth --datadir “E:\blockchain\geth”testNet --dev console 啟動textNet eth.accouts 檢視以太坊的賬戶 eth.getBalance(eth.accounts[0]) 檢視賬戶餘額 person
區塊鏈新手 環境配置 到 多節點私有鏈搭建(開發玩不需要同步主網)
(一開始以為要同步好才能開發玩,同步了主網,又同步了測試鏈,近100G。心累)搭建一個本地私有鏈就能玩了,不用同步主網和測試鏈區塊鏈的概念什麼的就不說了,直接上從環境配置---搭建多節點私有鏈---開發玩1.下載Ethereum-Wallet和Mist,下面是官網地址,需要翻
區塊鏈(1)開發環境搭建及Hello World合約展示
開發環境搭建 如果你對於以太坊智慧合約開發還沒有概念,請先閱讀以太坊智慧合約入門,本文基於windows平臺開發。 Geth 安裝 以太坊的客戶端有很多,我們選擇開發過程中最為流行的Geth,其基於Go語言開發。 到官方地址下載相應的安
區塊鏈開發的環境搭建
區塊鏈開發(一)搭建基於以太坊的私有鏈環境 通過本文所述方法和專案中的指令碼,我們可以快速的搭建好自己的私有鏈進行區塊鏈開發測試,本文基於以太坊技術進行搭建,分兩個部分,一個是Ubunt
區塊鏈開發(一)基於以太坊的私有鏈環境搭建介紹
Window上安裝ubuntu系統搭建私有鏈操作步驟 前提是 geth 已經安裝,可以參考上一節內容講解 Step 1: 建立目錄和genesis.json 在命令列模式建立一個目錄,例如geths ,這裡geths目錄命名任意。 命令:mkdir geths
區塊鏈學習筆記(一)Ethereum-Go開發環境搭建
Ethereum是2.0版區塊鏈的主流應用,它將區塊鏈從電子貨幣(digital cash)中延伸出來,作為一個分散式資料庫使用,成為共識系統中的基礎支撐。Ethereum引入了“智慧合約”的概念,使得基於Ethereum的區塊鏈能夠構建多樣化的去中心化應
從零開始學習音視頻編程技術(三) 開發環境搭建(Qt4.86手動設置環境,主要就是設置g++和qmake,比較透徹,附下載鏈接)
路徑 details 分享 baidu 末尾 是我 其中 找到 source 1.先下載安裝Qt 我們使用的版本是4.8。 可以自行百度下載也可以從下面的網盤地址下載: Qt庫和編譯器下載: 鏈接:http://pan.baidu.com/s/1hrUxLIG 密碼
區塊鏈資產交易所搭建IM即時通訊系統開發
競爭 全球 演進 模式 結合 數字資產 傳統 搜索 早期 區塊鏈資產交易所搭建IM即時通訊系統開發 [本文由源中瑞塗先生編輯/交易所開發VX搜索:ruiec999]隨著數字資產交易市場的演進和機構投資者的參與,交易所領域創業面臨的合規、安全、專業、透明等問題也逐漸成為其新的
區塊鏈開發筆記——Windows搭建私有鏈最簡單詳細教程
一.安裝go-ethereum客戶端 Go-ethereum客戶端通常被稱為Geth,它是個命令列介面,執行在Go上實現的完整以太坊節點。 附上客戶端的下載連結 Geth下載連結 下載安裝完畢後,需要設定系統的環境變數,然後要在cmd中測試 geth -h,若出現版本資訊則證明安
區塊鏈交易所平臺搭建系統開發結構是怎樣的
基本功 體驗 交易系統 使用 團隊 目標 必須 系統開發 服務器 數字資產交換所應用應當快速、直觀並且功能強大。 為了實現這些目標,交易所應用程序應該包含以下組件:交易引擎前端用戶界面數字資產錢包管理控制臺除了這些基本功能之外,每一個數字資產交換系統都應該有額外的功能,可以
區塊鏈開發(五)搭建以太坊區塊鏈瀏覽器
經過前面文章介紹,已經搭建以太坊的區塊鏈環境,但是沒有一個介面能檢視到區塊鏈的塊數等資訊,不是很直觀,本篇搭建以太坊區塊鏈瀏覽器。 下載區塊鏈瀏覽器程式碼 [email protected]:~/ethereum$ git clon
aelf幫助C#工程師10分鐘零門檻搭建DAPP&私有鏈開發環境
2.0 dev 單元測試 中國 編寫 開發需求 能夠 我們 github aelf是一個可擴展的去中心化雲計算區塊鏈平臺,支持高性能合約並行執行、原生多鏈數據交互、存儲使用高性能分布式數據庫。 aelf整個系統可以在windows、osx及linux運行,團隊在osx環境
vue.js開發環境搭建
回車 try htm 成功 效果 webpack log 表示 測試 1、安裝node.js,忽略 2、基於node.js,利用淘寶npm鏡像安裝相關依賴在cmd裏直接輸入:npm install -g cnpm –-registry=https://regi
[原創]ObjectARX開發環境搭建之VS2010+ObjectARX2012Wizard+Addin工具條問題修復
系統 右鍵 9.png line cls sid 新建 使用 開發環境 目前ObjectARX版本越來越高,也越來越簡化開發,如果需要同時開發低版本和高版本的ARX程序,就需要搭建批量編譯環境,以滿足ARX開發的需要。 批量編譯的搭建網絡上已經有了很多的教程,基本上都是基於