Home 하이퍼레저 비수(이더리움 기반) 구축(4)
Post
Cancel

하이퍼레저 비수(이더리움 기반) 구축(4)

QBFT 네트워크 기반 하이퍼레저 비수 구축

작업영역 생성

1
mkdir besu && cd besu && mkdir info

도커(컨테이너 -> 로컬)파일 가져오기

1
docker cp {containerID}:/QBFT-Network ./

도커 이미지 업데이트

1
docker stop {containerID} && docker commit {containerID} ms_peer:hoya

도커 환경변수 설정

1
vi .env
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
# common settins
HOYA_NODE_IMAGE="ms_peer:hoya"
HOYA_COMMAND="/entrypoint.sh"
HOYA_LOGGING="INFO"
HOYA_BESU_COLOR_ENABLED=true

# node1 settings
NODE1_HOYA_PEER_NAME="node1"
NODE1_HOYA_NODE="Node-1"
NODE1_HOYA_HTTP_PORT=8545
NODE1_HOYA_P2P_PORT=30303

# node2 settings
NODE2_HOYA_PEER_NAME="node2"
NODE2_HOYA_NODE="Node-2"
NODE2_HOYA_HTTP_PORT=8546
NODE2_HOYA_P2P_PORT=30304

# node3 settings
NODE3_HOYA_PEER_NAME="node3"
NODE3_HOYA_NODE="Node-3"
NODE3_HOYA_HTTP_PORT=8547
NODE3_HOYA_P2P_PORT=30305

# node4 settings
NODE4_HOYA_PEER_NAME="node4"
NODE4_HOYA_NODE="Node-4"
NODE4_HOYA_HTTP_PORT=8548
NODE4_HOYA_P2P_PORT=30306

docker-compose.yml 구성

1
vi docker-compose.yml
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
version: "3"
services:
  node1:  
    container_name: ${NODE1_HOYA_PEER_NAME}
    image: ${HOYA_NODE_IMAGE}
    environment:
      HOYA_PEER_NAME: ${NODE1_HOYA_PEER_NAME}
      HOYA_LOGGING: ${HOYA_LOGGING}
      HOYA_BESU_COLOR_ENABLED: ${HOYA_BESU_COLOR_ENABLED}
      HOYA_NODE: ${NODE1_HOYA_NODE}
      HOYA_HTTP_PORT: ${NODE1_HOYA_HTTP_PORT}
      HOYA_P2P_PORT: ${NODE1_HOYA_P2P_PORT}
    entrypoint: ${HOYA_COMMAND}
    ports: 
      - "${NODE1_HOYA_HTTP_PORT}:${NODE1_HOYA_HTTP_PORT}"
    networks: 
      - hoya_net
    volumes: ['./QBFT-Network/${NODE1_HOYA_NODE}/data:/QBFT-Network/${NODE1_HOYA_NODE}/data']
    restart: always
  node2:  
    container_name: ${NODE2_HOYA_PEER_NAME}
    image: ${HOYA_NODE_IMAGE}
    environment:
      HOYA_PEER_NAME: ${NODE2_HOYA_PEER_NAME}
      HOYA_LOGGING: ${HOYA_LOGGING}
      HOYA_BESU_COLOR_ENABLED: ${HOYA_BESU_COLOR_ENABLED}
      HOYA_NODE: ${NODE2_HOYA_NODE}
      HOYA_HTTP_PORT: ${NODE2_HOYA_HTTP_PORT}
      HOYA_P2P_PORT: ${NODE2_HOYA_P2P_PORT}
    entrypoint: ${HOYA_COMMAND}
    ports: 
      - "${NODE2_HOYA_HTTP_PORT}:${NODE2_HOYA_HTTP_PORT}"
    networks: 
      - hoya_net
    volumes: ['./QBFT-Network/${NODE1_HOYA_NODE}/data:/QBFT-Network/${NODE1_HOYA_NODE}/data']
    restart: always
  node3:  
    container_name: ${NODE3_HOYA_PEER_NAME}
    image: ${HOYA_NODE_IMAGE}
    environment:
      HOYA_PEER_NAME: ${NODE3_HOYA_PEER_NAME}
      HOYA_LOGGING: ${HOYA_LOGGING}
      HOYA_BESU_COLOR_ENABLED: ${HOYA_BESU_COLOR_ENABLED}
      HOYA_NODE: ${NODE3_HOYA_NODE}
      HOYA_HTTP_PORT: ${NODE3_HOYA_HTTP_PORT}
      HOYA_P2P_PORT: ${NODE3_HOYA_P2P_PORT}
    entrypoint: ${HOYA_COMMAND}
    ports: 
      - "${NODE3_HOYA_HTTP_PORT}:${NODE3_HOYA_HTTP_PORT}"
    networks: 
      - hoya_net
    volumes: ['./QBFT-Network/${NODE1_HOYA_NODE}/data:/QBFT-Network/${NODE1_HOYA_NODE}/data']
    restart: always
  node4:  
    container_name: ${NODE4_HOYA_PEER_NAME}
    image: ${HOYA_NODE_IMAGE}
    environment:
      HOYA_PEER_NAME: ${NODE4_HOYA_PEER_NAME}
      HOYA_LOGGING: ${HOYA_LOGGING}
      HOYA_BESU_COLOR_ENABLED: ${HOYA_BESU_COLOR_ENABLED}
      HOYA_NODE: ${NODE4_HOYA_NODE}
      HOYA_HTTP_PORT: ${NODE4_HOYA_HTTP_PORT}
      HOYA_P2P_PORT: ${NODE4_HOYA_P2P_PORT}
    entrypoint: ${HOYA_COMMAND}
    ports: 
      - "${NODE4_HOYA_HTTP_PORT}:${NODE4_HOYA_HTTP_PORT}"
    networks: 
      - hoya_net
    volumes: ['./QBFT-Network/${NODE1_HOYA_NODE}/data:/QBFT-Network/${NODE1_HOYA_NODE}/data']
    restart: always

networks: 
  hoya_net: 
    driver: bridge

docker-compose 구동

1
2
3
docker-compose up -d

docker logs -f {node1~node4}

블록체인정상구동

정상적으로 블록체인 구성되었는지 요청해보기

1
curl -X POST --data '{"jsonrpc":"2.0","method":"qbft_getValidatorsByBlockNumber","params":["latest"], "id":1}' localhost:8545

curl테스트

참고자료

호야 블로그 Hyperledger Besu 샘플 저장소.
Hyperledger Besu Ethereum Client 공식 사이트.

This post is licensed under CC BY 4.0 by the author.