[英]Can Ethereum also be used for building private blockchain networks?
我想建立一個私有區塊鏈網絡,我在某處讀到Hyperledger最適合私有區塊鏈網絡。 但是我已經了解Solidity,因此我想使用以太坊。 因此,如果我可以在Ehtereum上構建成熟的私有區塊鏈網絡,或者我必須進入Hyperledger,有人可以回答我嗎? 如果涉及到某些步驟,請也告知。 提前致謝。
是的,您可以建立專用的以太坊網絡。 我在下面顯示了2節點以太坊專用網絡的步驟。
以下是步驟
步驟0:
安裝和設置geth(即,確保將其添加到path環境變量中)
第1步:
您需要創建一個創世紀文件,其中包含有關難度,氣體限制等的信息。創世文件(genesis.json)的示例如下所示
{
"config": {
"chainId": 2018,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x400",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}
第2步:
使用以下命令設置節點
geth --datadir data1 (or ./path/to/data/directory give the location where you want to store the data) init genesis.json
第三步:
現在我們已經從步驟2中設置了節點,讓我們使用以下命令啟動節點
geth --datadir data1 (path to the data directory you have given in **Step 2**) --nodiscover --networkid 123456 (give something that is unique and not either of 0,1, 2 or 3 as these are already predefined networks in ethereum) console
擁有--nodiscover標志非常重要,這樣該節點就不會對公眾開放。
**第四步: **
如果您想了解有關節點的詳細信息(到步驟3命令,現在您應該已經進入以太坊節點外殼),請輸入此命令,您將獲得剛剛設置的節點的所有詳細信息。
$ admin.nodeInfo
步驟5:
$ personal.newAccount()//這將創建一個新的以太坊賬戶,但默認情況下將被鎖定。 從該帳戶發送交易時,請確保按此密碼輸入密碼。
讓我們設置另一個節點(節點2)並連接到節點1。
**步驟6:**
注意:在本例中,我們將對節點1和節點2使用同一台計算機。
讓我們使用以下命令在節點2中啟動geth
$ geth --datadir data2 init genesis.json
步驟7:
讓我們使用以下命令啟動在步驟6中設置的節點
$ geth --datadir blkchain2 --nodiscover --networkid 1234 --port 60606 console
注意:我們必須在此處指定端口,因為默認端口已被節點1占用。
步驟8:
通過步驟7,您應該位於以太坊節點控制台中。 運行以下命令以了解剛剛開始運行的節點2的詳細信息。
> admin.nodeInfo
步驟9:
讓我們使用以下命令在節點2中創建一個新帳戶
> personal.newAccount()
步驟10:
現在連接兩個節點。
當我們較早在node1和node2中都運行命令admin.nodeInfo時,我們看到名為enode的鍵,其格式如下。
enode://ENODE@IP:PORT
如果您想知道如何創建enode,請查看benjamin的令人敬畏的回復
復制這兩個enode地址,並分別在節點1和節點2控制台上運行以下命令。
> admin.addPeer("enode of node1"); // run in console of node 1
> admin.addPeer("enode of node2"); // run in console of node 2
現在,這兩個節點都是專用網絡的一部分,您可以彼此交互。
步驟11:
作為驗證,讓我們在節點1上進行挖掘,並查看其在節點2上的體現。
轉到節點1的控制台並運行以下命令
> miner.start(1)
上面的命令會很冗長,因為您應該觀察到的一個重要字段是blockheight(或塊編號)。
現在,轉到節點2並運行以下命令,以查看所開采的塊現在顯示在節點2中。
eth.getBlockNumber
現在,您應該看到在節點1中挖掘的塊已成功傳播到節點2。
因此,我們現在就此結束。
有任何問題隨時問我。
PS 1:對於不同版本的Web3,您使用的某些命令可能會有所不同,但在較高級別上,這些內容應該基本保持不變。
PS 2:如果要連接在計算機1中運行的節點1和在計算機2中運行的節點2,則只需運行相同的節點。 但是,也許您需要正確驗證節點1的enode。此外,您可能需要調整防火牆以允許雙向事務流。
你當然可以。 如果您正在尋找一種簡單快速的方法來引導私有以太坊網絡,建議您使用雲模板解決方案,例如Microsoft Azure的以太坊授權證明聯盟 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.