Private-Blockchain

關於乙太坊私有區塊鍊網路

  • December 16, 2017

我試圖了解私有區塊鍊網路概念是如何工作的。

設想:

  • 假設我有兩個節點連接到網際網路但不在同一個網路中
  • 在使用 geth 的第一個節點上,我使用新的 genesis 配置進行初始化
  • 然後我啟動第一個節點,網路 ID 設置為 5501
  • 現在在第二個節點上,我沒有初始化任何創世配置
  • 只需啟動具有相同網路 ID 即 5501 的第二個節點 geth
  • 如您所見,我使用以 5 開頭的網路 ID,因此區塊鏈在專用網路中啟動

問題:

  • 第二個節點會作為對等節點與第一個節點連接並成為該私有區塊鏈的一部分嗎?
  • 如何創建一個只有獲得批准才能加入的私有區塊鍊網路,還是我的想法錯了

私有區塊鏈 每個人都是平等的,可以探勘交易。基本上你需要與對方共享你的創世塊,一旦他們初始化他們的鏈,你必須將他們的 enode 地址添加為對等方。

許可區塊鏈 許可內置於您的區塊鏈客戶端中,您可以在其中根據對方的加密資訊決定他們將擁有什麼訪問權限。Monax、Hyperledger Fabric、jpmorgan quorum 是許可鏈的一些範例。根據您的評論,您正在嘗試創建一個私有區塊鏈。

  1. 將節點 A 中的區塊鏈初始化為 geth –datadir geth_data init genesis.json 注意:創世塊中的 Alloc 部分應為空 這將在數據目錄中初始化您的鏈。
  2. 現在再次啟動geth,這次沒有init geth –datadir geth_data –port 54259 控制台

注意,一旦 geth 在控制台模式下啟動,啟用個人 API 並創建您的第一個帳戶,在您的 genesis alloc 塊中為您的帳戶播種一些乙太。要通過控制台添加對等點,您應該啟用管理 API。

  1. 使用命令獲取節點 A 的 enode 地址

admin.nodeInfo.enode

“enode://fc542dd3209dd73da7b4282990e1ad39ad9d61d772bc844d416d58ae97bdbb02aa40f65 5f7565276dab552e9cc363376a6e76ebbf08f7f665b9b9d4d188b

$$ :: $$:54259"

更換

$$ :: $$使用您的節點 A 的 IP。現在您已準備好連接到另一個節點 B。 4.在節點B,保持你的genesis.json,你的A節點的enode地址方便。使用您從 A 獲得的創世塊初始化鏈。

初始化後,您可以檢查任何一台機器是否有任何對等機

admin.peers

$$ $$

  1. 然後添加節點B,節點A

admin.addPeer(“enode://a979fb575495b8d6db44f750317d0f4622bf4c2aa3365d6af7c284339968eef29b69ad0dce72a4d8db5ebb4968de0e3bec910127f134779fbcb160cb6d332.3”)

完成此操作後,兩個節點現在已連接,並將接收在 A 或 B 中發生的任何契約或事件。

您可以通過以下方式進行檢查,

admin.peers

  1. 請注意,節點之間的這種聯繫只會持續到其中一個節點出現故障。使連結永久化-將節點添加為靜態對等點。
  2. 創建一個文件 static_nodes.json 並將其放置在您的數據目錄中。請參考以下連結。

參考 -

https://github.com/ethereum/go-ethereum/wiki/Connecting-to-the-network 如何使用 static-nodes.json /trusted-nodes.json 防止私網連接失去? https://github.com/ethereum/go-ethereum/wiki/Management-APIs

引用自:https://ethereum.stackexchange.com/questions/13232