說在前面
由于專案時間不夠了,所以這里直接安裝現成的區塊鏈瀏覽器,就不自己決議區塊了,有時間再說
有兩種使用方法,一種是采用docker鏡像法,一種是本地安裝資料庫法,我使用的是docker鏡像法
參考博客:https://www.freesion.com/article/58421254477/
上一篇:(四)Fabric1.4 Fabric-SDK-go及web應用
目錄
- 一、官方檔案
- 二、進入專案部署
- 三、遇到的問題及解決方法
一、官方檔案
官方檔案yyds
https://github.com/hyperledger/blockchain-explorer
二、進入專案部署
1、在專案路徑下新建檔案夾explorer,查看好對應版本后下載這幾個檔案
$ wget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/examples/net1/config.json
$ wget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/examples/net1/connection-profile/test-network.json -P connection-profile
$ wget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/docker-compose.yaml
2、由于需要區塊鏈網路的那幾個crypto檔案,所以要不然copy,要不然建立軟連接,這里我選擇建立軟連接(也就是建立快捷檔案organizations)
ln -s /root/go/src/PerInfoChain/crypto-config organizations
3、添加.env檔案,用來標識使用網路,docker網路可以使用命令docker network ls查看
.env檔案
NETWORK=perinfo_network
4、根據自己的網路修改docker-compose.yaml檔案
# SPDX-License-Identifier: Apache-2.0
version: '2.1'
volumes:
pgdata:
walletstore:
networks:
perinfo.com:
external:
name: $NETWORK
services:
explorerdb.perinfo.com:
image: hyperledger/explorer-db:latest
container_name: explorerdb.perinfo.com
hostname: explorerdb.perinfo.com
environment:
- DATABASE_DATABASE=fabricexplorer
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWORD=password
healthcheck:
test: "pg_isready -h localhost -p 5432 -q -U postgres"
interval: 30s
timeout: 10s
retries: 5
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- perinfo.com
explorer.perinfo.com:
image: hyperledger/explorer:latest
container_name: explorer.perinfo.com
hostname: explorer.perinfo.com
environment:
- DATABASE_HOST=explorerdb.perinfo.com
- DATABASE_DATABASE=fabricexplorer
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWD=password
- LOG_LEVEL_APP=debug
- LOG_LEVEL_DB=debug
- LOG_LEVEL_CONSOLE=info
- LOG_CONSOLE_STDOUT=true
- DISCOVERY_AS_LOCALHOST=false
#- DISCOVERY_AS_LOCALHOST=true
volumes:
- ./config.json:/opt/explorer/app/platform/fabric/config.json
- ./connection-profile:/opt/explorer/app/platform/fabric/connection-profile
- ./organizations:/tmp/crypto
- walletstore:/opt/explorer/wallet
ports:
- 8080:8080
depends_on:
explorerdb.perinfo.com:
condition: service_healthy
networks:
- perinfo.com
extra_hosts: #添加單機地址映射(私網),不然啟動時找不到地址
- "orderer.perinfo.com:172.20.43.188"
- "peer0.org1.perinfo.com:172.20.43.188"
- "peer0.org2.perinfo.com:172.20.43.188"
- "peer0.org3.perinfo.com:172.20.43.188"
- "peer0.org4.perinfo.com:172.20.43.188"
- "ca.org1.perinfo.com:172.20.43.188"
- "ca.org2.perinfo.com:172.20.43.188"
- "ca.org3.perinfo.com:172.20.43.188"
- "ca.org4.perinfo.com:172.20.43.188"
5、撰寫config.json檔案
(證書我刪了一部分,看看自己的)
{
"network-configs": {
"perinfo_network": {
"name": "perinfo_network",
"profile": "./connection-profile/connection.json"
}
},
"license": "Apache-2.0"
}
6、進入connection-profile檔案夾,復制一份test.network.json檔案,根據自己網路進行配置
{
"name": "perinfo_network",
"version": "1.0.0",
"client": {
"tlsEnable": true,
"caCredential": {
"id": "admin",
"password": "perinfo68"
},
"adminCredential": {
"id": "exploreradmin",
"password": "perinfo68"
},
"enableAuthentication": true,
"organization": "Org1MSP",
"connection": {
"timeout": {
"peer": {
"endorser": "300"
},
"orderer": "300"
}
}
},
"channels": {
"perinfo-channel": {
"peers": {
"peer0.org1.perinfo.com": {}
},
"connection": {
"timeout": {
"peer": {
"endorser": "6000",
"eventHub": "6000",
"eventReg": "6000"
}
}
}
}
},
"organizations": {
"Org1MSP": {
"mspid": "Org1MSP",
"adminPrivateKey": {
"path": "/tmp/crypto/peerOrganizations/org1.perinfo.com/users/Admin@org1.perinfo.com/msp/keystore/852200768328b80f1eb06934d00fae5b86678aa0f188ce0733d850c480d54308_sk"
},
"peers": ["peer0.org1.perinfo.com"],
"certificateAuthorities": ["ca-org1"],
"signedCert": {
"path": "/tmp/crypto/peerOrganizations/org1.perinfo.com/users/Admin@org1.perinfo.com/msp/signcerts/Admin@org1.perinfo.com-cert.pem"
}
},
"Org2MSP": {
"mspid": "Org2MSP",
"adminPrivateKey": {
"path": "/tmp/crypto/peerOrganizations/org2.perinfo.com/users/Admin@org2.perinfo.com/msp/keystore/0a41f9ad4a34d7f604f1e74b1283a3a09ae7f1135002499487dce2e844ae3d28_sk"
},
"peers": ["peer0.org2.perinfo.com"],
"certificateAuthorities": ["ca-org2"],
"signedCert": {
"path": "/tmp/crypto/peerOrganizations/org2.perinfo.com/users/Admin@org2.perinfo.com/msp/signcerts/Admin@org2.perinfo.com-cert.pem"
}
},
"Org3MSP": {
"mspid": "Org3MSP",
"adminPrivateKey": {
"path": "/tmp/crypto/peerOrganizations/org3.perinfo.com/users/Admin@org3.perinfo.com/msp/keystore/f74c115383c4360c69652d6a1196a35bc2f91d84d9082d4de456ce11e3e735ea_sk"
},
"peers": ["peer0.org3.perinfo.com"],
"certificateAuthorities": ["ca-org3"],
"signedCert": {
"path": "/tmp/crypto/peerOrganizations/org3.perinfo.com/users/Admin@org3.perinfo.com/msp/signcerts/Admin@org3.perinfo.com-cert.pem"
}
},
"Org4MSP": {
"mspid": "Org4MSP",
"adminPrivateKey": {
"path": "/tmp/crypto/peerOrganizations/org4.perinfo.com/users/Admin@org4.perinfo.com/msp/keystore/e2f986b66bf77cdabea4fd5e72a46c0646ef50dbef8a236e9864f2a7109b2144_sk"
},
"peers": ["peer0.org4.perinfo.com"],
"certificateAuthorities": ["ca-org4"],
"signedCert": {
"path": "/tmp/crypto/peerOrganizations/org4.perinfo.com/users/Admin@org4.perinfo.com/msp/signcerts/Admin@org4.perinfo.com-cert.pem"
}
}
},
"peers": {
"peer0.org1.perinfo.com": {
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org1.perinfo.com/peers/peer0.org1.perinfo.com/tls/ca.crt",
"pem": "-----BEGIN CERTIFICATE-----\nMIICWDCCAf6gAwIBAgIRAOAfz3HS3UT20/LRS07ATXIwCgYIKoZIzj0EAwIwdjEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEucGVyaW5mby5jb20xHzAdBgNVBAMTFnRs\nc2NhLm9yZzEucGVyaW5mby5jb20wHhcNMjEwODExMTMyNzAwWhcNMzEwODA5MTMy\nNzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE\nBxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5wZXJpbmZvLmNvbTEfMB0G\nA1UEAxMWdGxzY2Eub3JnMS5wZXJpbmZvLmNvbTBZMBMGByqGgYIKoZIzj0E\nAwIDSAAwRQIhAKuB+yF6CgIksETlBlvZBqcj83aX9c3owbqyi0kEC6jBAiAwrX88\nClTqUhJf3PDFusjVbMhfyXWqkkp8gHX9059CPQ==\n-----END CERTIFICATE-----\n"
},
"url": "grpcs://peer0.org1.perinfo.com:7051",
"eventUrl": "grpcs://peer0.org1.perinfo.com:7053",
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.perinfo.com"
}
},
"peer0.org2.perinfo.com": {
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org2.perinfo.com/peers/peer0.org2.perinfo.com/tls/ca.crt",
"pem": "-----BEGIN CERTIFICATE-----\nMIICVzCCAf6gAwIBAgIRAKb+gdfgKw6iIMevIMkd56YwCgYIKoZIzj0EAwIwdjEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzIucGVyaW5mby5jb20xHzAdBgNVBAMTFnRs\nc2NhLm9yZzIucGVyaW5mby5jb20wHhcNMjEwODExMTMyNzAwWhcNMzEwODA5MTMy\nNzAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE\nBxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UE+Juy4P9LyFyLKMbiDuO6kVbKoxnTDETQF1sigbnkwCgYIKoZIzj0E\nAwIDRwAwRAIgWTHazKzW6MicpBLAg5D+XWRLX1PUZrMP/q1WeifDiAICIHdq2MMJ\nY44QJ8bDmnvMZ6tUIxPrKRsXeRBNgNX/kG4v\n-----END CERTIFICATE-----\n"
},
"url": "grpcs://peer0.org2.perinfo.com:8051",
"eventUrl": "grpcs://peer0.org2.perinfo.com:8053",
"grpcOptions": {
"ssl-target-name-override": "peer0.org2.perinfo.com"
}
},
"peer0.org3.perinfo.com": {
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org3.perinfo.com/peers/peer0.org3.perinfo.com/tls/ca.crt",
"pem": "-----BEGIN CERTIFICATE-----\nMIICVjCCAf2gAwIBAgIQI9D7Mo3txDa8Mj3J/P4h3DAKBggqhkjOPQQDAjB2MQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMy5wZXJpbmZvLmNvbTEfMB0GA1UEAxMWdGxz\nY2Eub3JnMy5wZXJpbmZvLmNvbTAeFw0yMTA4MTExMzI3MDBaFw0zMTA4MDkxMzI3\nMDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH\nEw1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmczLnBlcmluZm8uY29tMR8wHQYD\nVQQDExZ0bHNjzbXYmif5p1wQRrOEAOnuqdqWIUI95FlELwGNjAKBggqhkjOPQQD\nAgNHADBEAiAmY+3p5lSuVtaRRSrrRbQT5dyoxnHKYfelw/b/l15sgwIgeQuxOtOX\niL/rBEqSDSTAi58nePSAPeDiz8cj2+UDDC0=\n-----END CERTIFICATE-----\n"
},
"url": "grpcs://peer0.org3.perinfo.com:9051",
"eventUrl": "grpcs://peer0.org3.perinfo.com:9053",
"grpcOptions": {
"ssl-target-name-override": "peer0.org3.perinfo.com"
}
},
"peer0.org4.perinfo.com": {
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org4.perinfo.com/peers/peer0.org4.perinfo.com/tls/ca.crt",
"pem": "-----BEGIN CERTIFICATE-----\nMIICVzCCAf2gAwIBAgIQb/GbYQgpzga1aROLDijX/TAKBggqhkjOPQQDAjB2MQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnNC5wZXJpbmZvLmNvbTEfMB0GA1UEAxMWdGxz\nY2Eub3JnNC5wZXJpbmZvLmNvbTAeFw0yMTA4MTExMzI3MDBaFw0zMTA4MDkxMzI3\nMDBaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH\nEw1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmc0LnBlcmluZm8uY29tMR8wHQYD\nVQQDExZ0bHNjYS5vcmc0LnBlcmluZm8uY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D\nAQcDQgAEoSNT5FRHwNRBvxa1DTAURYO08L+zKr1irPx3uPKK8lA8CIGopM6RB\nfri5fsSrbN5RUSkpgpbfX4Oyhz69fMZGEO2N\n-----END CERTIFICATE-----\n"
},
"url": "grpcs://peer0.org4.perinfo.com:10051",
"eventUrl": "grpcs://peer0.org4.perinfo.com:10053",
"grpcOptions": {
"ssl-target-name-override": "peer0.org4.perinfo.com"
}
}
},
"certificateAuthorities": {
"ca-org1": {
"url": "https://ca.org1.perinfo.com:7054",
"caName": "ca-org1",
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org1.perinfo.com/ca/ca.org1.perinfo.com-cert.pem"
},
"httpOptions": {
"verify": false
}
},
"ca-org2": {
"url": "https://ca.org2.perinfo.com:8054",
"caName": "ca-org2",
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org2.perinfo.com/ca/ca.org2.perinfo.com-cert.pem"
},
"httpOptions": {
"verify": false
}
},
"ca-org3": {
"url": "https://ca.org3.perinfo.com:9054",
"caName": "ca-org3",
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org3.perinfo.com/ca/ca.org3.perinfo.com-cert.pem"
},
"httpOptions": {
"verify": false
}
},
"ca-org4": {
"url": "https://ca.org4.perinfo.com:10054",
"caName": "ca-org4",
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org4.perinfo.com/ca/ca.org4.perinfo.com-cert.pem"
},
"httpOptions": {
"verify": false
}
}
}
}
7、啟動網路
docker-compose up
可以看到自己的網路資訊了

8、另起終端關閉網路
docker-compose down
三、遇到的問題及解決方法
重新啟動區塊鏈瀏覽器時,會報channel已經存在的錯誤,這里清理docker環境即可
清理blockchain-explorer的docker環境:https://www.cnblogs.com/xwxz/p/14277840.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/294285.html
標籤:區塊鏈
