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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hyperledger Besu企业以太坊快速教程

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hyperledger Besu企业以太坊快速教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hyperledger Besu企業以太坊快速教程

?發表于?2020-01-17?|??分類于?以太坊

Besu是Hyperledger中的企業以太坊產品,其最大優勢在于兼容以太坊主網。 本教程介紹如何使用Hyperledger Besu快速啟動一個企業以太坊網絡并利用 JSON RPC進行數據查詢和交易提交,以及如何使用Truffle開發企業以太坊 DApp并使用內置的工具進行數據調試和運維監控。

1、啟動企業以太坊網絡

以太坊教程推薦:?Dapp入門?|?電商Dapp實戰?|?Token實戰?|?Php對接?|?Java對接?|?Python對接?|?C#對接?|?Dart對接

首先克隆Besu的quickstart倉庫的源代碼:

1 git clone https://github.com/PegaSysEng/besu-quickstart.git

然后進入besu-quickstart目錄,執行如下命令構建besu的docker鏡像:

1 ./run.sh

上面的命令會構建docker鏡像并啟動4個容器來模擬一個 包含6個besu節點的企業以太坊網絡。當腳本執行完成后,你可以看到如下 輸出信息:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ************************************* Besu Quickstart <version> ************************************* List endpoints and services ----------------------------------Name Command State Ports --------------------------------------------------------------------------------------------------------- besu-quickstart_bootnode_1 /opt/besu/bootnode_sta ... Up 30303/tcp, 8545/tcp, 8546/tcp besu-quickstart_explorer_1 nginx -g daemon off; Up 0.0.0.0:32768->80/tcp besu-quickstart_grafana_1 /run.sh Up 3000/tcp besu-quickstart_minernode_1 /opt/besu/node_start.s ... Up 30303/tcp, 8545/tcp, 8546/tcp besu-quickstart_node_1 /opt/besu/node_start.s ... Up 30303/tcp, 8545/tcp, 8546/tcp besu-quickstart_node_2 /opt/besu/node_start.s ... Up 30303/tcp, 8545/tcp, 8546/tcp besu-quickstart_node_3 /opt/besu/node_start.s ... Up 30303/tcp, 8545/tcp, 8546/tcp besu-quickstart_node_4 /opt/besu/node_start.s ... Up 30303/tcp, 8545/tcp, 8546/tcp besu-quickstart_prometheus_1 /bin/prometheus --config.f ... Up 9090/tcp besu-quickstart_rpcnode_1 /opt/besu/node_start.s ... Up 30303/tcp, 8545/tcp, 8546/tcp

以及訪問端結點列表:

1 2 3 4 5 6 7 8 **************************************************************** JSON-RPC HTTP service endpoint : http://localhost:32768/jsonrpc JSON-RPC WebSocket service endpoint : ws://localhost:32768/jsonws GraphQL HTTP service endpoint : http://localhost:32768/graphql Web block explorer address : http://localhost:32768 Prometheus address : http://localhost:32768/prometheus/graph Grafana address : http://localhost:32768/grafana-dashboard ****************************************************************
  • JSON-RPC HTTP服務用于DApp或Metamask錢包的訪問
  • JSON-RPC WebSocket服務用于DApp通過websocket訪問節點
  • GraphQL HTTP服務用于DApp或Metamask錢包的訪問節點的GraphQL服務
  • Web區塊瀏覽服務用于瀏覽區塊,在你的瀏覽器中輸入該地址即可
  • Prometheus服務用于為Prometheus儀表盤提供指標數據
  • Grafana服務用于為Grafana儀表盤提供數據

要再次顯示訪問端結點,可以使用如下命令:

1 ./list.sh

2、使用企業以太坊區塊瀏覽器

在本教程中我們使用Alethio輕量級以太坊瀏覽器,你也可以使用EthScan。

在你的瀏覽器中打開前面提到的web block explorer endpoint列出的地址,就可以 查看企業以太坊網絡中的區塊數據了。

可以在區塊瀏覽器中看到有6個besu節點:4個普通節點、1個出塊節點和一個引導節點。

點擊?Best Block?右側的區塊號就可以顯示該區塊的詳細數據:

點擊左上角的放大鏡,就可以搜索區塊、交易哈希、或以太坊地址:

3、監視Besu節點的運行狀況

可以使用Prometheus和Grafana這些運維監視工具來可視化節點的健康狀態 和運行情況。參考前面給出的訪問端結點,可以在你的瀏覽器中直接訪問這些工具。 例如使用Grafana:

?

4、使用JSON-RPC訪問Besu節點

Besu支持標準的以太坊JSON-RPC API接口。例如使用curl調用web3_clientVersion?命令來查看節點的版本:

1 2 3 4 5 6 curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1 }' <http-rpc-endpoint>

其中<http-rpc-endpoint>表示前面列出的訪問端結點的地址,你需要 根據自己的實際情況替換,例如http://localhost:32768/jsonrpc。 上面命令的返回結果類似如下:

1 2 3 4 5 {"jsonrpc" : "2.0","id" : 1,"result" : "besu/<version number>" }

或者使用net_peerCount命令 查看節點已連接的Peer數量:

1 2 3 4 5 6 curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1 }' <http-rpc-endpoint>

結果如下:

1 2 3 4 5 {"jsonrpc" : "2.0","id" : 1,"result" : "0x6" }

或者使用eth_blockNumber查看 最新的區塊號:

1 2 3 4 5 6 curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1 }' <http-rpc-endpoint>

結果如下:

1 2 3 4 5 {"jsonrpc" : "2.0","id" : 1,"result" : "0x8b8" }

5、使用MetaMask創建企業以太坊交易

在發送企業以太坊交易之前,我們需要先創建一個賬號,或者使用這個私有網絡的 創世配置中已經聲明的幾個賬號:

賬號1 :同時也是幣基地址

1 2 3 Address: 0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 Private key : 0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63 Initial balance : 0xad78ebc5ac6200000 (200000000000000000000 in decimal)

賬號2:

1 2 3 Address: 0x627306090abaB3A6e1400e9345bC60c78a8BEf57 Private key : 0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3 Initial balance : 0x90000000000000000000000 (2785365088392105618523029504 in decimal)

賬號3:

1 2 3 Address: 0xf17f52151EbEF6C7334FAD080c5704D77216b732 Private key : 0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f Initial balance : 0x90000000000000000000000 (2785365088392105618523029504 in decimal

在登錄進MetaMask之后,鏈接到我們建立的Besu網絡的某個節點,然后你就可以 創建交易了。

6、基于Besu網絡的Truffle寵物商店演示

要運行Truffle的Pet Shop演示,首先我們需要安裝truffle及pet-shop模板, 然后還需要針對Besu的企業以太坊網絡進行一些簡單的調整。

首先安裝truffle:

1 npm install -g truffle

然后創建pet-shop-tutorial目錄并進入該目錄:

1 2 mkdir pet-shop-tutorial cd pet-shop-tutorial

然后解壓Truffle的pet-shop box:

1 truffle unbox pet-shop

安裝truffle-wallet:

1 npm install --save @truffle/hdwallet-provider

接下來修改pet-shop-tutorial目錄中的truffle-config.js文件,以便 添加我們的錢包提供器。請參考以下內容進行修改:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 const PrivateKeyProvider = require("truffle-hdwallet-provider"); const privateKey = "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63";module.exports = {// See <http://truffleframework.com/docs/advanced/configuration>// for more about customizing your Truffle configuration!networks: {development: {host: "127.0.0.1",port: 7545,network_id: "*" // Match any network id},quickstartWallet: {provider: () => new PrivateKeyProvider(privateKey, "<YOUR HTTP RPC NODE ENDPOINT>"),network_id: "*"},} };

將?<YOUR HTTP RPC NODE ENDPOINT>替換為你的HTTP RPC訪問端結點, 例如 http://localhost:32770/jsonrpc 。

將privateKey替換為前面的賬戶1,即幣基地址,其中有以太幣。

由于我們使用企業以太坊網絡而不是Ganache仿真器,因此在執行合約 部署時,需要指定網絡:

1 truffle migrate --network quickstartWallet

輸出結果類似如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sing network 'quickstartWallet'.Running migration: 1_initial_migration.jsDeploying Migrations...... 0xfc1dbc1eaa14fa283c2c4415364579da0d195b3f2f2fefd7e0edb600a6235bdbMigrations: 0x9a3dbca554e9f6b9257aaa24010da8377c57c17e Saving successful migration to network...... 0x77cc6e9966b886fb74268f118b3ff44cf973d32b616ed4f050b3eabf0a31a30e Saving artifacts... Running migration: 2_deploy_contracts.jsDeploying Adoption...... 0x5035fe3ea7dab1d81482acc1259450b8bf8fefecfbe1749212aca86dc765660aAdoption: 0x2e1f232a9439c3d459fceca0beef13acc8259dd8 Saving successful migration to network...... 0xa7b5a36e0ebc9c25445ce29ff1339a19082d0dda516e5b72c06ee6b99a901ec0 Saving artifacts...

你可以在區塊瀏覽器中查看上述輸出中的合約地址。

同樣,在執行測試時也要指定使用我們的企業以太坊網絡:

1 truffle test --network quickstartWallet

輸出結果如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Using network 'quickstartWallet'.Compiling ./contracts/Adoption.sol... Compiling ./test/TestAdoption.sol... Compiling truffle/Assert.sol... Compiling truffle/DeployedAddresses.sol...TestAdoption? testUserCanAdoptPet (2071ms)? testGetAdopterAddressByPetId (6070ms)? testGetAdopterAddressByPetIdInArray (6077ms)3 passing (37s)

7、企業以太坊網絡的停止/重啟/清理

使用如下腳本停止Besu構成的企業以太坊網絡,但不刪除dockers容器:

1 ./stop.sh

使用如下命令重新啟動企業以太坊網絡:

1 ./resume.sh

如果要停止網絡并刪除相應的docker容器,使用如下命令:

1 ./remove.sh

原文鏈接:Private Network Quickstart Tutorial?

匯智網翻譯整理,轉載請標明出處

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Hyperledger Besu企业以太坊快速教程的全部內容,希望文章能夠幫你解決所遇到的問題。

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