검수요청.png검수요청.png

가나슈

해시넷
Asadal (토론 | 기여)님의 2019년 9월 1일 (일) 16:08 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

가나슈(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]

활용[편집]

가나슈는 이더리움 기반 블록체인 애플리케이션 개발에 사용하는 개인용 블록체인이다. 애플리케이션이 블록체인에 끼치는 영향을 GUI에서 확인할 수 있으며 계정 잔액, 계약 생성, 가스 사용 등 세부 정보도 확인할 수 있다. 거래할 때 자동으로 채굴하게 만들 수 있고, 블록 생성 시점도 초 단위로 조정할 수 있다.[5]

가나슈는 이더리움 개발을 위한 개인 블록체인으로 계약을 배포하고, 앱을 개발해 실행 테스트를 할 수 있는 개인 블록체인이다. 블록체인을 사용해 송금하게 될 경우 전송 자체에도 비용이 들지만, 정수가 아닌 소수자리의 거래도 가능하기 때문에 테스트는 매우 중요하다. 작든 크든 어떤 서비스를 만들더라도 충분히 검증하고 난 후 실제 서비스에 옮기는 것을 권한다. 가나슈는 윈도뿐 아니라 맥과 리눅스 버전도 있으니 자신의 운영체제에 맞는 것을 다운로드 받으면 된다.[6]

Time Token이라는 간단한 스마트 컨트랙트를 만들어 이를 미스트(Mist) 지갑 클라이언트를 사용해 직접 배포하는 방식을 시연했다. 보통 배포 자체는 지갑 클라이언트를 사용하거나 트러플(Truffle)을 이용해 컴파일과 테스트를 거친 후 연동되어있는 이더리움 노드(e.g. Geth, Parity)를 통해 직접 배포하곤한다. TestRPC는 보통 개발단계에서 사용되며 현재 가나슈(Ganache)로 이관되었다. (트러플에 가나슈까지 네이밍은 잘한다는 생각이 든다) 뒤에서도 말하겠지만 가나슈를 이용하면 스마트 컨트랙트를 개발하고 배포하는데 있어 여러 이점이 있다.[7]

종류[편집]

Ganache CLI[편집]

Truffle Ethereum 개발 도구 제품군의 일부인 Ganache CLI는 Ethereum 개발을위한 개인 블록체인 Ganache 의 명령행 버전이다. Ganache CLI는 이더리움 제이(ethereumj)를 사용하여 전체 클라이언트 동작을 시뮬레이션하고 이더리움(Ethereum) 응용 프로그램을 더 빠르고 쉽고 안전하게 개발합니다. 또한 모든 인기있는 RPC 기능 및 이벤트 (이벤트와 같은)가 포함되어 있으며 결정적으로 실행하여 개발을 쉽게 할 수 있다.[8]

GUI(지유아이)[편집]

GUI(지유아이)란 Graphical User Interface의 약자로서, 그래픽 이미지를 사용하여 컴퓨터와 사용자가 의사소통하는 사용자 인터페이스(UI)를 말한다. 그래픽 유저 인터페이스라고도 한다. 키보드 뿐만 아니라 마우스나 터치패드 또는 화면 터치로도 조작할 수 있다. 텍스트 기반의 인터페이스(I/F)를 사용한 도스(DOS)나 리눅스(Linux) 컴퓨터와 달리, 애플(Apple)의 매킨토시(Macintosh)나 마이크로소프트(Microsoft)의 윈도우(Windows) 컴퓨터는 아이콘 이미지 등 화려한 그래픽을 사용한 GUI를 도입하였다.

각주[편집]

  1. ,〈가나슈, 이더리움 입문 바이블: 모든 이더리움 입문자를 위하여〉,《프로그래밍 강의》
  2. 금마 기자,〈블록체인 개발자가 되기 위하여〉,《금마코인연구소》
  3. 디스트리트,〈가나슈 환경에서의 이더리움 플라즈마 체인 사용기〉,《디스트리트 테크》2019-01-10
  4. waterhippo 기자,〈[왕초보윈도 8에 가나슈 설치하기... 가나슈가 먹는 초콜릿 이냐구요? ^^〉,《스팀잇》2018-04-30
  5. 가사키 나가토, 시노하라 와타루 저자-〈처음 배우는 블록체인〉,《구글북스》2018-06-20
  6. 피터 워이너 기자,〈기업 블록체인 개발을 쉽게... 베스트 툴킷 10선〉,《CIO코리아뉴스》2019-05-22
  7. 윈터제이,〈파이썬으로 스마트 컨트랙트 개발하기〉,《윈터제이 블로그》2017-11-27
  8. 깃허브, 〈Ganche CLI에 오신 것을 환영합니다.〉, 《깃허브》

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 가나슈 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.