이더리움 테스트넷에서 기능을 테스트할 때 필요한 메타마스크 세팅 방법, 이더리움 받는방법을 설명합니다.
테스트넷이란
거의 모든 개발 프로젝트는 테스트 환경에서 테스트하고 기능상 문제가 없다고 판단되면 공식 런칭을 합니다.
블록체인 프로젝트도 일반 개발 프로젝트와 마찬가지로 테스트넷(testnet)에 컨트랙트를 배포해 충분한 테스트를 거친 후, 메인넷(mainnet)에 컨트랙트를 배포합니다.
IT 회사에서 일해보신 분이라면 개발 서버라고 들어보셨을 겁니다. 테스트넷을 개발 서버라고 이해하면 쉽습니다.
이더리움 테스트넷과 이름의 유래
이더리움은 다음과 같은 테스트넷을 지원합니다(2022년 6월 30일 기준).
- Sepolia
- Goerli
- Ropsten (deprecated)
- Rinkeby (deprecated)
- Kovan (deprecated)
각 테스트넷 이름은 지하철 역명을 따서 지어졌습니다. 개발자 사이에선 디저트 이름, 도시 이름, 과일 이름 등을 따서 제품 이름이나 버전 이름을 짓는 문화가 있습니다. 이더리움 테스트넷 이름도 이런 문화에서 왔다고 보면 됩니다.
각 테스트넷을 1번 개발 서버, 2번 개발 서버, 3번 개발 서버 등등으로 이해하면 쉽습니다.
Sepolia 테스트넷
Sepolia는 그리스 아테네 중심 북쪽에 있는 지하철역 이름입니다. Sepolia 테스트넷은 블록체인 컨센서스 메커니즘 중 작업증명(Proof of Work) 기반의 테스트넷입니다. 참고로 이더리움 재단은 Sepolia 테스트넷을 2022년 여름 지분증명(Proof of Stake) 기반으로 전환하겠다고 발표하였습니다.
Goerli 테스트넷
Goerli(미국 개발자들은 걸리라고 발음함)은 베를린에 있는 지하철역 이름입니다. Goerli 테스트넷은 권위 증명(Proof of Authority) 기반의 테스트넷입니다.
메타마스크에서 테스트넷으로 전환하기
메타마스크 실행 후 우측 상단을 보면 Ethereum Mainnet이라는 문구가 보입니다.
메타마스크를 아직 설치하지 않았거나 실행방법을 모른다면 링크를 참고해주세요.
별도의 설정을 하지 않았다면 Ethereum Mainnet이 적힌 버튼(네트워크 전환 버튼) 클릭 시 다음과 같은 작은 창이 뜹니다.
다음 그림처럼 Show/hide test networks가 보이면 Show/hide를 클릭합니다(Show/hide test networks가 안 보이면 아래쪽 설명을 봐주세요).
그럼 새로운 창으로 넘어가는데, 여기서 화살표로 표시한 라디오버튼을 클릭해 테스트넷이 보이도록 설정합니다.
Show/hide test networks가 보이지 않는다면 다음 절차를 따라 합니다.
우측 상단의 원형 버튼을 클릭한 후, Setting 메뉴를 클릭합니다.
Advanced 메뉴를 클릭합니다.
스크롤을 내리다 보면 Show test networks라는 항목이 보입니다. 화살표가 가리키는 라디오 버튼을 클릭해 테스트 네트워크가 보이도록 설정합니다.
Show test networks 설정이 완료되었다면 네트워크 전환 버튼 클릭 시 이전과는 다르게 다양한 테스트넷이 노출되는 걸 확인할 수 있습니다.
테스트넷에서 이더리움 충전하기
이더리움 메인넷 블록에 트랜잭션(transaction, ‘트잭’이나 ‘tx’, ‘txn’이라고 줄여서 부르기도 함)를 추가하려면 메인넷과 연동된 지갑에 이더리움 토큰(이하 이더리움)이 있어야 합니다. 그런데 지갑에 이더리움을 추가하려면 실물 화폐가 필요합니다.
기능 개발 중엔 메인넷이 아닌 테스트넷을 사용하기 때문에 테스넷에 연동된 지갑에 이더리움이 있어야 블록에 트랜잭션을 추가할 수 있습니다. 그런데 테스트넷에 이더리움을 추가할 땐 실물 화폐가 필요하지 않습니다. faucet을 사용하면 실물화폐 없이도 테스트넷에 이더리움을 추가할 수 있습니다.
faucet은 (수도) 꼭지라는 뜻을 가진 영어단어인데, 블록체인 세계에선 ‘테스트넷에서 사용자 지갑에 무료로 토큰을 추가할 수 있도록 해주는 웹 서비스’라는 용어로 쓰입니다.
다양한 faucet
테스트넷별로 지원하는 faucet은 여러 가지입니다. 이더리움 재단 공식 페이지에 가면 테스트넷별로 사용 가능한 faucet 목록을확인할 수 있습니다.
Goerli 테스트넷 지갑에 이더리움 충전하기
Alchemy faucet으로 이더리움 충전하기
Alchemy faucet은 Alchemy 사의 지원을 받아 운영되는 faucet입니다. Alchemy 가입 후, faucet에 접속해 인풋 박스에 메타마스크 지갑 주소를 입력하고 ‘Send Me ETH’ 버튼을 누르면 0.2 GoerliETH가 충전됩니다.
24시간마다 0.2 GoerliETH를 충전할 수 있습니다.
Rinkeby 테스트넷 지갑에 이더리움 충전하기
여러 테스트넷 중 Rinkeby 테스트넷에서 기능 테스트를 한다고 가정하고 Rinkeby 테스트넷과 연동된 지갑에 이더리움을 충전해 보도록 합시다.
Rinkby 테스트넷을 지원하는 faucet은 여러 가지가 있습니다(위 그림 참고). 그 중 FaucETH와 Alchemy faucet을 사용해 지갑에 이더리움을 추가해보겠습니다.
FaucETH로 이더리움 충전하기
주의: FaucETH는 많이 불안정하다는 이야기를 주위에서 자주듣고 있습니다. Alchemy faucet을 사용하는걸 추천드립니다.
FaucETH은 다른 faucet과 달리 SNS(소셜 네트워크) 계정 연동 없이도 이더리움을 추가할 수 있도록 해줍니다.
FaucETH(링크: https://fauceth.komputing.org/)에 접속합니다.
인풋 박스가 보이고 이곳에 지갑 주소나 ENS 네임을 입력하라는 글이 보입니다. 우리는 메타마스크 지갑 주소를 입력해 이더리움을 충전해보겠습니다.
송금 시 송금을 받는 사람의 계좌번호가 필요한 것처럼 이더리움을 충전하려면 이더리움을 충전할 지갑 주소가 필요합니다. 우리는 Rinkeby 테스트넷에서 작업한다고 가정했으므로, 메타마스크 지갑이 Rinkeby 테스트넷을 바라보고 있는지 먼저 확인합니다.
메타마스크 상단에서 내 지갑 주소(이더리움 지갑 주소는 0x로 시작)를 바로 확인할 수 있습니다. 네모 아이콘을 클릭해 지갑 주소를 복사합시다.
FaucETH사이트의 인풋 박스에 복사한 지갑 주소를 붙여 넣기 합니다. 그 후 Request funds가 적힌 초록 버튼을 클릭합니다.
Rinkeby 테스트넷을 선택하고 캡챠(악성 봇의 활동을 막기위한 기능)를 통과한 후, 다시 Request funds가 적힌 초록 버튼을 클릭해 충전을 요청합니다.
잠시 대기하라(Please wait)는 화면이 사라진 후 메타마스크 지갑을 확인하면 RinkebyETH가 추가된 것을 확인할 수 있습니다.
그런데, 가끔 FaucETH가 동작하지 않는 경우가 있습니다. 5~10분이상을 기다려도 RinkebyETH가 추가되지 않는다면 또 다른 faucet인 Alchemy faucet을 이용해 봅시다.
Alchemy faucet으로 이더리움 충전하기
Alchemy faucet은 Alchemy 사의 지원을 받아 운영되는 faucet입니다. Alchemy faucet에 접속해 인풋 박스에 메타마스크 지갑 주소를 입력하고 ‘Send Me ETH’ 버튼을 누르면 0.1 RinkebyETH가 충전됩니다.
Alchemy 계정이 있는 경우, 로그인 후 이더리움을 충전하면 0.5 RinkebyETH가 충전됩니다.
가능하면 Alchemy 계정을 만든 후, 토큰을 넉넉하게 충전해 두는 것을 추천해 드립니다.
Chainlink faucet으로 이더리움 충전하기
Chainlink faucet은 Chainlink 사의 지원을 받아 운영되는 faucet입니다. Chainlink faucet에 접속하고 메타마스크를 연결, Capcha 통과 후 ‘Send request’ 버튼을 누르면 0.1 RinkebyETH가 충전됩니다.
Paradigm faucet으로 이더리움 충전하기
Paradigm faucet은 Paradigm 사의 지원을 받아 운영되는 faucet입니다. Paradigm faucet에 접속하고 ‘Sign In with Twitter’ 버튼을 눌러 트위터 계정을 사용해 로그인합니다.
그 후, 지갑주소를 입력하고 ‘Claim’ 버튼을 누릅니다.