主页 > imtoken官方版下载安卓最新版 > Hyperledger Besu 快速入门教程【企业以太坊】
Hyperledger Besu 快速入门教程【企业以太坊】
Besu 是 Hyperledger 中的企业级以太坊产品以太坊浏览器,其最大的优势在于兼容以太坊主网。 本教程介绍如何使用Hyperledger Besu快速启动企业以太坊网络并使用JSON RPC进行数据查询和交易提交,以及如何使用Truffle开发企业以太坊DApp并使用内置工具进行数据调试和运维监控.
1.启动企业以太坊网络
以太坊教程推荐:
首先克隆 Besu 的 quickstart 存储库的源代码:
git clone https://github.com/PegaSysEng/besu-quickstart.git
然后进入besu-quickstart目录,执行如下命令构建besu的docker镜像:
./run.sh
上面的命令将构建 docker 镜像并启动 4 个容器来模拟具有 6 个 besu 节点的企业以太坊网络。 当脚本执行完成后,可以看到如下输出信息:
*************************************
Besu Quickstart
*************************************
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
以及访问端点列表:
****************************************************************
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
****************************************************************
要再次显示访问端点,请使用以下命令:
./list.sh
2.使用企业以太坊区块浏览器
在本教程中我们使用 Alethio 轻量级以太坊浏览器,您也可以使用 EthScan。
在浏览器中打开上述web block explorer端点中列出的地址,即可查看企业以太坊网络中的区块数据。
在区块浏览器中可以看到有6个besu节点:4个普通节点,1个出块节点,1个引导节点。
点击最佳区块右侧的区块编号,可以显示该区块的详细数据:
点击左上角的放大镜可以搜索区块、交易哈希或以太坊地址:
3.监控Besu节点运行状态
可以使用Prometheus、Grafana等运维监控工具可视化节点的健康状态和运行情况。 参考前面给出的访问端点,直接在浏览器中访问这些工具。 例如使用 Grafana:
4.使用JSON-RPC访问Besu节点
Besu 支持标准的以太坊 JSON-RPC API 接口。 例如使用curl调用web3_clientVersion命令查看节点的版本:
curl -X POST --data '{
"jsonrpc":"2.0",
"method":"web3_clientVersion",
"params":[],
"id":1
}'
表示上面列出的访问端点的地址,需要根据自己的实际情况进行替换,例如:32768/jsonrpc。 上述命令的返回结果类似如下:
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "besu/"
}
或者使用net_peerCount命令查看节点连接的Peer数量:
curl -X POST --data '{
"jsonrpc":"2.0",
"method":"net_peerCount",
"params":[],
"id":1
}'
结果如下:
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x6"
}
或者使用 eth_blockNumber 查看最新的区块号:
curl -X POST --data '{
"jsonrpc":"2.0",
"method":"eth_blockNumber",
"params":[],
"id":1
}'
结果如下:
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x8b8"
}
5.使用MetaMask创建企业以太坊交易
在发送企业以太坊交易之前,我们需要先创建一个账户,或者使用在这个私有网络的创世配置中声明的几个账户:
账户1:也是币基地址
Address: 0xfe3b557e8fb62b89f4916b721be55ceb828dbd73
Private key : 0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63
Initial balance : 0xad78ebc5ac6200000 (200000000000000000000 in decimal)
帐户 2:
Address: 0x627306090abaB3A6e1400e9345bC60c78a8BEf57
Private key : 0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3
Initial balance : 0x90000000000000000000000 (2785365088392105618523029504 in decimal)
帐户 3:
Address: 0xf17f52151EbEF6C7334FAD080c5704D77216b732
Private key : 0xae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f
Initial balance : 0x90000000000000000000000 (2785365088392105618523029504 in decimal
登录MetaMask后,链接到我们搭建的Besu网络的一个节点,就可以创建交易了。
6、基于Besu网络的Truffle宠物店Demo
要运行 Truffle 的 Pet Shop 演示以太坊浏览器,首先我们需要安装 truffle 和 pet-shop 模板,然后我们需要对 Besu 的企业以太坊网络进行一些简单的调整。
首先安装松露:
npm install -g truffle
然后创建 pet-shop-tutorial 目录并移入其中:
mkdir pet-shop-tutorial
cd pet-shop-tutorial
然后解压缩 Truffle 的宠物店盒子:
truffle unbox pet-shop
安装松露钱包:
npm install --save @truffle/hdwallet-provider
接下来修改pet-shop-tutorial目录下的truffle-config.js文件,添加我们的wallet provider。 请参考以下修改:
const PrivateKeyProvider = require("truffle-hdwallet-provider");
const privateKey = "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63";
module.exports = {
// See
// 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, ""),
network_id: "*"
},
}
};