Ethereum Testnet 첫 사용기
들어가며
지난 2023년 12월, 업무상 Ethereum(이더리움) 네트워크에서 사용할 수 있는 월렛을 만들어야 했다. Web3와 블록체인에 관한 지식이 없어 우선, 월렛의 가장 기본적인 기능인 토큰 전송 및 관리가 가능한 단계부터 시작하기로 했다. Ganache-cli를 사용해 로컬 환경에서 토큰 조회, 전송, 트랜잭션 조회 등 이런저런 테스트를 하다가 실제 네트워크에서도 월렛이 제대로 작동할지 궁금해져 Ethereum 테스트넷을 알아봤다.
테스트넷 정하기
처음에는 Web3나 블록체인에 관한 지식이 없는 나도 한 번쯤은 들어봤던 Goerli(고얼리)를 사용하려고 했다. 그러다 Goerli보다 나중에 나온 Sepolia(세폴리아)를 알게 됐고, '기왕 사용해 보는 거, 최근에 나온 테스트넷을 써보는 게 좋지 않을까?’라는 생각이 들었다. 먼저 Sepolia Github(깃허브)의 readme(리드미)를 읽었다. 무슨 말인지 도무지 알 수가 없었다. PoA(Proof of Authority, 권한 증명) 합의 메커니즘을 들어만 봤지 어떻게 작동되는지 몰랐다. 요즘 정보가 필요할 때 GPT에게 종종 도움을 요청하는 편이라 이 친구에게도 질문을 했다.
GPT의 추천은 Goerli였다. 이유는 FT(Fungible Token)와 NFT(Non-Fungible Token)의 전송 및 관리와 같은 월렛의 기본적인 기능을 개발하고 테스트하는 데 Goerli이 더 안정적이고, 사용자가 많아 개발 과정에서 발생할 수 있는 문제 해결에 도움이 될 수 있다는 것이었다.
이 친구의 답변은 늘 그렇듯 검증이 필요하지만, 이번만큼은 의견을 따라보기로 했다. 진작에 Goerli로 정했으면 시간을 아낄 수 있었겠지만. 공부한 셈 치고, 돌고 돌아 Goerli Github에 접속했다. 그러자 ‘Goerli will be deprecated as of January 2023’라는 공지가 눈에 띄었다.
그랬다. Goerli는 이미 지원이 중단된 상태였다. 테스트넷을 알아보던 때는 12월이었기에 여전히 사용은 가능했지만, 당장 다음 달인 2024년부터는 어찌 될지 알 수 없어 보여서 Goerli 테스트넷은 포기해야 했다.
우여곡절 끝에 선택한 테스트넷, Holesky
Goerli는 쓸 수 없었지만 Goerli Github 상단의 이미지를 통해 Holesky(홀스키) 테스트넷의 존재를 알 수 있었다. Holesky의 특징은 다음과 같다.
- Goerli를 대체하는 퍼미션리스 PoS(Proof-of-stake, 지분 증명) 테스트넷.
- 스테이킹, 인프라, 프로토콜 개발자 테스트넷으로 사용.
- 분산 애플리케이션, 스마트 컨트랙트, 다른 EVM 기능 테스트는 Sepolia 사용을 권장.
- 2023년 9월 28일 론칭돼 2027년까지 LTS(Long Term Support)이며, 2028년 지원 종료.
Sepolia는 내가 필요한 목적과는 다른 용도의 테스트넷으로 보였다. Holesky가 Goerli를 완벽하게 대체할 테스트넷으로 판단됐다. 이더리움 2.0을 지원해서 향후 추가 테스트가 필요할 때 또 사용할 수 있겠다는 생각도 들었다. 홈페이지를 방문하니 MetaMask(메타마스크)에 Holesky 네트워크를 추가하는 버튼이 있어 사용하던 MetaMask에 Holesky 테스트넷을 추가했다.
테스트용 코인 받기
테스트넷에서 테스트를 하려면 코인이 필요하다. 다행히 대부분의 테스트넷에서 수도꼭지라는 테스트용 코인을 받을 수 있다. 사이트에 접속하면 웬 수도꼭지 이미지가 있는데, 하단의 인풋 영역에 자신의 월렛 주소를 입력하고 'Start Mining' 버튼을 누르면 일정 시간이 지난 후 약 33 ETH가 들어온다.
월렛 연결하기
web3.js 또는 ethers.js를 이용해 Holesky 테스트넷에 월렛을 연결해야 한다. 이때 RPC 주소가 필요한데, Holesky 홈페이지에 ‘JSON RPC https://rpc.holesky.ethpandaops.io’라고 나와 있다. 그런데 이 주소를 써도 월렛이 연결되지 않았다. 원인이 무엇인지 알 수 없는 상태로 해결 방법을 찾아보니, 대부분 infura를 통해 테스트넷에 접속하라고 했다. 하지만 이 방법은 회원가입을 해야 해서 그닥 내키지 않았다.
그러던 와중 ethereum-testnet.publicnode라는 사이트를 발견했고, 이 또한 infura 같은 서비스처럼 보였으나 회원가입을 하지 않아도 됐다. 이곳에 있는 RPC Endpoint Link 주소를 사용하니 그제야 Holesky에 월렛을 연결할 수 있었다. 테스트를 마치고 월렛을 실제로 구현할 때는 잘 알아보고, Holesky 홈페이지에 나와 있는 JSON RPC를 사용하는 것이 좋을 듯하다.
마치며
웹3나 블록체인에 대한 지식이 거의 없다시피 한 상황에서 Ethereum 테스트넷 선정부터 월렛을 연결하기까지 겪었던 어려움을 정리해 봤다. 특히 Holesky 테스트넷에 관해 참고할 만한 국내 자료가 많지 않아 더 헤매었다. 혹여나 나와 같은 상황의 누군가에게 이 글이 조금이나마 도움이 됐으면 한다.
더 자세한 기술 정보를 보려면 XE 기술 블로그 원문(링크)을 확인하세요.
Edit Writing by Eun-Ju Choi, UX Writer