가나슈(Ganache)는 컴퓨터의 Localhost에 이더리움 네트워크(EVM)를 생성하여 테스트를 진행할 수 있도록 해주는 Web3 테스트 툴입니다. 가나슈 등을 이용해 만든 가상 환경을 TestRPC라 합니다.
가나슈 설치
가나슈는 두가지 버전이 있습니다.
GUI에서 사용할 수 있는 애플리케이션을 설치하여 가상의 EVM을 설정할 수 있습니다.
CLI에서 터미널로하여 가상의 EVM을 생성하여 EVM을 설정할 수 있습니다.
> GUI와 CLI 란?
개발자 특성 상, 터미널에서 사용하는 방법이 익숙할 수 있습니다. 그리고 가나슈의 다양한 명령어를 통해 EVM을 커스텀하여 테스트 넷을 구축할 수 있습니다.
GUI를 사용 할 경우 트랜잭션 기록과 지갑의 상황 등을 실시간으로 화면에서 확인할 수 있는 장점이 있습니다.
(1) 가나슈 GUI ver
공식 홈페이지 : https://trufflesuite.com/ganache/
공식 홈페이지를 통해 GUI에서 사용 할 수 있는 가나슈를 설치할 수 있습니다
공식 홈페이지에서 지원하는 설치 패키지로 설치가 끝나면, 위 사진과 같은 창이 나오게 됩니다.
NEW WORKSPACE는 EVM의 설정을 디테일하게 하여 테스트넷을 구축하는 방법입니다.
하지만 QUICK START를 통해 빠르게 테스트넷을 구축하여도, 테스트를 진행하는데 문제는 없습니다.
QUICK START을 눌러 빠르게 EVM 테스트넷을 구축해줍니다.
EVM 테스트넷을 구축하면 위와 같은 UI를 가진 애플리케이션이 실행됩니다. 생성된 지갑과 지갑이 갖고 있는 ETH를 확인할 수 있습니다.
그 외 헤더에 보면 BLOCKS와 TRANSACTIONS 등 카테고리를 통해 테스트넷 의 진행상황을 확인 할 수있습니다.
(2) 가나슈 CLI ver
> npm install -g ganache-cli
ganache-cli는 터미널에서 EVM 테스트넷을 구축하여 Truffle 또는 hardhat 등 Smart Contract Tool과 연동하여 테스트를 진행할 수 있도록 지원합니다.
> ganache-cli
설치가 끝났다면 터미널에 위 코드를 실행시켜주면, Localhost 포트 8545(http://127.0.0.1:8545)에 테스트 EVM이 구축됩니다.
Smart Contract를 베포 시킬 네트워크를 EVM 테스트넷 URL로 연결하여 베포 할 수 있고, Truffle를 통해 테스트를 진행할 수도 있습니다.
📕 Metamask 가나슈 EVM 테스트넷 연결
Truffle 외, 메타마스크에서도 로컬에 베포 된 테스트 넷에 Transaction을 보낼 수 있습니다. 네트워크 맨 아래 "locallhost:8545"를 선택해주고, Transaction을 보내면 테스트넷에 베포 된 Smart Contract로 Call을 할 수 있습니다.
📗 리믹스(Remix) 가나슈 EVM 테스트넷 연결
리믹스(Remix)에서 Smart Contract를 베포 하거나 함수(function)를 실행하여 Transaction을 보낼 때, 네트워크를 가나슈에서 지원하는 테스트 넷에서 실행할 수 있습니다.
[Ganache Provider]를 선택하면 위와 같은 팝업창이 나옵니다.
만약 GUI 버젼을 선택했다면 Ganacge JSON-RPC Endpoint에 http://127.0.0.1:7545를 입력해주세요.
만약 CLI 버젼을 선택했다면 Ganacge JSON-RPC Endpoint에 http://127.0.0.1:8545를 입력해주세요.
이후 베포 및 함수 실행을 하면 로컬에 구축된 테스트 넷으로 트랜잭션을 보내게 됩니다.
지금까지 가나슈(Ganache)를 통해 테스트넷을 구축하고 메타 마스크 및 리믹스에 연동하는 방법에 대해 알아봤습니다.
감사합니다.
'Block Chain > Web3 Library' 카테고리의 다른 글
IPFS Node.js 이미지 올리기 || IPFS | ipfs-api | Node.js || back-end .ver (0) | 2022.10.25 |
---|---|
메타마스크 리액트 토큰(ERC20) 추가 구현 || React | Metamask | ehters.js | EIP-747 || (0) | 2022.10.07 |
메타마스크 리액트 네트워크 추가 & 전환 구현 || React | Metamask | ehters.js || (0) | 2022.10.02 |
메타마스크 리액트 지갑 연동 || React | Metamask | ethers.js || KR (4) | 2022.09.30 |
블록체인 네트워크 ID별 데이터 리스트(List) || JavaScript || KR (0) | 2022.09.29 |
댓글