區塊鏈以太坊錢包私鏈的實現

本文章是在windows7下以太坊的私鏈搭建實現,私鏈主要是開發做測試而搭建的一個在本地的環境, 該產生的賬號,數據都只是本地的數據。

要下載的兩個客戶端

1.geth ( 發音guess) 

  geth的全稱是go-ethereum,是一個以太坊客戶端,用go語言編寫,應該是目前最常用的客戶端。當然以太坊客戶端還有用C++,Ruby,Python,Java等其他多種語言編寫的,不同類型的客戶端是爲了滿足不同的需求場景。

2.Ethereum Wallet 錢包

Ethereum Wallet客戶端對應的是Mist項目,現在此客戶端大多都稱爲Ethereum Wallet,也有稱作Mist客戶端的,知道它們兩個指的是通一個客戶端即可。此客戶端使用JavaScript進行開發,支持windows、linux和OSX三類操作系統,是一個圖形化操作界面的客戶端。介紹到這裏,大家可能就明白了,如果你想通過API來調用以太坊的接口,選擇此方式是行不通的。Ethereum Wallet客戶端主要是爲用戶提供可視化操作的客戶端,下載安裝之後通過相應的圖形化界面即可進行創建賬戶、轉賬、查詢餘額等操作

一. 使用Geth

下載64位或32位Geth安裝程序,然後進行安裝。

安裝完畢後打開該安裝的目錄d:\blockchain,有geth.exe的目錄,(注意,文件路徑中不能出現中文。也可以安裝在其他目錄,不要放在c盤,後期運行的時候,因爲系統對c盤的保護,會有一些訪問權限的問題。)

然後在該文件夾下創建創世塊的初始化文件genesis.json
內容如下

{
  "config": {
        "chainId": 16,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc": {
  "0x83fd95f8e41f6afedd08dd6ae11db607a7a3c60c": {"balance": "666666666"},
  "0x0000000000000000000000000000000000000002": {"balance": "222222222"}
    },
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

解釋一下各個參數的作用:

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的消耗總量限制,用來限制區塊能包含的交易信息總和,因爲我們是私有鏈,所以填最大。

完成了創世塊配置文件,開始部署節點!

 win鍵 + r 進入cmd命令行
鍵入 d: 是命令行進入d盤
鍵入 cd blockchain 進入d盤的blockchain目錄

鍵入 geth –datadir “%cd%\chain” init genesis.json 將創世塊信息初始化

初始化成功後, 進去D盤blockchain目錄查看是否有生成文件夾。

之後就可以啓動geth的私鏈 (下面是啓動私鏈的命令)

geth.exe  --datadir “%cd%\chain” --syncmode=fast --rpc --rpcaddr 10.0.0.76 -rpcport 9335 --rpccorsdomain '"*"'  --rpcapi "personal,db,eth,net,web3" --networkid 95518 console  console

datadir 這是你私鏈的地址 這裏就是D盤blockchain下面

targetgaslimit –每個區塊能承載gas上限,這裏可以暫時理解爲容量

rpc –啓動rpc通信,可以進行智能合約的部署和調試
rpcaddr –rpc接口的地址
rpcport –rpc接口的端口號
port –網絡監聽端口,用於節點之間通信
rpcapi –設置rpc的範圍,暫時開啓eth,web3,personal足夠
networkid –設置當前區塊鏈的網絡ID,是一個數字,可以隨便寫(儘可能大於10)
mine 允許挖礦
minerthreads 挖礦啓動的線程數量,默認是4個。
console –啓動命令行模式*

當啓動後 就可以進行操一系列的業務,列如 查詢餘額,轉賬等。

我這裏就舉例幾個業務創建賬號,和查詢餘額,以及挖礦

1.創建賬號命令

personal.newAccount("輸入密碼")

這個時候我們可以看到除了第一個賬戶0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f之外,還新增了另一個賬戶0xb8b12a801b610176935a15321f77b48dd5c0c448, 此時輸入eth.accounts, 就可以很輕鬆的看到有兩個賬戶的公鑰地址。

2.餘額查詢

eth.getBalance("輸入賬號")

3.挖礦

miner.start()

輸入即可挖礦, 如果未指定賬號挖到的默認值向第一個賬號。

二 .使用Ethereum Wallet 錢包

打開Ethereum Wallet 錢包 默認會先連本地的geth數據私有鏈, 當啓動了geth私有鏈的時候打開錢包應該會在右上角顯示私有網絡PRIVATE-NET


之後啓動進入錢包主頁面 
如下

這個就是對geth 的可視化操作,默認是鏈接公鏈,同步公鏈需要挺長的時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章