配置blockchain-explorer

Fabric Explorer部署

参考链接:

github源码:源码

gitee: gitee Fabric Explorer

博客搭建流程:Hyperledger Explorer 区块链浏览器与已搭建fabric网络结合

一、系统要求

  • Linux系统(例如Ubuntu18.04或CentOS7.+);

二、环境要求

node:v8.17.0 +

postgreSQL:9.0及其以上

jq:(1.5/1.6)

docker:见官网

Fabric Explorer: v1.1.3

三、开始搭建

  1. 安装node,官网上下载对应版本

  2. 安装jq

    sudo apt-get install jq //外网安装命令
    //内网下载对应的离线安装包
    
  3. 安装postgreSQL

    注意:

    • 下载下来的安装包不要放在root目录下,放在home目录下最好
    • 创建一个postgres用户,将postgresql 指定给该用户
    //外网安装命令
    sudo apt-get install postgresql 
    
    //内网下载对应的离线安装包
    ./crteapgserver.sh  //创建pgserver
    ./startpgserver.sh //启动pg数据库
    查看5432端口是否启动起来,启动起来了说明启动成功
    
  4. 安装 docker(可选)

  5. 克隆对应版本blockchain-explorer代码

    git clone https://github.com/hyperledger/blockchain-explorer.git
    
  6. 进入blockchain-explorer

    cd blockchain-explorer
    
  7. PostgreSQL数据库设置

    • 首先进入app目录:

      cd blockchain-explorer/app
      
    • 然后修改explorerconfig.json以更新PostgreSQL数据库的配置:

      "postgreSQL": {
          "host": "127.0.0.1",  //本机127.0.0.1,其他机器对应ip即可
          "port": "5432",
          "database": "fabricexplorer",
          "username": "hppoc",
          "passwd": "password"
      },
      "sync": {
          "type":"local", //postgis在本机是local,在其他机器上是host
          "platform": "fabric",
          "blocksSyncTime": "1"
      }
      
    • 配置数据库的另一种替代方式是使用环境变量,例如:

      export DATABASE_HOST=127.0.0.1
      export DATABASE_PORT=5432
      export DATABASE_DATABASE=fabricexplorer
      export DATABASE_USERNAME=hppoc
      export DATABASE_PASSWD=pass12345
      

      **注意:**在每次执行git pull之后,你可能需要修改数据库目录的 权限。执行以下命令进行权限修改:

      cd blockchain-explorer/app/persistence/fabric/postgreSQL
      chmod -R 775 db/
      

      接下来运行数据库创建脚本。

    • 由于我本地没有配置pg的环境变量 所以配置数据库的时候修改了一点脚本,进入;

      //编辑createdb.sh
      vi blockchain-explorer/app/persistence/fabric/postgreSQL/db/createdb.sh
      PSQL="psql" 改成 PSQL="/home/datastore/database/postgresql/bin/psql"  //pg所在路径,我的pg路径为/home/datastore/database/postgresql/bin/psql
      //如果没有配置环境则会报错命令找不到
      
    • 在Linux下执行如下命令,创建pg的用户名和密码:

      cd blockchain-explorer/app/persistence/fabric/postgreSQL/db
      sudo -u postgres ./createdb.sh	
      
    • 在MacOS执行如下命令:

      cd blockchain-explorer/app/persistence/fabric/postgreSQL/db
      ./createdb.sh
      
    • 现在可以连接到PostgreSQL数据库,运行DB状态命令:

    • \l:查看创建的fabricexplorer数据库

    • \d:查看创建的数据表

    • 如果你的Postgresql启用了TLS,请参考Postgresql官方文档。

  8. Hyperledger Explorer身份授权配置

    • 首先进入浏览器应用目录:
    cd blockchain-explorer/app
    
    • 然后修改explorerconfig.json以更新授权配置(JWT):
    "jwt": {
           
        "secret" : "a secret phrase!!",
        "expiresIn": "2 days"
    }
    //secret:用于签名消息载荷的密文
    //expiresIn:过期时间,以秒为单位的数值或一个时间字符串,例如:60,2 days,10h,7d等,可参考zeit/ms
    
  9. 配置Hyperledger Fabric

  • 开启另一个终端,进入以下目录:

    cd blockchain-explorer/app/platform/fabric
    
  • 修改config.json文件来定义fabric网络的连接配置文件:

    {
           
        "network-configs": {
           
            "first-network": {
           
                "name": "atln",  //fabric网络名称
                "profile": "./connection-profile/first-network.json", //网络配置文件目录
                "enableAuthentication": false
            }
        },
        "license": "Apache-2.0"
    }
    
    //first-network:是连接配置的名称,可以随意修改
    //name:你的fabric网络的名字
    //profile:你的连接配置文件的路径
    
  • 修改JSON文件first-network.json中的连接配置信息:

    • 修改fabric-path指向你的fabric网络硬盘路径:

      vi /blockchain-explorer/app/platform/fabric/connection-profile/first-network.json
      
    • 为adminPrivateKey配置选项提供完整的磁盘路径,它通常 以_sk结尾,例如:

      "/fabric-path/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore/aaacd899a6362a5c8cc1e6f86d13bfccc777375365bbda9c710bb7119993d71c_sk"  //更改对应的路径下自己网络xxxxx_sk,比如我的是aaacd899a6362a5c8cc1e6f86d13bfccc777375365bbda9c710bb7119993d71c_sk
      
    • adminUser是网络的管理用户

    • adminPassword是管理用户的密码

    • enableAuthentication标志用来启用登录页,设置为false将跳过 身份验证

  1. 构建Hyperledger Explorer

    **注意:**请在每次git pull之后重复以下步骤!

    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 
    
    //以上没有错误证明搭建完成
    
  2. 运行Hyperledger Explorer

    • 首先进入应用目录:

      cd blockchain-explorer/app
      
    • 然后修改explorerconfig.json来更新同步属性,例如同步类型、平台等。

    • 如果修改了explorerconfig.json中的参数,请重新启动同步进程。

    • 如果同步进程和Hyperledger Explorer不在同一台主机上,那么在 Explorer的explorerconfig.json中应当将同步类型设置为host:

      "sync": {
               
        "type": "host"
      }
      
    • 如果同步进程和Hyperledger Explorer安装在同一台主机上,则设置 为local类型:

      "sync": {
               
        "type": "local"
      }
      
    • 另外开启一个终端:

      • cd blockchain-explorer/
      • ./start.sh 启动后台
      • ./start.sh debug 以调试方式启动后台
      • ./start.sh print 显示帮助信息
      • 在浏览器中打开http(s)/localhost:8080
      • ./stop.sh 终止node服务器
    • 如果Sync进程在单独主机中,那么在新的终端中:

      • cd blockchain-explorer/
      • ./syncstart.sh 启动同步节点
      • ./syncstop.sh 停止同步节点
      • 如果之前在浏览器中访问了hyperledger explorer,请先清理浏览器缓存
      • 如果Hyperledger Fabric网络部署在另一台机器上,请切换start.sh/syncstart.sh 中的DISCOVERY_AS_LOCALHOST标志位false

你可能感兴趣的:(区块链)