본문 바로가기
블록체인 및 경제/솔리디티

5. Ropsten 테스트넷에 ERC20토큰 배포하기

by Danny_Kim 2020. 11. 6.

1. 스마트 계약의 시작, 리믹스 도구 사용해보기

2. 솔리디티 개발환경 구성

3. 스마트컨트랙트 작성 후 배포하기

4. openzeppelin 사용하여 ERC20 토큰 만들기

5. Ropsten 테스트넷에 ERC20토큰 배포하기

6. web3.js 와 자바스크립트를 활용한 간단한 예제

7. 솔리디티 기초, 리믹스로 컨트랙트 작성하기

8. 솔리디티 기본문법 (변수, 데이터타입, 구조체)

9. 솔리디티 배열, 맵핑

10. 솔리디티 조건문, 반복문(if, else, for)

11. 솔리디티 암호화폐 지불(호텔룸 예약하기 프로그램)

12. 솔리디티 상속

13. 리믹스 솔리디티 6.0 버전 ERC20토큰 만들기

14. web3.js 와 자바스크립트를 활용하여 (이더잔액조회) 지갑 만들기

15. 솔리디티 컨트랙트 Web.js 활용하여 웹으로 보여주기


 

지금까지는 로컬PC에서 운영하는 테스트 블록체인에 스마트컨트랙트를 배포하였는데, 이걸 이더리움 메인넷 네트워크에 실제로 배포하는 법에 대해서 해보겠습니다. 그런데 이더리움 메인넷에 배포하기 위해서는 이더가 사용되므로, 동일한 이더리움 테스트넷에 배포하는걸 해보겠습니다. 이더리움 메인넷과 거의 유사하니, 향후에 이더리움 메인넷 배포하는것 역시 어렵지 않게 하실 수 있습니다.

 

1. Infura Key 획득하기

로컬이 아닌 실제 운영중인 이더리움 메인넷, 테스트넷에 우리의 코드를 배포하기 위해서는 블록체인에 접속을 해야 하는데 Inura라는 홈페이지에서 블록체인 접속을 쉽게 도와줍니다. 홈페이지에 접속해보면 아래의 설명이 나옵니다.

아래 홈페이지 접속하여 회원가입합니다.

infura.io/

 

Ethereum API | IPFS API Gateway | ETH Nodes as a Service | Infura

Infura's development suite provides instant, scalable API access to the Ethereum and IPFS networks. Connect your app to Ethereum and IPFS now, for free!

infura.io

1) 새로운 프로젝트를 하나 만듭니다.

MyToken으로 프로젝트를 만들었습니다. (이름은 아무거나 하셔도 되요!!)

만들고 나면, 아래에 KEYS에 PROJECT ID가 나옵니다.

저의 경우엔 7abae76b3c194ad88d53aae12a391048 입니다.

이 PROJECT ID를 이용하여 블록체인 네트워크에 접속할 수 있습니다.

 

 

2. truffle-config.js 파일 수정하기

truffle-config.js 20라인 이후에 주석을 해제해주고 

infuraKey에 위 PROJECT ID 키를 입력해줍니다.

 

추가로 61라인 이후에 아래처럼 주석을 풀어주고,

porvider 부분에 아래와 같이 변경해줍니다.

참고로 주소의 정확성을 위해서 Infura.io 홈페이지에서 링크를 복사&붙여넣기 하면됩니다.

 

3. truffle-hdwallet-provider 라이브러리 설치

니모닉 기반의 키를 사용할 수 있게 도와주는 라이브러리인 truffle-hdwallet-provider라이브러리를 설치해줍니다.

npm install @truffle/hdwallet-provider

 

참고 @truffle/hdwallet-provider

www.npmjs.com/package/@truffle/hdwallet-provider

 

그리고 smartcontract 폴더 아래에 .secret 파일(확장자 없이)을 만들어줍니다.

그리고 ganach-cli 실행시 만들어주는 니모닉 단어들을 여기 .secret에 넣어줍니다.

아래와 같이 해주면 됩니다.

자, 준비작업은 완료되었은 이제 한번 테스트넷에 배포해봅시다!!!

 

혹시 위의 작업이 어려우면,

메타마스크에서 Ropsten테스트넷에서 계정을 하나 만들고, 그 계정에서 니모닉키를 다운받아서 위 _secret에 넣으면 됩니다.

 

4. Faucet에서 테스트 ETH 받기

Ganache를 통해서 로컬에서는 100개의 이더를 받았는데, 테스트넷에는 이더가 없습니다. 그래서 이더를 받을 필요가 있겠죠? 무료로 나눠주니 너무 걱정안하셔도 됩니다!!! 물론 현금으로 바꿀 수 없는 이더라서 아쉽긴 하지만요..

 

메타마스크에서 Ropsten테스트넷을 선택합니다.

Buy 클릭. 그리고 파우셋 테스테에서 이더얻기 클릭하면 됩니다.

 

아래에 request 1 ehter from faucet 클릭해서 이더를 얻습니다.

이더가 들어오기까지 시간이 조금 걸립니다. 

 

이제 이더가 들어왔으니 배포할 수 있습니다.

혹시 위 방법으로 이더를 못받거나 에러가 발생하는경우

아래 사이트에서 받으실 수 있습니다.

https://faucet.dimensions.network/

 

Ropsten Ethereum (rETH) Faucet

Ethereum Faucet - Ropsten

faucet.dimensions.network

 

 

5. Ropsten에 Contract(MyToken) 배포하기

 

아래 명령어를 CMD창에서 입력합니다.

truffle migrate --network ropsten

 

정상적으로 배포가 된다면, 아래와 같이 Network name을 'ropsten'을 찾을것이고

작성된 코드가 정상적으로 배포된다면, 아래와 같이 뜹니다.

 

그럼 실제 이더스캔으로 정상적으로 스마트컨트랙트가 배포되었는지 확인해봅시다!!

 

이더스캔(etherscan.io/) 홈페이지에서 오른쪽 메뉴에서 Ropsten Testnet을 선택하셔도 되고,

아래 홈페이지로 직접 접속하셔도 됩니다.

ropsten.etherscan.io/

 

TESTNET Ropsten (ETH) Blockchain Explorer

Etherscan allows you to explore and search the Ropsten blockchain for transactions, addresses, tokens, prices and other activities taking place on Ropsten (ETH)

ropsten.etherscan.io

 

이 컨트랙트 배포를 위해 사용했던 주소를 조회해보면 아래와 같이 뜹니다.

 

Contract Creation을 클릭해서 해당 토큰을 클릭해보면 아래와 같이 뜨는걸 확인할 수 있습니다.

100MT(My Token)이 정상적으로 발행되었네요!!! 와우!!

 

자, 이걸 한번 다른데로 보내볼까요?

지난번에 했던 myetherwallet.com 에서 아래와 같이 보낼수도 있고. 메타마스크에서 직접 보내도 됩니다.

 

정상적으로 1MT를 받은걸 확인할 수 있습니다.

 

이더스캔에서도 내역을 확인할 수 있습니다.

 

와!!! 드디어 나만의 토큰을 만들었습니다.

이제 ICO를 하고 펀딩을 받으면 됩니다!!!!

누구나 쉽게 ERC20 토큰을 만들 수 있는 시대가 되었네요!!

 

 

참고로 메타마스크 지갑에서 토큰추가를 하면(아래에 컨트랙트 주소를 넣습니다.)

테스트넷에서 사용하는 계정에 ETH와 내가 만든 MT를 지갑에서도 확인할 수 있습니다.

물론 메인넷에도 이와 같은 방식으로 사용합니다.(단 실제 가스비가 지불이 되어야겠지요~~~)

 

반응형

댓글0