以太坊区块链浏览器搭建

写在前面:

    当然,读者若要实践,那么电脑上必须已经搭建好了geth,并且命令“geth version”能显示版本信息;针对以太坊各个链(私链,公链,测试链)都可以用该篇文章来搭建区块链浏览器,且步骤几乎一模一样,若有疑惑,或者遇到问题,请看文末笔者给出的邮箱地址,欢迎一起探讨学习。

笔者搭建环境:ubuntu16 + npm、nodejs(安装系统自带版本)

 

 一、下载eth区块链浏览器源码

git clone https://github.com/etherparty/explorer

二、下载bower

# 首先需要进入到你刚刚下载explorer的目录
cd 下载explorer的目录(一般就是 cd explorer)

# 用 npm 安装 bower
npm install -g bower -y

三、初始化bower 

# 初始化 bower
bower init
# 注1问:命令报错 /usr/bin/env:"node" 没有那个文件或目录
# 注1解:sudo ln -s /usr/bin/nodejs /usr/bin/node
# 注2问:命令报错 bower esudo cannot be run with sudo
# 注2解:bower init --allow-root

在命令行一直回车,下一步即可。

四、bower 安装

bower install --allow-root
bower install angular --save-dev  --allow-root

上述两句命令笔者未遇到任何错误。

选择1,继续完成安装

到这里,bower工具就已经安装成功了。

五、启动geth节点

笔者是在私链上搭建,所以与各位读者在命令上存在一些微小的差别,命令有差异的地方,笔者会标红

geth --networkid 19303 --nodiscover --datadir "/root/eth_sync/private-chain/" --rpc --rpcapi "db,net,eth,web3,personal" --port 61916 --rpcport 8545 --rpccorsdomain '*' console

geth --networkid 19303 --nodiscover --datadir "/root/eth_sync/private-chain/" --rpc --rpcapi "db,net,eth,web3,personal" --port 61916 --rpcport 8545 --rpccorsdomain '*' console

这里读者能正常启动geth节点就行,不需要其他任何操作。

六、启动npm

# 在下载的explorer目录下执行
npm start

启动的开始会有很多的 WARN 和 ERR,这个不用管,让他自己跑

过不了一会儿就会恢复正常,

 目前为止,基本上就已经搭建完成了,在浏览器输入“localhost:8000”即可访问你搭建的区块链浏览器,如下图

七、区块数据不显示的处理方式

笔者可能会感到迷惑,为什么不显示区块数据呢,难道是节点没连接上?并不是,事实是该源码需要的js库文件是访问的ajax.googleapis.com,如果你没有和(fan)谐(qiang)软件,就不能显示区块数据。

笔者给出以下解决方案:

  1. 在项目中查找使用“ajax.googleapis.com”的地方,利用sublime提供的搜索功能,如下图
  2. 和(fan)谐(qiang)下载这两个文件的源码
    注:若没有fq资源,亦可以在网上找这两个文件的源码,应该都大同小异
  3. 把下载的文件放到 explorer-master\app 目录下
  4. 修改 script 引用的 src 路径

此刻读者只需要刷新一下浏览器页面,大功告成。

 

1-7步,只能在本地访问。

八、让局域网内的其它主机也能访问

修改连接以太网节点地址为远程节点地址

 

root@cc-virtual-machine:~# cd explorer
root@cc-virtual-machine:~/explorer# vim app/app.js
将var eth_node_url = 'http://localhost:8545'; 修改为 var eth_node_url = 'http://远程或本地以太坊节点ip:8545';

修改浏览器地址为本地IP地址

root@cc-virtual-machine:~# cd explorer
root@cc-virtual-machine:~/explorer# vim ./package.json
把"start": "http-server ./app -a localhost -p 8000 -c-1", 改为"start": "http-server ./app -a 本地ip -p 8000
posted @ 2020-12-04 07:39  0DayBug  阅读(1422)  评论(1编辑  收藏  举报