ubuntu16.04搭建以太坊私有鏈并在私有鏈中進行挖礦及轉賬

1.前言

以太坊作為區塊鏈技術應用的龍頭,需要對該項目深入的學習,才好在工作中更好的使用區塊鏈來解決實際的問題。

不管是以太坊,還是CAM區塊鏈,在學習的時候都習慣的要先了解這些系統的運行流程以及系統功能,那么搭建私有鏈是一個很好的方式,可以在私有鏈上進行任意的操作,轉賬、挖礦、部署合約,比如給自己發個幾億的以太坊。

2.搭建私有鏈所需的依賴環境

操作系統:ubuntu16.04,開虛擬機的話要至少4G,否則會影響測試挖礦時的速度

軟件:geth客戶端 版本:1.8.1-stable-1e67410e

3.安裝geth客戶端

【Ctrl+Alt+T】打開終端,依次輸入以下命令

sudo apt-get update

sudo apt-get install software-properties-common

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo add-apt-repository -y ppa:ethereum/ethereum-dev

sudo apt-get update

sudo apt-get install ethereum

安裝完成后,輸入geth -h,如果有列出信息則說明安裝成功,可查看列出信息,方便后續的操作

4.創建創世塊

作為區塊鏈, 鏈子總要有個頭,所以需要創建一個創世塊作為頭部,才好往下添加,創世文件名稱命名為genesis.json,內容如下,為json格式

{

"config": {

"chainId": 20,

"homesteadBlock": 0,

"eip155Block": 0,

"eip158Block": 0

},

"alloc": {

"bc9a3ece02d7cb31cf63dfdfc48db0b82770d014": {

"balance": "1000000000000000000000000000000"

},

"457e7d69fd3ac576aa744228e6b3319cde768473": {

"balance": "2000000000000000000000000000000"

},

"926ef6011f7c852d30a01c7a4aaa5cbc460588fc": {

"balance": "3000000000000000000000000000000"

}

},

"nonce": "0x0000000000000056",

"difficulty": "0x020000",

"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"coinbase": "0x0000000000000000000000000000000000000000",

"timestamp": "0x00",

"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",

"gasLimit": "0x4c4b40"

}

文件內容字段說明如下

其中gasLimit應填的比較大,否則在接下去測試轉賬時會提示錯誤,提示超出gasLimit

alloc為為預置賬號充值以太幣,這些一般是在ico階段參與的用戶,可以在創世塊中為這些初期支持用戶分發以太幣

打開終端,cd到搭建一個文件夾中,我的是/home/wjl/eth,在其中創建一個data文件夾,作為第一個私鏈節點存儲數據的文件夾。

拷貝genesis.json到/home/wjl/eth 文件夾下,方便命令行操作

在終端輸入【geth --datadir data --networkid 20140628 --rpc --rpccorsdomain "*" init ./genesis.json】

需要說明的是,

--networkid 20140628,為私鏈id,可以任意修改為自己的id,以太坊主網id為1,后續要搭建私鏈下的其他節點,networkid必須相同

--datadir data 中data是文件夾的名稱,私鏈數據會存儲在這個文件夾內,當要在同一計算機中創建其他私鏈節點時,可創建另外的文件夾,例如data2,然后通過--datadir data2區分不同的私鏈節點,如果未設置--datadir,則會讀取以太坊主網的數據,默認位置在/root/.ethereum中。

出現如上圖信息,說明創世塊創建完成。

5.開啟geth私鏈客戶端

打開終端,輸入【geth --datadir data --networkid 20140628 --rpc --rpccorsdomain "*" --nodiscover --port 16333 --rpcport 8546 console】

即可開啟geth客戶端,需要說明的是,需設置端口

--port 16333 系統默認是30303

--rpcport 8546 系統默認是8545

如果啟用第二個測試節點,port以及rpcport應與第一個節點不同

進入控制臺,打開節點成功。

6.創建賬戶

在控制臺中輸入personal.newAccount("123") ,注意“123”就是密碼了,請自行更改為其他的字符串。

為什么要創建賬戶?

因為接下去要挖礦,沒有賬戶是挖不了礦的,因為挖礦成功后,系統會獎勵5個ETH,需要有賬戶接受獎勵。

7.挖礦

終端中輸入eth.coinbase

查看礦工的賬戶,其實就是上一步創建的賬戶。

7.1開始挖礦

終端輸入miner.start(1)

第一次挖礦的時候需要初始化挖礦線程,需要等待挺長時間的。

說明挖礦成功。

7.2停止挖礦

在控制臺輸入命令miner.stop(),停止挖礦。

8.查看區塊高度及區塊內容

輸入,eth.blockNumber查詢區塊數量,eth.getBlock(47)查詢對應區塊的內容。

9.轉賬

9.1創建第二個賬戶

在控制臺中輸入personal.newAccount("123") ,注意“123”就是密碼了,請自行更改為其他的字符串。

9.2查詢賬戶余額

以太坊挖礦默認是第一個賬戶,因此只有第一個賬戶有余額,輸入

web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]),"ether")//查詢第一個賬戶余額

web3.fromWei(web3.eth.getBalance(web3.eth.accounts[1]),"ether")//查詢第二個賬戶余額

可以看到第一個賬戶余額是240eth,這是挖礦所得,第二個賬戶余額為0eth。

備注eth單位解釋:

kwei(1000Wei)mwei(1000KWei)gwei(1000mwei)szabo(1000gwei)finney(1000szabo)ether(1000finney)

也就是說ether =wei * 10^18,也就是說精度可以達到18位。

wei轉ether

> web3.fromWei(10000000000000000,"ether")"0.01"

ether轉wei

> web3.toWei(1)"1000000000000000000"

9.3第一個賬戶轉賬給第二個賬戶

在geth的console中輸入web3.eth.sendTransaction({from:web3.eth.accounts[0] , to: web3.eth.accounts[1],value: web3.toWei(1, "ether")})

會提示需要密碼或者解鎖,那么我們需要解鎖第一個賬戶,因為是用一個賬戶轉出ether的,輸入personal.unlockAccount(web3.eth.accounts[0])

說明解鎖成功,我們再進行轉賬web3.eth.sendTransaction({from:web3.eth.accounts[0] , to: web3.eth.accounts[1],value: web3.toWei(1, "ether")})

說明轉賬已經提交成功,但是交易并未完成,還需要礦工挖礦提交新的區塊,在區塊中加入這次轉賬交易,提交新的區塊全網的節點(按百分比算,具體還沒細看源代碼)確認完成后,交易才正式生效。

輸入miner.start(1) 開始挖礦

等待挖礦完成

然后輸入miner.stop()停止挖礦,只是為了不讓屏幕一直刷新,方便截圖

輸入

web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]),"ether")//查詢第一個賬戶余額

web3.fromWei(web3.eth.getBalance(web3.eth.accounts[1]),"ether")//查詢第二個賬戶余額

說明轉賬成功

附錄

1.以太坊官方安裝教程點擊打開鏈接

2.以太坊官方私鏈搭建教程點擊打開鏈接

3.以太坊github上wiki,比較全面詳細,點擊打開鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379