基於以太坊構建私有區塊鏈網路教程指南
0. 私有區塊鏈網路
在一般的應用場景下,除了大家取挖礦參與之外,還有一種應用場景就是自己建立私有的區塊鏈網路,滿足自己特有的業務需求和場景。
1. 下載Geth客戶端
官方站點: https://geth.ethereum.org
Github: https://github.com/ethereum/go-ethereum
由於某些未知原因,在嘗試官方站點下載geth客戶端的時候,下載頁面一直在loading狀態,基本無法下載相應的安裝包,如下圖所示:
一般建議大家參照wiki的資訊: https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
比如筆者所使用的是Ubuntu系統,可以直接參照wiki的內容進行安裝。
2. 在Ubuntu上安裝指南
安裝指南:
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
當然大家也可以選擇從原始碼中直接編譯安裝,具體資訊可以參照指南上的資訊。
3. 配置創世紀的配置檔案
大家可以參照以下配置檔案,genesis.json:
{
“nonce”: “0x0000000000000042”,
“timestamp”: “0x00”,
“parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“extraData”: “0x00”,
“gasLimit”: “0x80000000”,
“difficulty”: “0x400”,
“mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“coinbase”: “0x3333333333333333333333333333333333333333”,
“alloc”: { },
“config”:{
“chainId”:15,
“homesteadBlock”:0,
“eip155Block”:0,
“eip158Block”:0
}
}
然後,開啟命令列,初始化配置檔案.
geth –datadir “/home/bladestone/codebase/blocks/chain” init genesis.json
這裡介紹一下上述各個引數的功能描述:
- mixhash
與nonce配合用於挖礦,由上一個區塊的一部分生成的hash
- nonce
nonce就是一個64位隨機數,用於挖礦
- difficulty
設定當前區塊的難度,如果難度過大,cpu挖礦就很難,這裡設定較小難度
- alloc
用來預置賬號以及賬號的以太幣數量,因為私有鏈挖礦比較容易,所以我們不需要預置有幣的賬號,需要的時候自己建立即可以。
- coinbase
礦工的賬號,隨便填, 說明: 偶數位,且0x開頭
- timestamp
設定創世塊的時間戳
- parentHash
上一個區塊的hash值,因為是創世塊,所以這個值是0
- extraData
附加資訊,隨便填,可以填你的個性資訊
- gasLimit
該值設定對GAS的消耗總量限制,用來限制區塊能包含的交易資訊總和,因為我們是私有鏈,所以填最大。
4. 建立私有網路
sudo geth –identity “myfirstblock” –rpc –rpcport “8078” –rpccorsdomain “*” –datadir=”/home/bladestone/codebase/blocks/chain” –port “30303” –nodiscover –rpcapi “db,eth,net, web3” –networkid 1006 init /home/bladestone/codebase/blocks/genesis.json
如下圖所示:
- identity
區塊鏈的標示,隨便填寫,用於標示目前網路的名字 - init
指定創世塊檔案的位置,並建立初始塊 - datadir
設定當前區塊鏈網路資料存放的位置 - port
網路監聽埠 - rpc
啟動rpc通訊,可以進行智慧合約的部署和除錯 - rpcapi
設定允許連線的rpc的客戶端,一般為db,eth,net,web3 - networkid
設定當前區塊鏈的網路ID,用於區分不同的網路,是一個數字 - console
設定當前區塊鏈的網路ID,用於區分不同的網路,是一個數字
5. 啟動控制檯,建立使用者,並開始挖礦
geth –datadir “/home/bladestone/codebase/blocks/chain/” –nodiscover console 2>>geth.log
執行效果圖示:
進入geth命令列,建立使用者,然後啟動mine挖礦
接下來,我們檢視日誌geth.log:
從這裡可以看出, 建立的私有網路已經開始挖礦了….
6. 總結
以太坊是目前業界比較成熟的一種基於區塊鏈技術的一種框架,允許開發者在其上二次開放,定製出紛繁精彩的區塊鏈應用,所以這就要求所有的從業者都要思考區塊鏈技術的本質以及應用場景。
7. 參考資料
相關文章
- 區塊鏈教程、區塊鏈指南、區塊鏈中文手冊、區塊鏈原理區塊鏈
- 區塊鏈2.0架構:以太坊區塊鏈的介紹區塊鏈架構
- 搭建基於以太坊的私有鏈環境
- 基於Java語言構建區塊鏈(四)—— 交易(UTXO)Java區塊鏈
- 區塊鏈安全:基於區塊鏈網路攻擊的方式原理詳解區塊鏈
- 區塊鏈--公司開發私有鏈搭建建議基於什麼開源框架開發區塊鏈框架
- 用 Go 構建一個區塊鏈 -- Part 7: 網路Go區塊鏈
- 區塊鏈之--2小時構建以太坊智慧合約區塊鏈
- 區塊鏈技術公司談以色用區塊鏈改善網路安全區塊鏈
- 基於Java語言構建區塊鏈(五)—— 地址(錢包)Java區塊鏈
- 基於Java語言構建區塊鏈(一)—— 基本原型Java區塊鏈原型
- 建立基於以太坊的私有網路和智慧合約
- 關於區塊鏈和網際網路區塊鏈
- 基於Java語言構建區塊鏈(三)—— 持久化 & 命令列Java區塊鏈持久化命令列
- 基於Java語言構建區塊鏈(六)—— 交易(Merkle Tree)Java區塊鏈
- 區塊鏈2.0以太坊錢包編譯詳解+連線私有鏈+修改區塊鏈編譯
- 以太坊構建DApps系列教程(一):應用程式規則和區塊鏈設定APP區塊鏈
- 在Go中構建區塊鏈 第7部分:網路Go區塊鏈
- 螞蟻雙鏈通:基於區塊鏈的供應鏈協作網路區塊鏈
- 基於Java語言構建區塊鏈(二)—— 工作量證明Java區塊鏈
- 區塊鏈開發_建立區塊鏈公鏈,聯盟鏈,私有鏈區塊鏈
- 區塊鏈 2.0 :以太坊(九)區塊鏈
- 區塊鏈之以太坊初探區塊鏈
- 初識區塊鏈 - 用JS構建你自己的區塊鏈區塊鏈JS
- 區塊鏈 2.0:公有鏈與私有鏈(七)區塊鏈
- 區塊鏈100講:淺析以太坊網路智慧合約原理區塊鏈
- Qtum區塊鏈指南QT區塊鏈
- 區塊鏈改變網路區塊鏈
- 構建 EOS 區塊鏈瀏覽器區塊鏈瀏覽器
- ARB鏈的代幣kai發基於以太坊(ETH)網路AI
- 八分量基於區塊鏈技術賦能我國工業網際網路建設區塊鏈
- 區塊鏈溯源-基於區塊鏈技術-全程追溯防偽區塊鏈
- Arweave區塊鏈私有化部署區塊鏈
- 如何搭建以太坊私有鏈
- 以太坊學習筆記————12、搭建測試網路和私有鏈筆記
- 區塊鏈2.0以太坊漫談(1)區塊鏈
- 區塊鏈2.0以太坊漫談(2)區塊鏈
- 區塊鏈2.0以太坊漫談(3)區塊鏈