日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu搭建联盟链,实现节点之间数据同步

發布時間:2023/12/13 Ubuntu 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu搭建联盟链,实现节点之间数据同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 安裝go環境

  • 從參考鏈接選擇Linux版本的go的安裝包?

  • 使用命令? mv go(Tab補全)/usr/local? 移動go安裝包到/usr/local目錄下
  • 使用命令解壓? sudo tar -xvzf go(Tab補全)?
  • 配置環境?
    • sudo gedit ~/.profile??
    • export PATH=$PATH:/usr/local/go/bin
    • 激活生效??source ~/.profile
  • 驗證?go version 如果輸出結果類似?go version go1.14.2 linux/amd64 表示安裝成功

參考鏈接

  • 如何在 Ubuntu 20.04 上安裝 Go - 云+社區 - 騰訊云
  • Downloads - go.dev? 官網下載安裝包

安裝以太坊Geth

  • 安裝之前需要確保已經安裝了git
    • sudo apt-get update
    • sudo apt-get install git
    • 查看安裝是否成功
      • git --version
  • 安裝Geth
    • sudo apt-get install software-properties-common
    • sudo add-apt-repository -y ppa:ethereum/ethereum
    • sudo apt-get update
    • sudo apt-get install ethereum
    • 查看安裝是否成功
      • geth --help

參考鏈接

  • Ubuntu18.04下安裝geth_KaryDean的博客-CSDN博客

搭建聯盟鏈

  • 聯盟鏈使用私有化部署,只有使用同一個創世區塊才可以加入到同一個組織內部,創世區塊信息寫在一個json格式的配置文件中
  • 使用genesis.json 對其進行命名
  • 前提操作
  • genesis.json文件內容如下,直接拷貝復制即可
{"config": {"chainId": 666999, "homesteadBlock": 0,"eip150Block": 0,"eip155Block": 0,"eip158Block": 0},"alloc" : {},"coinbase" : "0x0000000000000000000000000000000000000000","difficulty" : "0x20000","extraData" : "","gasLimit" : "0x2fefd8","nonce" : "0x0000000000000042","mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000","parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000","timestamp" : "0x00" }
  • 參數解釋

  • 注意事項,我參考好多文章都缺失eip150Block:0這一句,這會出現錯誤。
  • 報錯情況為Failed to wirte genesis block:unsupported ordering

新的方案

  • 在/home/chy-cpabe/Test_chain_ipfs/文件夾下面創建chain-first和chain-second兩個文件夾
  • 將這兩個節點組合在一起構成聯盟鏈
  • 在chain-first和chain-second文件夾下面各自創建chaindata文件夾用于數據存儲,和存儲同一份genesis.json文件,將chainid設置為一樣的
  • 分別進行初始化操作
  • –datadir:指定區塊鏈數據的存儲位置;這個需要大家根據實際的情況進行調整,進行自己路徑的替換
  • --networkid:指定創世腳本中的chainId
  • ?啟動運行? 初始化的命令
geth --datadir "/home/chy-cpabe/Test_chain_ipfs/chain-first/chaindata" init "/home/chy-cpabe/Test_chain_ipfs/chain-first/genesis.json" geth --datadir "/home/chy-cpabe/Test_chain_ipfs/chain-second/chaindata" --networkid 666999 --port 30306 console 2>output.log

  • 啟動節點
geth --datadir "/home/chy-cpabe/Test_chain_ipfs/chain-first/chaindata" --networkid 666999 --port 30303 console 2>output.log geth --datadir "/home/chy-cpabe/Test_chain_ipfs/chain-second/chaindata" --networkid 666999 --port 30306 console 2>output.log

  • 查看進程
  • 使用命令 ps aux | grep "geth"? 查看當前的geth進程
  • 使用命令 sudo kill -9 進程ID即可殺死進程

?為兩個節點都進行用戶的創建

  • personal.newAccount():創建賬戶
  • eth.accounts:枚舉系統中的賬戶;

  • admin.peers? 查看節點的peers的情況?
  • 通過分享enode地址的方式來讓兩個節點建立鏈接? 使用命令?admin.nodeInfo.enode
  • 通過上面命令,我們獲得了節點的encode信息。encode信息主要用于連接到不同節點,在這些不同的節點它們能夠分享交易和成功挖掘信息。

?聯盟鏈互通

  • 使用命令admin.addPeer添加分享enode地址的方式來讓兩個節點建立鏈接?
  • ?admin.addPeer("enode://5dac7e1cbe892387f5ff403b5b79f4235789ba322fbc69f128ff5e5ef78c1475440e48444a6a39582d3742124647877dd7c4b75eceb746917b3cb0de433e5c97@127.0.0.1:30306")
  • 返回true表示鏈接成功
  • 在兩個節點的終端輸入 admin.peers 查看互聯的節點信息,具體輸入內容如下

交互式執行環境

  • 這是一個交互式的 JavaScript 執行環境,在這里面可以執行 JavaScript 代碼,其中 > 是命令提示符。在這個環境里也內置了一些用來操作以太坊的 JavaScript 對象,可以直接使用這些對象。這些對象主要包括:
  • eth:包含一些跟操作區塊鏈相關的方法;
  • net:包含一些查看p2p網絡狀態的方法;
  • admin:包含一些與管理節點相關的方法;
  • miner:包含啟動和停止挖礦的一些方法;
  • personal:主要包含一些管理賬戶的方法;
  • txpool:包含一些查看交易內存池的方法;
  • web3:包含了以上對象,還包含一些單位換算的方法。

?常用命令:

  • personal.newAccount():創建賬戶;
  • personal.unlockAccount():解鎖賬戶;
  • eth.accounts:枚舉系統中的賬戶;
  • eth.getBalance():查看賬戶余額,返回值的單位是 Wei(Wei 是以太坊中最小貨幣面額單位,類似比特幣中的聰,1 ether = 10^18 Wei);
  • eth.blockNumber:列出區塊總數;
  • eth.getTransaction():獲取交易;
  • eth.getBlock():獲取區塊;
  • miner.start():開始挖礦;
  • miner.stop():停止挖礦;
  • web3.fromWei():Wei 換算成以太幣;
  • web3.toWei():以太幣換算成 Wei;
  • txpool.status:交易池中的狀態;
  • admin.addPeer():連接到其他節點;

獲取完整節點地址

  • 但是執行這個命令之后, 無法進入JavaScript console終端,使用其余命令進入終端

?

參考鏈接

  • 區塊鏈以太坊學習筆記_xpj55975的博客-CSDN博客
  • https://www.i4k.xyz/article/qq_42532598/109333344
  • 以太坊之Metamask錢包(Metamask簡介,安裝,使用,導入賬戶,挖礦,轉賬)_Rose J 的博客-程序員宅基地_metamask - 程序員宅基地

參考鏈接

  • 以太坊如何搭建私有連聯盟鏈_程序新視界-CSDN博客_以太坊搭建聯盟鏈教程
  • 以太坊搭建聯盟鏈詳細教程_weixin_34183910的博客-CSDN博客
  • 以太坊聯盟鏈-多節點私鏈搭建手冊【附源碼】_暗黑魔君_51CTO博客
  • 自己動手部署以太坊聯盟鏈 - 掘金
  • https://www.i4k.xyz/article/qq_42532598/109333344
  • 以太坊私有鏈 使用dev模式_CHYabc123456hh的博客-CSDN博客
  • 基于Mac環境搭建以太坊私有區塊鏈進行挖礦模擬_CHYabc123456hh的博客-CSDN博客_mac挖礦eth
  • https://github.com/xianfeng92/Love-Ethereum/blob/master/notes/%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E9%83%A8%E7%BD%B2%E4%BB%A5%E5%A4%AA%E5%9D%8A%E8%81%94%E7%9B%9F%E9%93%BE.md
請使用手機"掃一掃"x

總結

以上是生活随笔為你收集整理的Ubuntu搭建联盟链,实现节点之间数据同步的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。