Hyperledger Explorer

choko's avatar
Jun 29, 2024
Hyperledger Explorer

Hyperledger Explorer

  • docker-compose를 사용하여 explorer을 실행시킨다.
  • mdl-2.2-testnet/docker에 explorer 폴더에서 작업한다.
mkdir explorer cd 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
 
./network.sh up으로 생성된 organizations 폴더를 explorer 폴더 안에 복사해야 한다.
cp -r ../fabric-samples/test-network/organizations/ .
 

docker-compose.yaml

# SPDX-License-Identifier: Apache-2.0 version: '2.1' volumes: pgdata: walletstore: networks: mynetwork.com: name: fabric_test services: explorerdb.mynetwork.com: image: hyperledger/explorer-db:latest container_name: explorerdb.mynetwork.com hostname: explorerdb.mynetwork.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: - mynetwork.com explorer.mynetwork.com: image: hyperledger/explorer:latest container_name: explorer.mynetwork.com hostname: explorer.mynetwork.com environment: - DATABASE_HOST=explorerdb.mynetwork.com - DATABASE_DATABASE=fabricexplorer - DATABASE_USERNAME=hppoc - DATABASE_PASSWD=password - LOG_LEVEL_APP=info - LOG_LEVEL_DB=info - LOG_LEVEL_CONSOLE=debug - LOG_CONSOLE_STDOUT=true - DISCOVERY_AS_LOCALHOST=false - PORT=8080 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.mynetwork.com: condition: service_healthy networks: - mynetwork.com
  1. hyperledger/explorer-db:latest
  1. hyperledger/explorer:latest
    1. A. Port : 원하는 포트로 설정
      B. volumes : ./config.json ./connection-profile ./organizations 마운트 해준다.
 

connection-profile/test-network.json

{ "name": "test-network", "version": "1.0.0", "client": { "tlsEnable": true, "adminCredential": { "id": "exploreradmin", "password": "exploreradminpw" }, "enableAuthentication": true, "organization": "Org1MSP", "connection": { "timeout": { "peer": { "endorser": "300" }, "orderer": "300" } } }, "channels": { "mychannel": { "peers": { "peer0.org1.themedium.io": {} } } }, "organizations": { "Org1MSP": { "mspid": "Org1MSP", "adminPrivateKey": { "path": "/tmp/crypto/peerOrganizations/org1.themedium.io/users/Admin@org1.themedium.io/msp/keystore/ece14808bd3bc5ecefbfd2aa75ec785bee5d3f10332581fb194aa938f4f63ec1_sk" }, "peers": ["peer0.org1.themedium.io"], "signedCert": { "path": "/tmp/crypto/peerOrganizations/org1.themedium.io/users/Admin@org1.themedium.io/msp/signcerts/cert.pem" } } }, "peers": { "peer0.org1.themedium.io": { "tlsCACerts": { "path": "/tmp/crypto/peerOrganizations/org1.themedium.io/peers/peer0.org1.themedium.io/tls/ca.crt" }, "url": "grpcs://peer0.org1.themedium.io:7051" } } }
네트워크 구성 환경에 맞게 connection-profile/test-network.json 파일을 수정해준다.
 

explorer 실행

docker-compose up -d
notion image
 

http://localhost:8080 접속

[ default UserID : exploreradmin / Password : exploreradminpw ]
notion image
 

explorer 종료 및 재실행

# explorer 종료 docker-compose down
 
  • 네트워크 down 후 새 네트워크 구축 후 explorer 재실행시, 이전 네트워크의 정보가 표시됨
  • 아래 명령어로 explorer volume를 삭제 후 docker-compose up 실행
docker volume kill explorer_walletstore docker volume kill explorer_pgdata
 
Share article

Tom의 TIL 정리방