가나슈

해시넷
9teahyun (토론 | 기여)님의 2019년 8월 8일 (목) 15:01 판 (특징)
이동: 둘러보기, 검색

가나슈(Ganache) 이더리움 기반 블록체인 디앱 개발에 사용하는 개인용 블록체인 이다.

개요

가나슈(Ganache)란 테스트 목적으로 PC에 설치해서 사용할 수 있는 일종의 간이 블록체인이다. 간이 블록체인이기 때문에 네트워크와 연결할 필요없이 로컬에서 작동시킬 수 있어, 계약을 손쉽게 배포 및 테스트해볼 수 있다. 개발을 위해 게스(geth) 또는 패리티(parity) 같은 클라이언트를 사용하면 각 트랜잭션을 실행하는 데 15 초씩 걸리기 때문에 개발 속도가 느려질 수 있다. 이 문제를 해결하기 위해 일반적으로 개발 목적으로 가나슈(ganache)라는 메모리 내 블록체인을 사용할 수 있다. ganache-cli 또는 GUI 버전의 커맨드 라인 버전을 설치할 수 있다. 가나슈의 또 다른 장점은 테스트를 위해 100개의 이더가 미리 탑재된 10개의 테스트 계정을 확보하게 된다.[1]


특징

가나슈 환경에서의 이더리움 플라즈마 체인 기사

가나슈(Ganache) 외 테스트용 블록체인

이더리움 개발 테스트에 사용할 수 있는 개인용(프라이빗) 블록체인 이다. 이더리움 메인넷에서 테스트를 할 수 없으므로 가나슈 같은 블록체인을 이용한다. 또는 트러플 디벨로퍼나 이더리움 테스트넷을 이용할 수도 있다. 아니면 메타마스크에서 Ropsten 테스트넷 등을 이용할 수도 있다.[2]가나슈 환경에서의 이더리움 플라즈마 체인 사용 이더리움(Ethereum)의 플라즈마 블록체인을 테스트 환경에 직접 배포하고 사용해 봤다. 플라즈마는 이더리움 블록체인 속에 또 다른 작은 블록체인을 만드는 사이드 체인 솔루션중 하나인데 플라즈마는 말 그대로 여러 방면으로 번개처럼 빠르게 뻗어나갈 수 있는 장점이 있다. 플라즈마를 사용하면 메인 체인트랜잭션을 분담해 처리해 확장성을 높일 수도 있고 거래의 수수료도 절감된다. 하지만 사용자 경험이 나쁘다는 지적이 나온다.[3]

활용

작업에 최적화되어 있는 IDE를 사용하면 훨씬 더 쉽게 독자적인 스마트 컨트랙트를 만들 수 있다. 트러플(Truffle)은 이더리움 블록체인에서 가장 인기 있는 언어 중 하나인 솔리디티(Solidity)로 컨트랙트를 작성, 테스트, 배포할 수 있는 도구이다. 트러플 IDE는 코드 컴파일링은 물론, EthPM으로 관리되는 다양한 다른 이더리움 패키지와의 통합을 지원한다. 테스트는 가나슈(Ganache)라고 불리는 로컬 실행 프라이빗 이더리움 블록체인 버전을 사용, ‘클린 룸 환경'에서 시작된다. 블록체인 환경 내부의 행동을 테스트하기 위해 솔리디티로, 또는 컨트랙트가 외부와 어떤 식으로 상호작용하는지 시뮬레이션하기 위한 목적에서 자바스크립트/타입스크립트로 테스트를 구현할 수 있다.[4] Time Token이라는 간단한 스마트 컨트랙트를 만들어 이를 미스트(Mist) 지갑 클라이언트를 사용해 직접 배포하는 방식을 시연했다. 보통 배포 자체는 지갑 클라이언트를 사용하거나 트러플(Truffle)을 이용해 컴파일과 테스트를 거친 후 연동되어있는 이더리움 노드(e.g. Geth, Parity)를 통해 직접 배포하곤한다. TestRPC는 보통 개발단계에서 사용되며 현재 Ganache로 이관되었다. (트러플에 가나슈까지 네이밍은 잘한다는 생각이 든다) 뒤에서도 말하겠지만 가나슈를 이용하면 스마트 컨트랙트를 개발하고 배포하는데 있어 여러 이점이 있다.[5]


각주

  1. ,〈가나슈, 이더리움 입문 바이블: 모든 이더리움 입문자를 위하여〉,《프로그래밍 강의》
  2. 금마 기자,〈블록체인 개발자가 되기 위하여〉,《금마코인연구소》
  3. 디스트리트,〈가나슈 환경에서의 이더리움 플라즈마 체인 사용기〉,《디스트리트 테크》2019-01-10
  4. 피터 워이너 기자,〈기업 블록체인 개발을 쉽게... 베스트 툴킷 10선〉,《CIO코리아뉴스》2019-05-22
  5. 윈터제이,〈파이썬으로 스마트 컨트랙트 개발하기〉,《윈터제이 블로그》2017-11-27

참고자료


같이보기