初學者了解以太坊,最好的辦法之一就是先搭建一條私鍊,在上面建立賬戶,部署合約,并試着與之互動。當完成了這一系列步驟後,對在以太坊上進行應用開發,就是順理成章的事情了。
開發需要
geth用戶端,本篇是基于MacOS10.12的作業系統,建議使用Mac或者裝有unbuntu的電腦進行開發,其實如果要長期學習區塊鍊的話,不建議使用Windows。
第一步
建立一個genesis.json檔案,内容如下:
[plain] view plain copy- {
- "config": {
- "chainId": 10,
- "homesteadBlock": 0,
- "eip155Block": 0,
- "eip158Block": 0
- },
- "coinbase" : "0x0000000000000000000000000000000000000000",
- "difficulty" : "0x2000",
- "extraData" : "",
- "gasLimit" : "0x8000000",
- "nonce" : "0x0000000000000042",
- "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
- "timestamp" : "0x00",
- "alloc": {}
- }
如果你是初次接觸區塊鍊,不必對檔案中的内容感到困惑,更不用被他們吓到,當你完成了私鍊的搭建,并在其上完成了建立賬戶、挖礦、部署合約以及與之互動的工作後,再回過頭看這份JSON檔案,你就會明白其中許多鍵值對的含義了。在後續的部落格中,我會進行解釋。
第二步
打開終端,建立一個目錄,把JSON檔案放入該目錄
- mkdir privateNet
- mv 你的genesis.json privateNet/
- cd privateNet
第三步
建立創世區塊。
- geth --datadir "./" init genesis.json
--datadir "./"指定私鍊資料存放的檔案夾位置,init初始化genesis.json,建立創世區塊。如果執行成功,在終端大緻會是這個樣子
同時,檢視你指定的存放私鍊資料的檔案夾,會多出兩檔案夾geth、keystore。這兩個檔案夾是幹什麼用的呢?geth檔案夾下用來存放私鍊的相關資料,keystore檔案夾下存放的是該鍊的使用者資訊。在圍繞私鍊的一系列動作完成後,你會有所了解。
第四步
建立私鍊
- geth --datadir "./" console 2>>geth.log
console 2>>geth.log 将私鍊的日志列印到geth.log中,在你的存放私鍊的檔案夾裡你會找到該檔案,另開一個終端,來到geth.log所在目錄,執行指令:
- tail -f geth.log
你将在這個終端中實時的看到私鍊的狀況。
至此,私鍊已經搭建完成。當然,我們應該體驗一把辛苦搭建的私鍊
建立賬戶
回到之前建立私鍊的那個終端,可以看到,此時的終端處于待輸入狀态,輸入
- eth.accounts
将會傳回[],此時的私鍊還沒有賬戶,輸入
- personal.newAccount("password")
回車後會傳回一串hash,傳回的hash代表建立賬戶的位址,這條指令中的password代表該賬戶的密碼,可以随意指定。這是再輸入eth.accounts将會傳回剛剛建立的賬戶的位址,根據傳回值我們可以知道,賬戶以數組形式存在,是以我們輸入eth.accounts[0],也會傳回剛剛建立賬戶的位址。
查詢賬戶餘額
輸入
- eth.getBalance(eth.accounts[0])
傳回值為賬戶餘額,此時賬戶餘額為0。
挖礦
聽到挖礦,第一反應肯定是,挖币賺錢,沒錯,接下來我們也要挖出我們的“以太币”,來“賺錢”了!輸入:
- miner.start(1)
傳回值會為true或者null,這都沒什麼影響,檢視另一個終端,會看到有塊正在生産。指令中的參數1代表隻用目前機器的一塊處理器進行挖礦,如果不輸入參數,預設是“全力挖礦”,這樣電腦會很容易發熱。
在geth終端再次輸入
會傳回一長串數字,這些數字就是你在過去幾秒或者幾分鐘内挖出的币,如果這是真的以太币,那你在過去幾秒已經賺取了不菲的财富了!你可能會疑惑,為什麼幾秒鐘的功夫就能夠得到這麼多币呢?這是因為你産生了足夠多的區塊。那為什麼産生區塊的速度這麼快呢?這是因為,在最開始我們的genesis.json檔案中,有一項叫做
- "difficulty" : "0x2000"
這一項用來控制我們挖礦的難度,我們設定的難度“偏低”,大家可以改變它的值,重新搭建私鍊試試。
至此,你已經掌握了私鍊的搭建以及建立賬戶、檢視餘額、挖礦的工作了,下一篇部落格将講述如何在這個私鍊上部署合約并與之互動。
當然,别忘了停止挖礦:輸入指令:
- miner.stop()
傳回true,挖礦停止。
原文釋出時間為:2018年02月06日
本文作者:FlyingApe
本文來源:
CSDN,如需轉載請聯系原作者。