使用IBFT2在亚马逊Web Services上搭建Hyperledger Besu

  • 时间:
  • 浏览:22
  • 来源:区块链技术网

本文我将使用IBFT2共识算法创建一个私有区块链。使用VPC和专用/公用子网,创建8个类型为t2.micro的EC2实例。两个实例将在专用子网中使用,其余实例将在公共子网中使用。

1. 设置VPC。

2. 创建一个安全组。

3. 在专用子网上安装bootnodes。

4. 在公共子网上安装节点。

设置VPCVPC用于为私有区块链部署隔离的实例。虚拟私有云(VPC)是在公共云环境中分配的按需配置的共享计算资源池,可在使用资源的不同组织之间提供一定程度的隔离。在创建实例之前,我需要初始化它们之间的通信。因此我将为VPC创建一个安全组。创建安全组:安全组是实例之间通信的规则列表。就我而言,我将使用这些规则

在PEGASYS网站上找到了上述端口。这是besu网络所需的所有端口。不要忘记为SSH添加端口22。现在我将在私有子网上创建两个实例作为引导节点。

访问专用子网专用子网是没有链接到互联网网关的路由的子网。因此无法对其实例进行SSH。为了能够在您的实例上运行命令,您可以使用AWS Systems Manager会话管理器或AWS Systems Manager运行命令,但我认为最快最简单的SSH实例方式是从公共子网上的另一个实例访问它, 使用“ ncat”打开端口22。命令为:IP打开端口22:

ncat--sh-exec"ncatPRIVATE.SUBNET.IP22"-l2222&然后,您需要将keypair.pem文件复制到公共实例中,然后像通常在本地计算机上一样运行ssh命令。
ssh-i"keyname.pem"ubuntu@10.0.0.24现在我已经访问了这个实例,并且可以安装bootnode。我将首先下载并安装Hyperledger Besu。然后我再ibft2配置为共识算法。以下命令摘自官方文档和PEGASYS网站。请注意,这些命令是所有节点的标准配置。

sudoapt-getupdate&&sudoapt-getinstallopenjdk-11-jdkwgethttps://bintray.com/api/ui/download/hyperledger-org/besu-repo/besu-1.3.6.tar.gzsudomkdir-p/opt/besu/sudochown-R$USER:$USER/opt/besu/tar-C/opt/besu/-xvfbesu-1.3.6.tar.gzcd/opt/besu/touchibftConfigFile.json使用nano命令打开ibftCongfigFile.json

nanoibftConfigFile.json然后

{"genesis":{"config":{"chainId":2018,"constantinoplefixblock":0,"ibft2":{"blockperiodseconds":2,"epochlength":30000,"requesttimeoutseconds":10}},"nonce":"0x0","timestamp":"0x58ee40ba","gasLimit":"0x47b760","difficulty":"0x1","mixHash":"0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365","coinbase":"0x0000000000000000000000000000000000000000","alloc":{"fe3b557e8fb62b89f4916b721be55ceb828dbd73":{"privateKey":"8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63","comment":"privatekeyandthiscommentareignored.Inarealchain,theprivatekeyshouldNOTbestored","balance":"0xad78ebc5ac6200000"},"627306090abaB3A6e1400e9345bC60c78a8BEf57":{"privateKey":"c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3","comment":"privatekeyandthiscommentareignored.Inarealchain,theprivatekeyshouldNOTbestored","balance":"90000000000000000000000"},"f17f52151EbEF6C7334FAD080c5704D77216b732":{"privateKey":"ae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f","comment":"privatekeyandthiscommentareignored.Inarealchain,theprivatekeyshouldNOTbestored","balance":"90000000000000000000000"}}},"blockchain":{"nodes":{"generate":true,"count":4}}}使用besu命令为节点生成密钥

besu-1.3.6/bin/besuoperatorgenerate-blockchain-config--config-file=ibftConfigFile.json--to=networkFiles--private-key-file-name=key移动genesis.json文件
mvnetworkFiles/genesis.json/opt/besu/然后创建一个文件夹名数据以添加节点的公钥和私钥

mkdirkeysmvnetworkFiles/keys/0x......./keykeys/mvnetworkFiles/keys/0x......./key.pub/keys/好的,就是这样!我们已经安装了besu网络,现在该节点可以使用了。

初始化BootnodeBootnode是由区块链创建的第一个节点,用于帮助其他对等节点找到您的区块链。初始化Bootnode

besu-1.3.6/bin/besu--data-path=data--genesis-file=./genesis.json--rpc-http-enabled--rpc-http-api=IBFT--rpc-http-host=0.0.0.0--host-whitelist="*"--rpc-http-cors-origins="all"--metrics-enabled--metrics-host=0.0.0.0--metrics-port=9545--p2p-host=10.0.0.24&(别忘了在--p2p主机上添加自己的私人地址)您可以在文档中找到相同的命令。我刚把p2p主机改成了私有IP。运行此命令后,需要搜索此行:
2020-03-2818:21:47.836+00:00|main|INFO|DefaultP2PNetwork|EnodeURLenode://d357bdefa4e6f6bdf99020707194823acd0f3d808ef259f47616a4154a7b4d8007b0573d6ebc02cb378f2f5f279205d2e537279a5987ef2a752733cd9cc2a5a1@10.0.0.24:30303其他节点将使用Enode URL与您建立联系。好的,现在我们完成了。您可以根据需要创建任意数量的引导节点。通常是生产环境中的2个引导节点。然后,对于公共子网上的实例,您将重复相同的过程,除了最后一步,您将使用Enode URL。
besu-1.3.6/bin/besu-->file=./genesis.json--node-private-key-file=/opt/besu/keys/key--bootnodes=enode://ca6c54e4be70c38abbc2d05c4eaafcc057b9e38db33feb67a95ef37a7a5fcccde814e90573193a204502b8948336741fc5a47405a69a2a77f911245671f81c23@10.0.0.24:30303--rpc-http-enabled--rpc-http-host=0.0.0.0--host-whitelist="*"--rpc-http-api=ETH,NET,IBFT--rpc-http-cors-origins="all"--metrics-enabled--metrics-host=0.0.0.0--metrics-port=9545--p2p-host=10.0.2.141&(不要忘记在--p2p-host上添加您自己的私人地址)现在您要做的就是使用scp将“ besu”目录从第一个实例复制到其他实例。
scp-ibesuvalidatornode.pem-rubuntu@10.0.0.24:/opt/besu/data/opt/besu不幸的是,仅使用两个节点就无法实现拜占庭容错(尽管有节点,但仍能够正常运行并达成共识)。

改进之处

1. 最明显的是,与“ t2.micro”相比,增加实例数量或使用更好的实例类型。

2. 使用Orion作为私人交易管理员.它生成并维护私有/公共密钥对,提供用于在Orion节点之间通信的API和用于与以太坊客户端等通信的API。

3. 或者您可以在Docker上使用Besu。在Docker上使用Besu您需要做的就是运行此命令。然后,您将在实例上运行带有Orion的IBFT2。

./run-privacy.sh-cibft2Besu示例网络容器为您提供了运行所有类型算法的许多选择。您需要自定义容器,以便仅拥有所需容器并避免浪费资源。如果您运行上面的命令,它将创建4个节点:第一个节点是一个引导节点,其他依赖于该节点。因此,如果bootnode发生故障,所有其他节点都会失败。为了在生产中使用Besu示例网络,您需要通过添加另一个引导节点并为其创建三个其他节点来修改filedocker-compose_poa.yml文件。好了,到此结束。相关文章阅读:区块链研究实验室|发现Hyperledger Besu和权限证明(POA)的秘密感谢大家的观看,点赞与分享。点击我参与现金抽奖。

猜你喜欢

Web3.0的世界应该是什么样的

Web 3.0,或者可以被称为”后斯诺登“网络,是对我们已经使用网络的那些东西的重新想象,但对各方之间的交互有着根本不同的模式。我们认为是公开的信息,我们就会发布。我们假设信息是一致的,我们将其放在一个共识帐本上。那些我们认为是隐私的信息,我们会保守秘密,从不透露。通信总是在加密的通道上进行,并且只以匿名身份作为端点;从不使用任何可追踪的东西(如 IP 地址)。

2022-01-06

用 Arweave 构建 Web3 应用

本文介绍一下如何构建web3应用,目的是让开发者熟悉在不断增长的web3空间开发的协议、工具和最佳实践。Building on web3将关注web3生态系统中的新兴技术和项目,以帮助dapp开发者创造一个成功的秘诀。

2022-01-06

因为Web3.0,推特创始人被自己的投资人拉黑了

每一个加密世界的原住民,应该都对 Web3.0 这一概念并不陌生。Web3.0 概念通常指将所有数据和内容都留存在链上、并由用户所拥有的下一代互联网,支持者们认为这有助于我们建立一个更加去中心化、对用户更友好的环境,并可有效的反击中心化的互联网垄断巨头。

2021-12-24

比特币与 Web3 之战仍在继续

当然,这一切可能会在未来几周内烟消云散。但Dorsey和Andreessen的争吵也有可能加深比特币纯粹主义者和Web3布道者之间的分歧,这种分歧可能会在未来几年塑造加密领域的格局。

2021-12-23

加密公司高管阐释Web3.0

6位加密货币公司包括 Bitfury 、Stellar和两家交易所FTX 、Coinbase以及稳定币发行商 Circle 和 Paxos 的高管出席听证会,并回答了近40名议员的提问。

2021-12-09