IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 使用For Java的Hyperledger Besu部署以太坊的私有链 -> 正文阅读

[区块链]使用For Java的Hyperledger Besu部署以太坊的私有链

Besu参考文档:Using Ethash (Pow) - Hyperledger Besu
本文章依据环境:OpenJdk 16、Besu 21.1.7、Windows

1、安装Java环境

注意要求Java11以上,可以使用OpenJdk,Download the Microsoft Build of OpenJDK | Microsoft Docs
点下一步就行了

2、安装Besu

参考文档:Install Binary Distribution - Hyperledger Besu、下载地址Releases · hyperledger/besu · GitHub

  • Linux/Mac的二进制编译过程请参考GitHub,因为我只有Windows环境的机器,此处不做介绍了,如有问题可以留言
  • Windows版本在GitHub的release中提供了批处理脚本的版本,如图,上方的地址是Windows版的,可以直接配置环境变量就可使用besu命令;下方是二进制源码,需要编译
    在这里插入图片描述

3、创建目录

  • 创建目录data,每个节点都需要区块链数据的数据目录,节点启动时,Besu 会保存目录中的节点密钥。
  • 创建目录config方便管理配置文件和创世文件等

4、编辑创世文件

  • 编辑创世文件(privateNetworkGenesis.json),创世文件定义区块链的起源块(即区块链的开始)。创世文件包括用于配置区块链的条目,例如采矿难度、初始帐户和余额。
    网络中的所有节点都必须使用相同的创世文件。链ID 默认为起源文件中的chainID。能够快速块挖掘。详细请参考:Create Besu Genesis File - Hyperledger Besu
{
  "config": {
      "constantinoplefixblock": 0,
      "ethash": {
        "fixeddifficulty": 1000
      },
       "chainID": 21066
   },
  "nonce": "0x42",
  "gasLimit": "0x1000000",
  "difficulty": "0x10000",
  "alloc": {
    "fe3b557e8fb62b89f4916b721be55ceb828dbd73": {
      "privateKey": "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63",
      "comment": "private key and this comment are ignored.  In a real chain, the private key should NOT be stored",
      "balance": "0xad78ebc5ac6200000"
    },
    "f17f52151EbEF6C7334FAD080c5704D77216b732": {
      "privateKey": "ae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f",
      "comment": "private key and this comment are ignored.  In a real chain, the private key should NOT be stored",
      "balance": "90000000000000000000000"
    }
  }
}
# Valid TOML config file 数据目录
data-path="C:/Users/Administrator/Documents/ethlink/data" # Path

# Chain 创世文件
genesis-file="C:/Users/Administrator/Documents/ethlink/config/SKC-privateNetworkGenesis.json" # Path to the custom genesis file

# Mining 开启挖矿
miner-enabled=true
# miner-coinbase="0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
# 发放奖励指定账户
miner-coinbase="0x0000000000000000000000000000000000000000"

# 以下3块(p2p\rpc\ws)的host注意设置本机可访问的内外网IP
p2p-host="192.168.1.11"
p2p-port=30301
max-peers=42
# 第一次启动先注释掉,启动之后复制enodeURL配置好在打开注释,引导节点也是需要这样做,配置自己的enodeURL即可
bootnodes=["enode://3bf8bcebb……2d@192.168.1.11:30301"]

# RPC 接口配置
rpc-http-enabled=true
rpc-http-host="192.168.1.11"
rpc-http-port=2828
rpc-http-cors-origins=["all"]

# WS请求配置
rpc-ws-enabled=true
rpc-ws-host="192.168.1.11"
rpc-ws-port=2829

host-allowlist=["*"]

# 用于远程管理 管理方法需要添加ADMIN支持
rpc-http-api=["ADMIN","ETH","NET","WEB3"]

# 用于调试
logging="DEBUG"

miner-coinbase:挖掘并指定帐户(0x0……为链的第一个用户)以支付采矿奖励

5、启动服务

引导节点使用如上配置文件(privateNetworkConfig.json)启动,将第一个节点作为引导节点启动,并复制保留enodeURL备用

besu --config-file=config/privateNetworkConfig.json

节点启动时,enode URL 会显示。复制 enode URL,在以下步骤中指定节点-1作为引导节点。
在这里插入图片描述

enode://437876735f755774……c349cd708a63c9c26@192.168.1.221:30301

6、加入新节点

将引导节点中的区块创世文件(privateNetworkGenesis.json)复制到新的节点服务器上,仅使用同一个创世文件即可,网络配置使用命令参数就够了,不用单独配置文件了,执行以下命令

besu --data-path=data --genesis-file=config/privateNetworkGenesis.json --bootnodes=enode://3bf8bcebbd……6ef5c611528fa9da4@192.168.1.221:30301 --p2p-host='192.168.1.222' --p2p-port=30302
  • data-path:数据目录
  • genesis-file:创世文件
  • bootnodes:引导节点的enodeURL
  • p2p-host:每个节点可访问的外部IP,用于被引导节点发现
  • p2p-port:每个节点有自己的端口,用于被引导节点发现,各节点不可重复

7、测试网络可用

可使用PostMan或curl等方式,POST请求引导节点地址使用RPC端口:
如:192.168.1.221:2828
请求体(method参考官方API:Besu API Methods - Hyperledger Besu):{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}

部署在公网注意事项

  1. 建议两个引导节点或以上,参考:Configure Bootnodes - Hyperledger Besu
  2. 保护enode信息安全
  3. 各节点由于需要相互通信所以需要适当对外暴露地址及端口,所以一定要配置好防火墙,保证节点网络安全
  4. 其余注意事项可详见官方文档的各处提示。

至此一个多节点的私链就部署完成了,链的地址就是引导节点的地址,可以进行合约发布、Dapp开发了;
如有疑问欢迎留言~~

接下来会搭建本地开发环境以及编写代币合约并部署到私链

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:35:35  更:2021-07-10 14:36:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:45:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计