首页 » 网站推广 » phpacctoken高并发技巧_区块链HyperLedger Besu Alethio 区块浏览器

phpacctoken高并发技巧_区块链HyperLedger Besu Alethio 区块浏览器

访客 2024-11-19 0

扫一扫用手机浏览

文章目录 [+]

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

接下来将分别讲述“不带token”和“带token”的两种实现办法。

phpacctoken高并发技巧_区块链HyperLedger Besu Alethio 区块浏览器

不带token

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

phpacctoken高并发技巧_区块链HyperLedger Besu Alethio 区块浏览器
(图片来自网络侵删)
若只是说“访问白名单”功能的话,建议是在做事器层面进行设定而不是直接在区块链节点中做设定。
这是考虑到商业利用条件下宿主机本来就存在访问策略。
只须要统一管理即可不须要又其余设定徒增运维难度;由于数据上链都须要先经由EthSigner校验token的有效性,在分布式高并发下网络开销可能会造成性能问题。
纵然不考虑网络成分,EthSigner节点利用“多租户”模式下也会受制于本地硬件性能(这里跟我利用本地密钥存储办法有关,会产生大量磁盘IO引起性能问题,不过可以通过利用固态硬盘来办理这个问题,只不过本钱略高)。
获取token进行交易一样平常是在“隐私交易”场景下作为安全防御机制利用,若不涉及隐私交易的情形下可忽略这部分功能(坦白说,隐私交易这种业务场景非常少,由于须要企业具备资质才能做,并且区块链“受信”问题险些是无解的。
纵然你的区块链技能能够公开且通过第三方安全审查,但仍有可能达不到“受信”的哀求,至于个中原因相信大家该当懂的)。

回归主题...因此这里实在可以直策应用Besu官方的办理方案 alethio/ethereum-lite-explorer:latest 来支配区块链浏览器。

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

[root@node206 ~]# docker pull alethio/ethereum-lite-explorer:latestlatest: Pulling from alethio/ethereum-lite-explorercbdbe7a5bc2a: 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:1de833711ff9f3ed26987e701c1d12789bcfb1261ead87e1f088b8a0554f9944Status: Downloaded newer image for alethio/ethereum-lite-explorer:latestdocker.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/ 就能够看到效果了,如下图所示

带token

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

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

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

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

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

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

末了给出了在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这样的版本。

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

这个时候可能就会有小伙伴会问,我都不知道config.json文件怎么写,那该当怎么修正才对呢?有聪明的小伙伴或许会遐想到,要不就回去刚刚ethereum-lite-explorer的Github看看解释文档中是怎么写的吧,毕竟现在的explorer-besu-plugin也只是在ethereum-lite-explorer上增加了besu插件而已,规则该当还是按照ethereum-lite-explorer的来的。
于是他们就回去翻Github的文章......创造了这样的一段话

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

这种做法不能说不对,但是可以有更好的办法...最好的做法当然是直接从镜像中拷贝出来。
先从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的修正,如下图所示:

由于这个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进行访问,如下图:

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

为了验证区块链的可用性,我们利用Postman调用一下Besu区块上链API操作,轻微写个Java工具将字符串转换成16进制的hex编码(这里有点

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

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

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

至此数据上链大略验证完毕。

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

相关文章

php常量率低技巧_PHP 常量详解教程

PHP 常量常量是单个值的标识符(名称)。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。注释...

网站推广 2024-12-19 阅读0 评论0