【区块链】HyperLedger Besu Alethio区块浏览器

这篇具有很好参考价值的文章主要介绍了【区块链】HyperLedger Besu Alethio区块浏览器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一节我们已经完成了整个Besu区块链网络的搭建,本章将介绍通过Alethio区块链浏览器对上链数据进行查看和校验。同时,由于Besu区块链是可以通过EthSigner来实现带权限(token)访问的,那么在权限访问下还需要添加explorer-besu-plugin来实现,这个也会在本节中一并叙述。

Alethio浏览器

上面提到的Alethio区块链浏览器其实是一个专门用于以太坊区块链实现可视化的交互平台,全称Alethio Ethereum Lite Explorer(以下简称“AELE”)。

有浏览过Besu在线文档的小伙伴应该都清楚AELE是Besu官方推荐的以太浏览器,它开源且界面支持中文这对于中国地区开发者算是相当友好了(连在线翻译的工作都可以省了),并且不用过多的配置可以说说是“开箱即用”级别的了推荐各位使用。

image.png
接下来将分别讲述“不带token”和“带token”的两种实现方式。

不带token

或许有小伙伴会问,为什么还会有不带token的解决方案呢?基于平台或者系统层面Besu私有链(或联盟链)应“受限访问”才能保证接入安全,关于这点我主要有以下3点考虑:

  1. 若只是说“访问白名单”功能的话,建议是在服务器层面进行设定而不是直接在区块链节点中做设定。这是考虑到商业使用前提下宿主机本来就存在访问策略。只需要统一管理即可不需要又另外设定徒增运维难度;
  2. 由于数据上链都需要先经过EthSigner校验token的有效性,在分布式高并发下网络开销可能会造成性能问题。即使不考虑网络因素,EthSigner节点使用“多租户”模式下也会受制于本地硬件性能(这里跟我使用本地密钥存储方式有关,会产生大量磁盘IO引起性能问题,不过可以通过使用固态硬盘来解决这个问题,只不过成本略高)。
  3. 获取token进行交易一般是在“隐私交易”场景下作为安全防御机制使用,若不涉及隐私交易的情况下可忽略这部分功能(坦白说,隐私交易这种业务场景非常少,因为需要企业具备资质才能做,并且区块链“受信”问题几乎是无解的。即使你的区块链技术能够公开且通过第三方安全审查,但仍有可能达不到“受信”的要求,至于个中原因相信大家应该懂的)。

回归主题…因此这里其实可以直接使用Besu官方的解决方案 alethio/ethereum-lite-explorer:latest 来部署区块链浏览器。

还是老样子,先下载最新的镜像:

[root@node206 ~]# docker pull alethio/ethereum-lite-explorer:latest
latest: Pulling from alethio/ethereum-lite-explorer
cbdbe7a5bc2a: Pull complete 
6ade829cd166: Pull complete 
195a36ec5996: Pull complete 
db920b47b7ea: Pull complete 
e5d20234098f: Pull complete 
999a52eef64d: Pull complete 
6ac662ed9701: Pull complete 
bcc99b34b1bb: Pull complete 
695b2acc9528: Pull complete 
Digest: sha256:1de833711ff9f3ed26987e701c1d12789bcfb1261ead87e1f088b8a0554f9944
Status: Downloaded newer image for alethio/ethereum-lite-explorer:latest
docker.io/alethio/ethereum-lite-explorer:latest

接着就能够根据以下命令创建

docker run \
--name blockchain_explorer \
-p 80:80 \
-e APP_NODE_URL="http://192.168.200.203:8644" \
--restart always \
-d alethio/ethereum-lite-explorer:latest

启动之后访问 http://192.168.200.206/ 就能够看到效果了,如下图所示
1.png

带token

那带token的时候要怎么做呢?为什么我按照网上说的做但是无法登录的呢?为什么alethio/ethereum-lite-explorer整合插件不成功的呢?… 那是因为网上说的都只说了一半,哪怕是Besu官网。

首先这个时候我们就不能按照Besu官方说的那样直接使用alethio/ethereum-lite-explorer:latest版本了。为什么?因为Besu的带权限区块链,需要账号登录拿到JWT Token后方可操作,一般的AELE是不带Header访问的因此无法使用。怎么办呢?那就看一下AELE的Github文档是怎样解决这个问题吧。

image.png

如上图所示,我们若要访问带权限的区块链系统需要增加一个验证身份的插件,在AELE处理eth-lite之前就需要先做身份验证。下方还给了个Besu插件的例子连接。如下图所示:

image.png

按上图所述,的确是存在针对besu私有链登录的插件

image.png

并且这里已经给出配置例子,在配置中的loginUrl参数项填写Orion集成后的Besu访问登录地址

image.png

接着还要更新eth-lite的适配器项,将nodeUrl(节点地址)配置写成浏览器需要访问的节点地址

image.png
最后给出了在Docker中运行的启动用脚本,这里主要说的是让我们另外开一个config.json文件在docker run语句中进行挂载(-v),用这个新建config.json文件覆盖掉容器中的config.json文件。同时,我们也留意到这里让我们pull的docker镜像是adetante/explorer-besu-plugin:1.0.4,那事不宜迟就先pull镜像。

但是,docker报了一个错误,如下所示:

Error response from daemon: manifest for adetante/explorer-besu-plugin:1.0.4 not found: manifest unknown: manifest unknown

这说明在docker hub中并不存在1.0.4这样的版本。

image.png

在docker hub中只有latest和1.0.3版本,在这里我们选择的是1.0.3版本。如果使用的是latest版本无论config.json怎样修改都会报错,哪怕按照我以下将要说明的方式去改也会报错,但是1.0.3就不会(实践出真知,踩过的坑不想别人再踩了)。

image.png
这个时候可能就会有小伙伴会问,我都不知道config.json文件怎么写,那应该怎么修改才对呢?

有聪明的小伙伴或许会联想到,要不就回去刚刚ethereum-lite-explorer的Github看看说明文档中是怎么写的吧,毕竟现在的explorer-besu-plugin也只是在ethereum-lite-explorer上增加了besu插件而已,规则应该还是按照ethereum-lite-explorer的来的。

于是他们就回去翻Github的文章…发现了这样的一段话

image.png

哦,原来config.json是从config.default.json演变过来的。那直接将config.default.json拷贝过去改名就可以了。

image.png

这种做法不能说不对,但是可以有更好的办法…最好的做法当然是直接从镜像中拷贝出来。先从docker hub中将1.0.3的镜像下载下来后先简单的运行一次。

docker run --name eth_explorer \
-p 80:80 \
-d adetante/explorer-besu-plugin:1.0.3

然后使用docker cp命令将镜像内的config.json文件拷贝到本地。

docker cp eth_explorer:/usr/share/nginx/html/config.json /home/yzh/Documents/docker_data/alethio/

在这个基础上进行loginUrl和nodeUrl的修改,如下图所示:

image.png

由于这个AELE是部署在我本机不是CentOS中因此ip为92.168.1.164。所有内容修改完成后就可以启动AELE镜像

docker run --name eth_explorer \
-p 80:80 \
-v /Users/yuanzhenhui/Documents/docker_data/alethio/config.json:/usr/share/nginx/html/config.json \
-d adetante/explorer-besu-plugin:1.0.3

由于是映射80端口,所以直接通过localhost进行访问,如下图:

2.png

访问时会让输入用户名和密码,这里输入创建的用户名和密码即可。进入后就能够正常访问了,如下图:

image.png

为了验证区块链的可用性,我们使用Postman调用一下Besu区块上链API操作,稍微写个Java工具将字符串转换成16进制的hex编码(这里有点懒了,其实可以直接用httpclient写个调用就可以了,ε=(´ο`*)))唉),如下图:

image.png

如上图所示,得到的编码为e8bf99e698afe4b880e4b8aae6b58be8af95e79a84e4bca0e8be93e695b0e68dae之后通过JSON RPC接口发起了区块链的上链操作,如下图:

image.png

最终得到tx码返回。0x9ffdcf72cf9c17b640644f2793e40d7c76e25be8412e58eac8c051ce7566547c,我们将这段tx码拷贝到AELE中通过查询定位到区块内容。如下图:

image.png

如上图所示,AELE得知区块链刚刚发生了一次事务提交,在0x9ffdcf72cf9c17b640644f2793e40d7c76e25be8412e58eac8c051ce7566547c区块中存在数据(INPUT DATA)0xe8bf99e698afe4b880e4b8aae6b58be8af95e79a84e4bca0e8be93e695b0e68dae

至此数据上链简单验证完毕。

有小伙伴也许会问,为什么上图中显示交易GAS PRICE是0Gwei?大家还记得在《【区块链】HyperLedger Besu集群服务》一文中奖min-gas-price设置为0么,就是在那时候设置上链无需费用,这也是算PoA(权威证明)的一种特色吧,如下图:

image.png文章来源地址https://www.toymoban.com/news/detail-841623.html

到了这里,关于【区块链】HyperLedger Besu Alethio区块浏览器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (Fabric学习八)部署区块链浏览器Hyperledger explorer

    区块链浏览器Hyperledger explorer: 区块链浏览器:官方网站https://github.com/hyperledger-labs/blockchain-explorer 可以看到他需要以下几个文件 : docker-compose.yaml test-network.json config.json 注意:如果从来没有设置过postgreSQL,那最好使用默认的账号hppoc和密码password,不然会报role \\\'你自己的定

    2024年02月09日
    浏览(34)
  • 区块链——Hyperledger Fabric2.2多机搭建及区块链浏览器

    1、设置网络 2、安装docker和docker-compose 3、安装golang环境 1、编写证书文件 2、生成证书文件 3、复制证书文件到节点 1、编写创世块文件 2、生成创世块文件和通道文件 1、生成创世区块 2、生成通道文件 3、为 Org1 定义锚节点 4、为 Org2 定义锚节点 5、将生成的文件拷贝到另两台

    2024年02月11日
    浏览(27)
  • hyperledger fabric2.4.0基础搭建到区块链浏览器搭建

    基础环境借鉴  如下博客地址安装成功Ubuntu20.04下安装fabric2.4环境 从零开始超详细步骤【亲测有效】及Hyperledger Explorer安装_小草cys的博客-CSDN博客_ubuntu安装fabricq 区块链浏览器借鉴如下博客配置成功 2021-05-02-fabric浏览器搭建_Soulmate_666的博客-CSDN博客_搭建fabric浏览器 config.json

    2024年02月11日
    浏览(26)
  • hyperledger fabric explorer 超级账本区块链浏览器搭建-docker的方式

    hyperledger fabric explorer 超级账本区块链浏览器搭建-使用docker的方式快速搭建一个超级账本区块链浏览器 区块链浏览器可以让用户更加直观地查看当前超级账本网络的情况,来观察整个区块链上的块数,节点数,通道,链码等; 官方推荐的搭建区块链浏览器有两种方法,一种是

    2023年04月08日
    浏览(26)
  • Fabric 超级账本学习【5】Fabric2.4网络环境下——搭建Hyperledger Fabric区块链浏览器

    博主最近在搭建Hyperledger Fabric区块链浏览器过程中也学习了很多博主的搭建流程,踩了很多雷,踩了很多 坑,现将成功搭建好的Hyperledger Fabric区块链浏览器详细流程分享如下,帮助大家避雷闭坑 Hyperledger Explorer 是一个简单,强大,易于使用,维护良好的开源实用程序,可浏

    2023年04月23日
    浏览(36)
  • 区块链浏览器

    区块链浏览器就是将区块链里面的信息,全部列出来到网站上 根本不需要资料,直接上实体网站即可,实在看不懂英文就翻译 BlockExplorer.com | Home Bitcoin - Open source P2P money Ethereum (ETH) Blockchain Explorer - etherchain.org - 2022 https://live.blockcypher.com/btc/

    2024年02月16日
    浏览(30)
  • 区块链浏览器与合约代码

    此文系:Vue3.0 +Quasar+ ethers.js 和以太坊智能合约交互 系列教程之一。 区块链浏览器 在本教程中,我一直在说区块链是去中心化的,它想打造的是一个数据永不可篡改且公开透明的数据世界。 那么这样的区块链它最重要的一环就是,需要一个简单易懂,普通用户就能随时查看

    2024年02月03日
    浏览(45)
  • Fabric区块链浏览器(2)

    本文是区块链浏览器系列的第四篇。 在上一篇文章介绍如何解析区块数据时,使用 session 对客户端上传的pb文件进行区分,到期后自动删除。 在这片文章中,会着重介绍下认证系统的实现,主要分为三部分: 添加数据库,存储用户信息 实现用户认证中间件 修改路由 我这里

    2024年02月12日
    浏览(34)
  • Fabric区块链浏览器(3)

    本文是区块链浏览器系列的第五篇,项目完整代码在这里。 在上一篇文章中给浏览器增加了简单的用户认证,至此浏览器的基本功能就已经大致完成了。 在这片文章中,我将使用kratos对区块链浏览器器进行重构,使之同时支持http和gRPC。 项目结构如下: api 定义接口 block.p

    2024年02月11日
    浏览(32)
  • Fabric区块链浏览器搭建

    书接这一回 Fabric二进制建链,在建好链之后,将为这条链部署一个区块链浏览器。 Hyperledger Fabric区块链浏览器地址:https://github.com/hyperledger-labs/blockchain-explorer 内容如下: 创建配置文件 config.json : 内容如下: 继续配置节点证书相关 fabric_dev.json : 内容如下: 最终的目录:

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包