본문 바로가기

코인/코인 개발

이더리움(Ethereum) 테스트넷 종류와 활용

이더리움 스마트 컨트랙트를 개발하거나 관련 프로젝트 작업 시에 필수적으로 테스트넷을 이용하게 되는데, 이번 포스팅에서는 공개된 테스트넷의 종류와 이를 어떻게 활용할 수 있는지 알아보도록 하겠습니다.

 

다음은 현재 이더리움 개발자 문서에서 밝히고 있는 공개 테스트넷의 목록과 정보입니다.

 

  • Görli(or Goerli) - A proof-of-authority testnet that works across clients.
  • Kovan - A proof-of-authority testnet for those running OpenEthereum clients. ※ OpenEthereum은 런던 하드포크 이후에 더 이상 사용되지 않습니다(Deprecated).
  • Rinkeby - A proof-of-authority testnet for those running Geth client.
  • Ropsten - A proof-of-work testnet. This means it's the best like-for-like representation of Ethereum.

 

먼저 Ropsten 네트워크를 제외한 나머지 테스트넷은 PoA(Proof-of-Authority) 합의(Consensus) 방식을 사용하고 있는 것을 알 수 있습니다. 즉, 관리 주체가 명확하다는 것이겠지요.

 

다만, 사용하고 있는 클라이언트의 종류가 각각 다른데, Görli 같은 경우 OpenEthereum(과거 Parity Ethereum), Geth, Nethermind, Hyperledger Besu(과거 Pantheon) 등을 사용한 크로스-클라이언트 동기화 방식이고, Kovan은 OpenEthereum을, Rinkeby는 Geth 클라이언트와 동기화하는 식입니다.

 

Ropsten은 메인넷과 마찬가지로 PoW(Proof-of-Work) 합의 방식을 사용하고 있으므로 동작 방식에 있어서 메인넷과 가장 비슷하다고 할 수 있겠습니다.

 

따라서, 실제 개발 시에는 Ropsten에서 가장 먼저 테스트를 해보고, 그다음 클라이언트 적용 이후 Görli 나 Rinkeby에서 이어서 테스트를 해보는 식으로 진행된다고 할 수 있겠습니다. 이는 다음과 같이 올해 베를린 하드포크와 런던 하드포크에서 적용되었던 순서와 같습니다.

 

  Berlin Upgrade London Upgrade
Ropsten 2021년 3월 10일 2021년 6월 24일
Görli 2021년 3월 17일 2021년 6월 30일
Rinkeby 2021년 3월 24일 2021년 7월 7일
Mainnet 2021년 4월 15일 (블록 높이 12,244,000) 2021년 8월 5일 (블록 높이 12,965,000)

 

쉽게 확인할 수 있는 다른 방법으로는 MetaMask의 네트워크 목록을 보면 알 수 있는데, 아래 화면에서처럼 상단 네트워크 목록 메뉴 버튼을 누르면 다음과 같이 테스트넷 목록을 같이 확인하실 수 있습니다. MetaMask의 설치 방법은 이전 포스팅을 확인해주세요.

 

MetaMask에서 기본 제공하는 이더리움 네트워크 목록. 출처: MetaMask

 

 

테스트넷에 연동해 개발한 작업을 확인해보기 위해선 Ether가 필요한데, 이는 다음과 같이 Faucet을 통해 얻을 수 있습니다. Ropsten의 경우에는 이더리움 주소를 입력하면 0.3 ETH를 보내주고, Goerli와 Rinkeby는 트위터 등 소셜 네트워크에 이더리움 주소를 올려놓고 기간에 따른 원하는 ETH의 양과 이더리움 주소를 올려둔 링크 URL를 보내주면 해당하는 ETH를 보내주는 식입니다.

 

Ropsten Testnet Faucet. 출처: https://faucet.ropsten.be

 

Rinkeby Testnet Faucet. 출처: https://faucet.rinkeby.io/

 

Goerli Testnet Faucet. 출처: https://faucet.goerli.mudit.blog/

 

이렇게 얻은 테스트용 ETH는 스마트 컨트랙트 개발 시에 사용할 수 있습니다.