以太坊上搭建自己的私有鏈

2021-08-17 15:43:38 字數 3317 閱讀 8546

首先介紹一下什麼是公有鏈和私有鏈

公有鏈:世界上任何乙個人都可以參與的區塊鏈。使用者可以檢視,可以傳送交易,也可以參與保持資料一致性的運算等。

私有鏈:完全的私有鏈是指寫許可權是由乙個人或乙個單個組織控制的鏈。私有鏈的讀許可權是可以公開的或者是有限度的在一定範圍公開的。比如私有鏈可以用在資料庫的管理,公司內部的管理等。

聯盟鏈:聯盟鏈是指,資料一致性的運算被預先設定好的幾個節點共同控制的鏈。比如,有15家銀行組成了乙個財團鏈,在這個鏈上的每乙個節點的每一次的操作都需要10個節點的共同簽名才能被驗證。這區快鏈上的讀許可權可能是公開的,也有可能是部分公開的。

這genesis(創世)區塊是區塊鏈的起點,是它的第一塊區塊,0號區塊,唯一乙個沒有前任的區塊。這個協議確保了沒有其他節點會和你的節點的區塊鏈版本一致,除非它們的創世區塊和你的一模一樣。通過這種方法,你就可以建立任意多的私有區塊鏈。

如:customgenesis.json

mix hash

乙個256位的雜湊值,和nonce配合,一起用來證明在區塊鏈上已經做了足夠的計算量(工作證明)。這個nonce 和 mixhash 的組成,必須滿足乙個在黃皮書中所描述的數學上的條件,黃皮書 4.3.4。

nonce

乙個64位的雜湊值,和mixhash配合,一起用來證明在區塊鏈上已經做了足夠的計算量(工作證明)

difficulty

定義挖礦的目標,可以用上乙個區塊的難度值和時間戳計算出來,值越高,礦工越難挖到區塊

alloc 預先填入一些錢包和餘額

coinbase

160位的錢包位址。在創世區塊中可以被定義成任何的位址,因為當每挖到乙個區塊的時候,這個值會變成礦工的etherbase位址

timestamp  乙個unix的time()函式的輸出值,時間戳

extradata  32位元組長度,可以為私有鏈留下一些資訊,如你的姓名等,用以證明這個私有鏈是你建立的

gaslimit   當前鏈,乙個區塊所能消耗的gas上限

建立私有鏈中用到的命令列引數

--nodiscover

新增這個引數,確保沒有人能發現你的節點。不然的話,可能有人無意中會鏈結到你的私有區塊鏈。

--maxpeers 0

使用maxpeers 0,如果你不希望其他人連線到您的測試鏈。當然,您也可以調整這個數,如果你知道有多少同伴會連線你的節點

--rpc

在你的節點上啟用rpc介面。這引數在geth中預設啟用。

--rpcapi "db,eth,net,web3"

這個命令描述哪些介面可以通過rpc來訪問,預設情況下,geth開啟的是web3介面。

--rpcport "8080"

將埠號設定成8000以上的任何乙個你網路中開啟的埠。預設是8080。

--rpccorsdomain

--datadir "/home/testchain1"

私有鏈的資料目錄,確保與公共以太坊鏈的資料目錄區分開來。

--port "30303"

這是「網路監聽的埠」,您可以用它手動的和你的同伴相連。

--identity "testnetmainnode"

為你的節點設定乙個id。用於和你們的一系列同伴進行區分。

接下來來建立自己的私有鏈

用cmd開啟命令列

建立上面的創世區塊檔案customgenesis.json,並把內容paste進去,如:

然後建立自己的目錄檔案,如:f:\chains\testchain3 ,然後需要在此檔案裡再建立乙個chaindata的子資料夾,把建立的創世區塊檔案customgenesis.json放進去裡面。然後在cmd指令中,輸入

geth --identity "mydev" --rpc --rpccorsdomain "*" --datadir "f:\chains\testchain3\chaindata" --rpcapi "db,eth,net,web3,admin,miner,personal,rpc" --networkid 100 init "./customgenesis.json"

或者我們可以建立乙個init.bat檔案,把上面的命令列語句放進去

輸入好後在命令列視窗上按回車執行,或者直接雙擊這個init.bat檔案,私有鏈就建立了。

然後,為了方便下次開啟私有鏈,我們再建立乙個start.bat檔案,在裡面輸入

然後我們雙擊執行,出現

表示啟動成功,然後執行我們的mist客戶端,出現

注意右上角有個private-net的標誌,表示是私有鏈,然後launch進去客戶端,我們就進入私有鏈了。

進去之後我們可以建立幾個新賬戶,

在 f:\chains\testchain3\chaindata\keystore 上可以看到這些賬戶

然後來挖一下礦,在上面執行start.bat後的命令列視窗(注意執行時不要關閉),輸入miner.start(),其開始挖礦

就表示開始挖到礦了,返回我們的mist客戶端,可以看到賬戶的以太幣數量不斷增加

大家可以操作玩玩,這主要是在一台主機上,下面再討論一下如何在兩台主機加入到同一私有鏈中,然後進行交易操作。

Ubuntu以太坊私有鏈搭建

csdn部落格 安裝geth root dserv834 mtl8 apt get install software properties common root dserv834 mtl8 add apt repository y ppa ethereum ethereum root dserv8...

(二)構建以太坊私有鏈

因為目前以太坊的主網和測試網都很難挖到以太幣,所以我們需要自己搭建私鏈來做實驗。1 建立初始化創世塊檔案genesis.json,放置到geth安裝目錄 也可以選其他目錄,檔案裡面各個欄位的含義可以從官網查到 config 2 cmd進入geth安裝目錄,初始化創世塊 3 建立私有鏈,開啟控制台 4...

以太坊學習 一) 利用Geth搭建私有鏈

在以太坊的多種語言實現的客戶端中,推薦使用go語言版本的,也是使用最廣的乙個版本go ethereum。geth是go ethereum的縮寫。本次開發平台為ubuntu 16.04版本64位的虛擬機器。一 安裝geth 安裝文件 ubuntu下的安裝 sudo add apt repository...