BlockChain
(BlockChain) Ganache
JJeongHyun
2023. 2. 10. 14:06
반응형
ganache
- 테스트용 로컬 이더리움 네트워크
- 테스트 목적으로 로컬에 설치해서 사용할 수 있는 일종의 간이 블록체인
- ganache의 장점
- Geth 등 보다 빠른 속도
- 별 다른 세팅 없이 바로 테스트가 가능
- 기본으로 10개의 계정이 생성되며 각 계정에 100 Coin씩 지급
- 서버연결 시에 어느 정도의 계정의 수와 Coin량을 조절할 수 있다
- 단점
- 채굴을 해도 보상이 없다
- 외부의 네트워크 피어로 연결이 안 된다
- 서버종료 시 모든 데이터가 삭제된다
ganache Install
npm i -g ganache-cli
- Ubuntu 환경에서 node.js가 설치가 되어 있어야 한다
- cli : Commend Line Interface
ganache-cli 실행
npx ganache-cli
# ganache-cli
ganache-cli options
-a 100 | --account 100
-e | --defaultBalanceEther 1000
-b 60 | --blockTime 60
-p | --port
-h | --host | --hostname
-g | --gasPrice
-l | --gasLimit
--chainId
- -a 100 | --account 100 : 서버시작 시 생성할 계정의 수, 기본값 10
- -e | --defaultBalanceEther 1000 : 서버 시작 시 생성되는 계정의 소지 Ether, 기본값 100
- -b 60 | --blockTime 60 : 자동 마이닝 시간 간격, 초 단위, 지정하지 않은 게 좋다, 기본적으로 트랜잭션 발생 시 마이닝을 바로 진행한다
- -p | --port : 사용할 포트, 기본값 8545
- -h | --host | --hostname : 기본 접속 주소, http.addr 랑 같은 기능을 한다고 생각하면 된다. 기본값은 127.0.0.1
- -g | --gasPrice : wei의 가스 가격, 기본값 20000000000 (20 GWei)
- -l | --gasLimit : 블록 가스 한도, 기본값 0x6691b7
- --chainId : 체인 아이디, 기본값 1337
metamask 내의 네트워크 ganache 연결
ganache 네트워크 상세 등록
ganache의 RPC
- 기존 RPC 종류
- eth
- accounts
- blockNumber
- coinbase
- getBalance
- sendTransaction
- miner
- start : 자동 마이닝 시작
- stop : 자동 마이닝 종료
- personal
- unlockAccount
- newAccount
- sendTransaction
- eth
- ganache RPC
- evm
- snapshot : 현재 상태를 저장한다
- revert : snapshot으로 상태를 되돌린다. 되돌린 스냅샷 기준으로 이후 스냅샷은 삭제된다
- mine : 강제 채굴
- unlockUnknownAccount : unlockAccount와 같다. 단, 비밀번호가 없이
- lockUnknownAccount : lockAccount와 같다. 단, 비밀번호 없이
- evm
- evm_snapshot
curl -X POST -H "content-type:application/json" --data '{"id":1337, "jsonrpc": "2.0", "method":"evm_snapshot"}' http://localhost:8545
- evm_revert
curl -X POST -H "content-type:application/json" --data '{"id":1337, "jsonrpc": "2.0", "method":"evm_revert", "params":["0x3"]}' http://localhost:8545
metamask 계정들 결과