이더리움은 현재 3가지 테스트넷(Ropsten, Kovan, Rinkeby)이 구동중입니다. 테스트넷은 스마트컨트랙트 개발단계에서는 매우 유용하고 없어서는 안되는 도구입니다. 이번 포스팅에서는 테스트넷의 특징에 대해 알아보겠습니다.
Ropsten
메인넷 환경과 제일 비슷하여 스마트컨트랙트 개발환경으로 일반적으로 사용되고 있습니다. 하지만 2017년 2월 Spam attack으로 인해 해당 테스트넷이 문제가 되었고 몇가지 문제를 해결한 후 2017년 3월부터 다시 사용할수 있게 되었습니다. (아직까지도 Spam attack은 유효합니다).
- 합의 알고리즘 : PoW(Proof Of Work)
- 블록타임 : 약 15초
- 지원 클라이언트 : geth, parity
- 실행 방법 :
geth --testnet
orparity --chain ropsten
- Explorer : https://ropsten.etherscan.io/
- Github : https://github.com/ethereum/ropsten
- Request from a faucet : http://faucet.ropsten.be:3001
Kovan
Ropsten의 문제(Spam attack)로 인해 개발자에게 안전한 테스트넷 환경을 제공하기 위해 Parity 팀에서 만들었습니다. 다른 테스트넷에 비해 블록타임이 짧기 때문에 개발 및 테스트에 유리합니다.
- 합의 알고리즘 : PoA(Proof-of-Authority) by the Parity team
- 블록타임 : 4초
- 지원 클라이언트 : parity
- 실행 방법 :
parity --chain kovan
- Explorer : https://kovan.etherscan.io/
- Github : https://github.com/kovan-testnet/proposal
- Request from a faucet : https://github.com/kovan-testnet/faucet
Rinkeby
Kovan과 같이 Spam attack을 방지하고자 만들어졌고 재밌는 점은 Kovan의 PoA 알고리즘이 필요 이상으로 복잡하고 다른 이더리움 클라이언트에 구현 및 포함되는 것이 어렵다는 이유로 이더리움팀에서 자체적으로 만든 알고리즘이 적용되었습니다.
- 합의 알고리즘 : PoA(Proof-of-Authority) by the Ethereum team
- 블록타임 : 약 15초
- 지원 클라이언트 : geth
- 실행 방법 :
geth --rinkeby
- Explorer : https://rinkeby.etherscan.io/
- Github : https://github.com/ethereum/EIPs/issues/225
- Request from a faucet : https://faucet.rinkeby.io/
- Website : https://www.rinkeby.io
결론
그럼 마지막으로 어떤 테스트넷을 선택하여 개발을 진행해야 할지 고민이실텐데요. PoW, PoA 합의 알고리즘에 상관없이 EVM에서 스마트컨트랙트가 실행되는 방식에는 3가지 테스트넷 모두 차이가 없으므로 위에 정리된 특징을 확인하신후 자신에게 맞는 테스트넷을 선택하시면 됩니다.