티스토리 뷰

반응형

Hyperledger Explorer 설치 및 실행(Node v8.x)

기본 환경설정

소스코드 복사

cd /opt/gopath/src/github.com/hyperledger
git clone https://github.com/hyperledger/blockchain-explorer
cd blockchain-explorer


데이터베이스 설정

cd /opt/gopath/src/github.com/hyperledger/blockchain-explorer
sudo apt-get install postgresql
sudo -u postgres psql

# 데이터베이스 생성 스크립트 실행
\i app/persistance/postgreSQL/db/explorerpg.sql
\i app/persistance/postgreSQL/db/updatepg.sql

# fabricexplorer 데이터베이스 생성 확인
\l
# 테이블 생성 확인
\d
# 접속 종료
\q



네트워크 설정

config.json

./app/platform/fabric/config.json 파일에서 network-config(org 설정) 부분과 channel(채널명), orderers(orderer 설정), configtxgenToolPath(configtxgen 도구가 있는 경로) 부분 설정이 필요합니다.

자신의 네트워크 환경에 맞게 config.json 파일을 변경해줍니다.

sudo atom /opt/gopath/src/github.com/hyperledger/blockchain-explorer/app/platform/fabric/config.json

{ "network-config": { "org1": { "name": "peerorg1", "mspid": "org1MSP", "peer1": { "requests": "grpcs://<org1을 실행한 호스트의 IP주소>:7051", "events": "grpcs://<org1을 실행한 호스트의 IP주소>:7053", "server-hostname": "peer0.org1.honeybee.com", "tls_cacerts": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/peers/peer0.org1.honeybee.com/tls/ca.crt" }, "peer2": { "requests": "grpcs://<org1을 실행한 호스트의 IP주소>:7056", "events": "grpcs://<org1을 실행한 호스트의 IP주소>:7058", "server-hostname": "peer1.org1.honeybee.com", "tls_cacerts": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/peers/peer1.org1.honeybee.com/tls/ca.crt" }, "admin": { "key": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/users/Admin@org1.honeybee.com/msp/keystore", "cert": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org1.honeybee.com/users/Admin@org1.honeybee.com/msp/signcerts" } }, "org2": { "name": "peerorg2", "mspid": "org2MSP", "peer1": { "requests": "grpcs://<org2를 실행한 호스트의 IP주소>:7051", "events": "grpcs://<org2를 실행한 호스트의 IP주소>:7053", "server-hostname": "peer0.org2.honeybee.com", "tls_cacerts": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org2.honeybee.com/peers/peer0.org2.honeybee.com/tls/ca.crt" }, "peer2": { "requests": "grpcs://<org2를 실행한 호스트의 IP주소>:7056", "events": "grpcs://<org2를 실행한 호스트의 IP주소>:7058", "server-hostname": "peer1.org2.honeybee.com", "tls_cacerts": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org2.honeybee.com/peers/peer1.org2.honeybee.com/tls/ca.crt" }, "admin": { "key": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org2.honeybee.com/users/Admin@org2.honeybee.com/msp/keystore", "cert": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/peerOrganizations/org2.honeybee.com/users/Admin@org2.honeybee.com/msp/signcerts" } } }, "channel": "honeybeechannel", "orderers": [ { "mspid": "OrdererMSP", "server-hostname": "orderer.org2.honeybee.com", "requests": "grpcs://<orderer.org2를 실행한 호스트의 IP주소>:7050", "tls_cacerts": "/opt/gopath/src/github.com/hyperledger/honeybee/network/artifacts/crypto-config/ordererOrganizations/honeybee.com/orderers/orderer.org2.honeybee.com/tls/ca.crt" } ], "keyValueStore": "/tmp/fabric-client-kvs", "configtxgenToolPath": "/opt/gopath/src/github.com/hyperledger/honeybee/network/bin", "eventWaitTime": "30000", "license": "Apache-2.0", "version": "1.1" }


explorerconfig.json

explorer에 관한 config 설정은 ./app/explorer/explorerconfig.json 파일을 수정합니다.

sudo atom /opt/gopath/src/github.com/hyperledger/blockchain-explorer/app/explorer/explorerconfig.json
{
        "persistance": "postgreSQL",
        "platforms": ["fabric"]
}


pgconfig.json

postgreSQL에 관한 config 설정은 ./app/persistance/postgreSQL/db/pgconfig.json 파일을 수정합니다.

sudo atom /opt/gopath/src/github.com/hyperledger/blockchain-explorer/app/persistance/postgreSQL/db/pgconfig.json
{
        "pg": {
                "host": "127.0.0.1",
                "port": "5432",
                "database": "fabricexplorer",
                "username": "hppoc",
                "passwd": "password"
        }
}


appconfig.json

explorer application에 관한 config 설정은 ./appconfig.json 파일을 수정합니다.

sudo atom /opt/gopath/src/github.com/hyperledger/blockchain-explorer/appconfig.json
{
        "host": "localhost",
        "port": "8080",
        "license": "Apache-2.0"
}



Hyperledger Explorer 실행

npm 설치 및 빌드

#npm 설치 및 빌드
cd /opt/gopath/src/github.com/hyperledger/blockchain-explorer/app/test
npm install
npm run test

cd /opt/gopath/src/github.com/hyperledger/blockchain-explorer
npm install

cd /opt/gopath/src/github.com/hyperledger/blockchain-explorer/client/
npm install
npm test -- -u --coverage
npm run build

※ blockchain-explorer/app/test에서 npm run test 명령 실행 시 아래와 같은 오류가 발생할 경우, 건너뛰고 나머지 작업들을 차례로 실행한 뒤 가장 마지막에 다시 수행하면 테스트가 정상적으로 완료됩니다.

> hyperledger-explorer-test@0.3.0 test /opt/gopath/src/github.com/hyperledger/blockchain-explorer/app/test
> mocha *.js  --exit

module.js:478
    throw err;
    ^

Error: Cannot find module 'log4js'
    at Function.Module._resolveFilename (module.js:476:15)
    at Function.Module._load (module.js:424:25)
...


blockchain-explorer 프로젝트 실행

#blockchain-explorer 프로젝트 실행
cd /opt/gopath/src/github.com/hyperledger/blockchain-explorer
#./start.sh
mkdir -p ./logs/app & mkdir -p ./logs/db & mkdir -p ./logs/console
#node main.js >>logs/console/console.log-"$(date +%Y-%m-%d)" 2>&1 &
node main.js

#로그 출력
tail -f log.log

트랜잭션이 많은 경우, 초기 데이터 로드를 위한 시간이 오래 걸릴 수 있습니다.


blockchain-explorer 프로젝트 종료

node main.js 명령으로 실행한 경우, 해당 명령을 실행한 터미널에서 Ctrl + c 버튼을 누르면 blockchain-explorer가 종료됩니다.

start.sh 스크립트로 실행한 경우, blockchain-explorer를 종료하기 위해서는 다음과 같이 수행합니다.

# 프로세스ID(PID) 값 확인
ps -ef | grep "node main.js"

# 해당 프로세스 kill
kill -9 <해당 PID>




반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함