参考官方文档:
https://github.com/hyperledger/blockchain-explorer
本文主要用的是fabric first-network为示例区块链网络。本配置文档基于Debian(8.x Jessie)配置,Ubuntu系统基本一致,只在Postgre-SQL安装时要写对应的版本号有所不同,Centos系统可以参考,在安装各项时使用的安装语句不同。下面开始安装说明。
(一)前提条件:
nodejs 8.11.x (Note that v9.x is not yet supported)
PostgreSQL 9.5 or greater
docker 17.06.2-ce
docker-compose 1.14.0
1. nodejs 8.11.3 安装
由于直接安装node时可能会出现版本问题,这里使用nvm严格控制node版本的安装
1. 1开始安装(Linux系统下)
可以通过curl或者wget进行安装,命令如下
curl方式
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
wget方式
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
如果你系统没有安装git的话,请先安装git,安装命令请参考下面
ubuntu系统
sudo apt-get install git
centos
sudo yum install git
1.2 可能遇到的问题
安装完后,如果是用xshell连远程主机的话,先重连一次,不然会发现提示找不到nvm命令
可能出现依旧提示找不到nvm命令,那么请使用source命令,如下
source ~/.bashrc
如果是zsh的话,请用
source ~/.zshrc
如果还是提示找不到nvm命令,那么参照上面安装nvm的命令,重新安装。
1.3 开始配置node环境
常用命令一览
终端输入nvm,会看到帮助信息
nvm
(1)nvm ls-remote
列出全部可以安装的版本号
nvm ls-remote
可以看出全部可用版本号,和当前安装的版本
(2)nvm install 版本号
安装指定版本
nvm install v8.11.3
#命令后加版本号就可以进行安装,字母v可以不写,安装后默认使用该版
(3)nvm use 版本号
切换指定版本,切换效果是全局的
nvm use v8.11.3
切换到8.11.3
(4) nvm current
查看当前使用的版本
nvm current
2. PostgreSQL 安装
直接执行下列命令
sudo apt-get install postgresql
如果下载下来的低于9.5.x 版本,请执行下面的命令:
sudo apt-get --purge remove postgresql\*
sudo rm -r /etc/postgresql/
sudo rm -r /etc/postgresql-common/
sudo rm -r /var/lib/postgresql/
sudo userdel -r postgres
sudo groupdel postgres
之后重新安装指定的版本的PostgreSQL。
sudoadd-apt-repository"deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-getupdate
sudo apt-getinstall postgresql-9.5
其中前两句要根据https://www.postgresql.org/download/linux/debian/官网中输入自己系统的版本号后生成对应的配置文件路径后进行修改。安装以后psql会默认一个用户“postgres”,密码是随机的,登录到postgresql里:sudo -u postgres psql ,你会看到“postgres=#” 这个就是代表已经进入pg数据库了,可以输入各种命令了,修改psql的密码:ALTER USER postgres WITH PASSWORD 'xxxx'; (其中'xxxx'为用户'postgres'的密码,目前postgres的密码修改完毕)
3. docker 17.06.2-ce 和 docker-compose 1.14.0
(1)docker向上兼容,docker18的版本也是可以的(下载特定版本方法直接看docker官网),docker-compose1.14下载的特定版本比较方便,执行下列命令即可
curl -L https://get.daocloud.io/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
(2)下载项目源码
git clone https://github.com/hyperledger/blockchain-explorer.git
cd blockchain-explorer
要注意master 可能会变化。
(3)数据库初始化
sudo -u postgres psql //PosgreSQL database
\i app/persistance/postgreSQL/db/explorerpg.sql
\i app/persistance/postgreSQL/db/updatepg.sql
(4)运行启动你的一个Fabric 1.1网络
1)进入go的path目录
cd $GOPATH
2)新建文件夹并进入到路径
mkdir -p src/github.com/hyperledger
/opt/gopath/src/github.com/hyperledger
3)下载fabric 和fabric-samples
git clone https://github.com/hyperledger/fabric.git
git clone https://github.com/hyperledger/fabric-samples.git
4)切换版本至1.1
cd fabric/
git checkout release-1.1
git branch -a
cd fabric-samples/
git checkout release-1.1
git branch -a
5.)下载镜像和要执行的二进制文件
如果能够访问外网,可以执行下列命令,下载所需的镜像和二进制文件
curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0
但大多数情况我们无法访问外面,可以进入到fabric目录下的scripts执行bootstrap.sh
cd fabric/scripts/
./bootstrap.sh
进入到fabric-samples文件下载1.1.0版本所需的二进制文件
wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/hyperledger-fabric-linux-amd64-1.1.0.tar.gz
解压下载的文件,会多出bin 和config两个文件夹
tar -zxvf hyperledger-fabric-linux-amd64-1.1.0.tar.gz
把bin配置到环境
cd bin/
pwd
vim /etc/profile
source /etc/profile
在/etc/profile中加入
6)运行fabric1,1网络
cd fabric-samples/first-network/
./byfn.sh -m generate
./byfn.sh -m up
如果在阿里云中运行,一定要修改 /etc/resolv.conf 配置,将options timeout:2 attempts:3 rotate single-request-reopen 这行内容注释。
(5)修改配置文件(重要)
cd blockchain-explorer/app/platform/fabric
vi config.json
cd 到 blockchain-explorer/app/platform/fabric 这个路径修改config.json文件。
修改一下配置文件中"tls_cacerts", "key", "cert" 的路径,这个路径是你启动fabric 1.1 网络的绝对路径。下图展示了一部分要修改的路径。
再在“channel”: "mychannel"下添加数据库的信息,由于我们直接通过PostgreSQL 命令生成的数据库数据表,用户名和密码都是自带默认的,不需要我们修改。详情可见explorerpg.sql
"channel": "mychannel",
"pg": {
"host": "127.0.0.1",
"port": "5432",
"database": "fabricexplorer",
"username": "hppoc",
"passwd": "password"
}
(6)安装explorer所需的node依赖
cd blockchain-explorer
npm install
cd blockchain-explorer/app/test
npm install
npm run test
cd client/
npm install
npm test -- -u --coverage
npm run build
注意的几点:
1.这里运行npm intsall 如果出现warn 警告,可以忽略不影响。
2.经过我的测试,阿里云下,root账户执行npm install 会报权限错误,但新建一个普通账户,并赋予sudo 权限后就不会。
3.sudo npm install 运行也会报错。
4.如果出现单个文件夹权限不足,直接 执行 sudo chmod +777 ./XXX 来给与最高权限。
5.如果在虚拟机上运行的保证分配的配置稍微高一点,不然最后一步npm run build 会卡死。
(7)运行Hyperlegder Explorer
执行下列命令
cd blockchain-explorer/
./start.sh
调用log 目录下的目录,如果显示 Please open Internet explorer to access:http://localhost:8080/ 那就成功了。
不然的话根据报错再调试一下,可能会遇到证书文件的权限不够,按照上面的方面给予权限就行。
最后运行界面: