您是否想了解Hyperledger Besu?如果这样做,那么您来对地方了.
区块链的世界充满了激动人心的项目。为想要使用区块链的公司带来最佳解决方案.
Hyperledger是目前最大的DLT项目之一。这是一个开源协作,旨在尽最大努力来推动区块链技术的发展。在全球范围内,Linux Foundation希望建立一个框架,公司可以在全球范围内遵循该框架。来自各行各业的领导者参加了该项目,包括银行,供应链,制造,金融和技术.
Hyperledger由多个项目组成,包括最受欢迎的Hyperledger Fabric.
认识Hyperledger Besu,这是一个新的开源项目,最近已添加到Hyperledger项目列表中.
什么是Hyperledger Besu?
Hyperledger Besu是第一个正式加入Hyperledger的公共区块链项目。在接管之前,它被称为ConsenSys的万神殿。新成员最初于8月8日被提议加入财团成员.
考虑到我们在财团中有重大项目,包括Hyperledger Fabric和Hyperledger Sawtooth,分别由IBM和Intel支持,这是迈出的一大步.
2019年8月29日,Hyperledger Besu宣布加入该财团。考虑到这是第一个加入Hyperledger的公共区块链,其中只有经过许可的区块链才是其中的一部分,这是一个很大的补充.
那么,什么是Hyperledger Besu?
它是使用Apache 2.0许可证开发的开源以太坊客户端。它也是用Java编写的,并利用以太坊公共网络。使Besu发挥功能的其他关键技术包括Gorli,Rinkeby和Ropsten.
当涉及共识方法时,它利用了权威证明(Clique和IBFT 2.0)和工作证明(Ethash).
总而言之,这是一个出色的解决方案,可让企业在专用网络上构建可扩展的高性能应用程序。而且,它还带有许可和隐私的支持.
什么是以太坊客户端?
如果您已经关注了,您已经知道我们提到Besu是一个以太坊客户。那么,以太坊客户端又是什么呢?让我们来探索.
以太坊客户端是用于实现以太坊协议的软件。简而言之,它可以用来做以下事情:
- 在以太坊区块链中创建执行环境以处理交易
- 持久数据存储,包括存储事务执行
- 启用节点之间的对等(P2P)网络通信
- 提供用于安全开发和区块链交互的API.
Hyperledger Besu可以做什么? Hyperledger Besu用例
为了更好地了解什么是Hyperledger Besu区块链,让我们学习使用Hyperledger Besu网络可以完成的工作.
您将注意到的关于Besu的第一件事是它的命令行界面。它还提供了JSON-RPC API。这两个都可用于监视,调试,维护和运行以太坊网络上的节点.
简而言之,它可以用于与以太坊网络所具有的功能非常相似的功能:
- 去中心化应用程序(dApp)开发
- 智能合约开发
- 醚矿开采
在技术支持方面,它提供了用于dApp和智能合约开发的通用工具。它支持Remix,Truffle和web3j之类的工具。但是,您可能在Besu中找不到密钥管理支持。为此,您需要使用可完美使用的EthSigner,从而为您提供适当的密钥管理工具。 Hyperledger Besu网络非常适合企业需求,这意味着存在很多Hyperledger Besu用例.
Besu的主要功能:Hyperledger Besu的工作方式
既然我们对Hyperledger Besu网络的理解已经增强,现在是时候讨论其功能了。通过这些功能,您还可以了解是什么使Besu成为Hyperledger财团的重要成员.
EEA(企业以太坊联盟)规范
→它实现了EEA(企业以太坊联盟)规范。该规范确保它可以与其他可以关闭和开源的以太坊项目连接。该规范非常重要,因为它可以确保项目不必担心供应商锁定问题。此外,您还将获得用于无缝应用程序构建的标准接口。 Besu与EEA合作非常成功,并成功提供了企业功能.
EVM(以太坊虚拟机)
EVM是Hyperledger Besu区块链的核心。图灵完成了。通过以太坊区块链交易帮助智能合约执行.
共识算法
当涉及共识算法时,Hyperledger Besu提供了很好的选择。开箱即用,您将获得对工作证明和权威证明共识算法的支持。该算法用于在以太坊网络上进行交易.
工作量证明→使用工作量证明,矿工可以在以太坊主网上进行采矿活动。为此,使用了Ethash.
授权证明→对于授权证明,您可以获得多个PoA协议。如果您不知道,则PoA仅在参与网络的节点之间已经建立信任时才起作用。这就是为什么PoA算法非常适合许可网络(尤其是由企业实施的网络)的原因.
- 开箱即用,您可以使用IBFT 2.0。批准的帐户负责冻结和交易验证。批准的帐户称为验证人。验证者组然后充当权力的实体,在这里他们可以投票赞成添加/删除验证者。一个局限性是IBFT 2.0不允许使用分叉,并且始终只有一个主链.
- Clique是一种确保容错能力的保护算法。它最多可以接受一半的验证器失败。对于IBFT 2.0,必须运行至少2/3的验证器才能继续进行块创建过程.
贮存
Hyperledger Besu网络在提供存储支持方面非常灵活。就像其他区块链解决方案一样,它也利用键值方法。开箱即用,它使用RocksDB键值数据库。它有助于提供数据持久性。但是,存储的数据可以分为两个子类别.
区块链
→块头用于形成链。区块头中的信息用于以密码方式验证区块链状态.
→另一方面,块主体包含每个块的订单交易清单
→交易执行元数据存储在交易收据中.
世界国家
→每个块头都使用stateRoot哈希值来引用世界状态.
→这是帐户到地址的映射
→以太币余额存储在外部账户中
→智能合约包含代码和存储
P2P网络
当涉及到P2P网络时,Besu实现了devp2p以太坊网络协议。该协议确保客户端之间的通信。它还充当附加的IBFT2子协议。使用基于UDP的协议进行发现,类似于Internet网络。为了进行通信,它利用RLPx(一种基于TCP的协议)。另一方面,RLPx使用各种子协议,包括ETH Wire协议(用于事务状态同步)和IBF子协议(用于做出共识决策)。
面向用户的API
Besu带有出色的API。它通过HTTP和WebSocket协议提供的API包括EEA JSON-RPC API和主网以太坊API。它还支持GraphQL API.
监控方式
Hyperledger Besu区块链支持监控功能-包括网络和节点性能监控器。 Prometheus用于监视节点性能。此外,JSON-RPC API方法可用于debug_metrics.
在网络性能方面,使用了Alethi工具,包括EthStats Network Monitor或Block Explorer。.
隐私
为了保护隐私,Besu提供了一个私人交易管理器。它可以确保交易中的参与方不必担心其身份盗用或任何信息泄漏.
许可
最后,它提供适当的权限管理,以确保仅允许被允许参与的节点.
Hyperledger Besu体系结构
Hyperledger Besu体系结构简单有效。我们已经在功能部分讨论了所有关键组件.
Besu的关键三个核心组成部分包括:.
- 贮存
- 以太坊核心
- 联网
让我们首先讨论以太坊核心。核心由以太坊虚拟机(EVM)组成。它负责执行任何事务。在EVM之上,有Tx处理器可以帮助EVM高效地运行.
共识方法也是以太坊核心的一部分。在这里,我们有共识方法,包括PoW,Clique和IBFT2。以太坊核心的其他两个主要组成部分包括
- 交易池→交易池存储与交易有关的信息
- 同步器→帮助同步所有节点和网络.
奇怪的是,我们有区块链和世界状态。世界状态由帐户状态,帐户存储和代码存储组成.
最后,存在使用以太坊devp2p协议进行操作的联网。四个主要组成部分包括
- 发现
- RLPx
- ETH子协议
- IBF子协议
Besu的系统要求
Hyperledger Besu区块链在系统需求方面非常灵活。由于网络在本质上可以是动态的,包括世界状态大小,事务数量,区块天然气限制和查询复杂性,因此系统要求可能相差很大.
但是,在大多数情况下,您需要满足以下条件.
- 4 GB的RAM。如果您决定运行以太坊主网,则需要8 GB RAM
- 就磁盘空间而言,使用以太坊主网时至少需要3 TB的空间才能完全同步
如果仍然感到困惑,则需要使用Prometheus监视节点,以了解确切的磁盘和CPU要求。此外,Grafana仪表板可与Besu一起使用,您可以使用它轻松监控.
Hyperledger Besu路线图
自2018年10月开始开源以来,现在任何人都可以对其进行贡献。 Hyperledger Besu的路线图看起来很有趣。以下是他们针对的主要路线图里程碑.
→建立隐私组,帐户许可,UI许可,伊斯坦布尔网络升级
:Hyperledger Besu 1.2,2019年7月31日
→流支持,IBFT的自定义监视,许可管理:Hyperledger Besu 1.3,2019年10月7日
→多以太坊网络客户端,跨隐私组,高级隐私功能,企业集成,以太坊2.0、2020年初.
安装二进制发行版,从源代码构建并启动Besu
在本节中,我们将学习如何在MacOS和其他操作系统上安装Besu,构建和启动Besu。.
安装二进制发行版
如果您使用的是Mac OS,则需要 自制酒 和Java JDK入门。您还需要Java 11+,因为不支持早期的Java版本.
现在,运行以下命令以使用Homebrew进行安装.
酿造水龙头超级账本
酿造安装besu
要检查Besu是否已成功安装,请使用以下命令进行检查.
besu –帮助
如果您使用的是Unix / Linux / Windows,请下载Besu 打包的二进制文件. 下载后,解压缩文件并转到besu-目录.
要确认正确安装了Besu,请使用 besu –帮助 命令.
从源构建
要从源代码构建Besu,您需要克隆Besu存储库.
git clone –递归 https://github.com/hyperledger/besu.git
克隆完成后,我们将使用以下命令消除测试:
./ gradlew建立-x测试
现在,使用以下命令转到分发目录:
cd构建/发行版/
在这里,您需要使用以下命令来扩展发行档案.
tar -xzf besu-.tar.gz
扩展文件后,现在移至新文件夹.
cd besu- /
bin / besu –帮助
如果最后一条命令成功运行,则说明您已成功从源代码构建.
对于Windows,该过程几乎相同。首先,克隆存储库,删除测试,进入分发目录,展开它,然后最后检查安装是否成功.
开始贝苏
太棒了,既然我们已经预安装了Besu,现在必须运行它。首先,您需要执行以下步骤.
- 本地块数据
- 创世配置
- 确认节点是否正在运行
- 运行节点进行测试
第一步是设置本地块数据。如果连接到先前的网络,则需要摆脱本地块数据。您还可以配置–data-path选项以指定新的本地块数据.
您可以从besu / build / distribution / besu-目录中删除本地块数据。在那里,删除数据库目录,一切顺利!
如果您使用的是Mainnet,Goerli,Rinkeby或Ropsten,则在与它们连接时会指定创世纪配置.
另外,您可以指定–network = dev属性以使用空的引导节点启动创世纪配置。而且,它以固定的低难度设置了创世纪配置.
要确认节点是否正在运行,则需要使用–rpc–http-enabled选项。完成后,请使用cURL,然后调用JSON-RPC API方法。如果有答复,则该节点正在运行.
最后,要运行节点进行测试,您需要使用以下命令
besu –network = dev –miner-enabled –miner-coinbase = 0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 –rpc-http-cors-origins =“ all” –host-whitelist =“ *” –rpc-ws-enabled –rpc-http-enabled –data-路径= / tmp / tmpDatdir
Hyperledger Besu中的隐私
许可的网络以其隐私功能而闻名。 Besu没什么不同,因为它提供了开箱即用的出色隐私选项。有了Besu,您可以使用 符合EEA的隐私 或Besu-扩展隐私.
要创建和管理隐私组,可以使用已经可用的JSON-RPC API方法。这些方法可用于创建和管理隐私组
- priv_createPrivacyGroup
- priv_findPrivacyGroup
- priv_deletePrivacyGroup
对于交易,Besu仅执行受限交易。这样做是为了确保隐私并使交易成为隐私.
交易由特定密钥或随机密钥签名。如果要使用特定密钥登录,则需要使用–privacy-marker-transaction-signing-key-file,该文件可在Hyperledger Besu中获得。.
如果您有兴趣,可以查看有关如何配置私人交易网络的详细教程。 这里. 在本教程中,您可以发现Orion是入门的先决条件之一.
Hyperledger Besu中的许可
许可是任何企业区块链框架的关键部分。贝苏也是如此。任何允许的网络都围绕只允许特定节点的想法。他们通过进行交易或允许交易来参与并启用网络.
在对等网络的情况下,需要在节点上强制执行规则,以便可以进行许可。显然,在允许的网络上线之前,已经需要存在信任级别。为了确保不良行为者在这里的作用最小,需要采取预防措施。例如,单个不良行为者不会影响网络的决策。正确的规章制度还可以帮助识别不良行为者,并在发现他们进行恶意行为时将其删除.
除了节点权限外,还有一个帐户权限选项可以强制执行更多规则和规定。帐户许可可用于强制执行身份要求和入职。它还有助于在执行操作时暂停帐户,将违约合同列入黑名单并限制帐户.
Hyperledger Besu区块链提供本地和链上.
→ 本地许可 在节点级别完成。为了实现它,使用了权限配置文件。由于权限是本地的,因此它们不会影响网络。这对于节点如何工作很有用,它们独立于网络的其余部分。如果发生错误,还需要保护节点.
→ 链上许可, 另一方面,它们是在智能合约中编码的。 Onchain许可在整个网络范围内,所有节点都可以读取和更新它。链上许可只能在协调的情况下进行修改或更新。另外,一旦更新,它就会在整个网络上应用.
标题:本地和OnChain许可的工作方式
您还可以关注 本指南 知道如何在Besu中设置许可网络.
其他值得一提的事情
Hyperledger Besu GitHub: 如果您认为可以为Hyperledger Besu做出贡献,则可以查看Hyperledger Besu GitHub存储库 这里.
目前,没有关于Besu的最佳Hyperledger课程,因此您也可以查看用户文档 这里. 他们提供了有关如何快速启动网络或如何创建专用网络的完整教程。.
结论
这导致我们结束了《 Hyperledger Besu入门指南》。在这里我们介绍了许多关于Besu的事情.
我们很快将涵盖Hyperledger Fabric和Besu。因此,别忘了订阅我们的时事通讯.
另外,您对此有何看法?在下面发表评论,让我们知道.