[블록체인 PICK] 도커를 이용한 이더리움 테스트노드 구축

 

 도커를 이용한 이더리움 테스트노드 구축

 

  • 테스트노드 구축 배경
    사내 서비스에 연동된 이더리움 관련한 테스트를 진행하기 위해 테스트 노드가 필요하여 구축하였습니다.
    도커로 설치하면 설치 환경 자체를 격리시켜주기 때문에 일반적으로 설치할 때의 
    환경에 의한 예기치 못한 오류들을 미연에 방지할 수 있습니다. 
    그리고 최근에 대부분의 프로그램들이 도커이미지를 제공하고 있습니다.
    그래서 도커를 사용하여 설치해 보았습니다.

 

  • 사양
    테스트넷의 노드를 구축하기 위해 t2.medium을 사용하였고 

    추후 성능이 더 필요한 상황이 오면 도커 orchestration 도구를 사용할 예정입니다.

 

 

  • docker-compose 파일
    도커 컨테이너 운영 시 docker-compose 파일을 사용하면

    컨테이너의 실행 구문들을 파일에 저장할 수 있고 관리가 가능해서
    도커 커맨드를 그냥 사용하는 것보다 많은 이점이 있습니다.

 

version: '3.3'
services:
  eth:
    image: ethereum/client-go:alpine
    command: "--testnet --fast --rpc --cache=1024 --rpcaddr '0.0.0.0' --rpccorsdomain '*' --rpcport '8000' --rpcapi='db,eth,net,web3,personal'"
    volumes:
      - ./chaindata:/root/.ethereum/testnet/geth/chaindata
    ports:
      - 8000:8000
    networks:
      - test_net
    container_name: eth
networks:
  test_net:


  • Ethereum options
    – testnet: 싱크되는 테스트 네트워크를 Ropsten network 선택 
    – fast: 테스트넷과 싱크 모드를 fast선택(fast, full, light 옵션 선택가능)
    – rpc: HTTP-RPC 오픈설정
    – cache: 내부 케싱 메모리 크기 설정
    – rpcaddr ‘0.0.0.0’: 접근할수 있는 ip 설정
    – rpccorsdomain: 접근할수 있는 도메인 설정
    – rpcport: listening port 설정
    – rpcapi: 오픈되는 http api설정

 

  • 도커를 사용하면 얻을 수 있는 장점

     

 

 

1. 컨테이너를 생성할 때 싱크 된 이더리움 데이터 파일이 쌓이는 컨테이너의 폴더를 ec2 서버에 마운트 했고 이 마운트 된 폴더를 압축하여 s3에 계속적으로 백업합니다.

 

2. 잘 돌아가던 도커로 구축된 테스트 노드가 어떤 이유에서 인지 잘 작동하지 않습니다.

 

3. 테스트 넷을 다시 구축, 테스트 넷 설치에 소요되는 시간은 비교적 짧지만 블록체인 데이터를 싱크 하는 시간이 적어도 6시간 이상 걸립니다.

 

4. 하지만 이전의 싱크 된 테스트 넷 파일을 백업 해놓았기 때문에 그 데이터를 기반으로 다시 컨테이너를 생성하면 시간을 상당히 절약할 수 있습니다.

 

  • 제대로 설치되었는지 확인
    ropsten.etherscan.io 사이트에서 최신 블록 넘버 

    서버에 설치된 이더리움 테스트 넷 노드의 geth에 접속하면 볼 수 있는 최신 싱크 정보를 보시면 제대로 설치가 되었는지 확인할 수 있습니다.
 
 
  • 추후 계획
    부하량이 많거나 대량의 데이터를 테스트할 때 Docker Swarm이나 
    Kubernetes와 같은 Orchestration 도구를 사용하여 효과적인 스케일 아웃을 가능하게 하고 인프라도 좀 더 유동적으로 운용할 수 있게 할 것입니다.

 

 

 

원문 확인하기 >> https://bit.ly/2A5j7St

error: 본 콘텐츠의 저작권은 BTC코리아닷컴에 있으며 무단전재&배포 금지합니다.