티스토리 뷰
계정(지갑) 만들기
이더리움 블록체인 네트워크에서 일어나는 모든 행위들은 계정으로부터 이뤄지는 트랜잭션에 의해 실행됩니다. 이 트랜잭션을 발생시키려면 계정이 필요하고 그 계정은 MetaMask, Mist browser, MEW(MyEtherWallet) 등으로 EOA(Externally Owned Accounts: 외부 소유 계정)을 간단히 생성가능합니다. 생성된 계정은 Main Network, Test Network 둘다 사용 가능합니다. 저는 MetaMask 를 사용합니다.
참고 - 각 계정은 PrivateKey가 있고, 이것을 비밀번호로 암호화하여 Keystore File 에 저장해서 사용합니다. 이키 하나로 모든 행위를 할 수 있으므로 Keystore File 을 사용하시는 것을 권장합니다.
Test Ethereum 받기
Tocken 을 생성하는 Contract 소스 코드를 배포하려면 수수료가 발생합니다. 소스코드가 길수록 수수료가 많이 발생합니다. MetaMask 를 처음 설치하면 Main Network 로 설정되어 있습니다. 이것을 Rinkeby Network(Test Network)로 바꿔줍니다. 수수료로 사용할 Test Ethereum 을 받으려면 수도꼭지 에서 받을 수 있습니다. tweeter, google+, facebook 등의 소셜네트웤에 이더리움 주소가 들어간 글을 작성하고 그 주소를 입력해야하면 이더리움이 입금됩니다.
계약 배포(Contract Deploy)
최신 버전의 "token sample 소스코드"는 공식 문서 에 있습니다. 배포 도구는 Remix 를 사용합니다. 가운데의 에디터에 소스코드를 붙혀넣고 우측에서 컴파일러 버전을 선택하고 이 버전은 나중에 코드 검증할 때 도 입력해야 합니다. 이제 Run 탭으로 이동합니다. MetaTask 와 연동이 제대로 되었으면 Account 부분에 처음 만든 지갑주소가 있을 것입니다. 그리고 나서 하단에 배포할 Contract 선택하는 부분이 있습니다. 여기서 MyAdvacedToken 을 선택합니다. 이제 초기 공급량, 토큰 이름, 단위(symbol) 를 입력해줘야합니다. 아래 분홍색 deploy 영역에 우측 화살표를 누르고 값을 입력하고 배포를 실행합니다.
배포된 코드 확인
소스코드를 배포하면서 발생한 트랜잭션은 rinkeby.etherscan.io 에서 확인 할 수 있습니다. 이곳에서 계정 주소나, 트랙잭션 해쉬값등으로 검색을 할 수 있고, 배포 시간은 약 2분 정도 소요됩니다.
계약 코드 검증
위에서 배포한 계약 코드는 검증이 되어 있지 않아서 etherscan.io으로는 소스코드를 확인 할 수 없습니다. 검증 방법은 Verify Contract Code 기능을 사용해서 검증 가능합니다. 여기에는 "컨트랙트 계정주소, 컨트랙트 이름, 컴파일러" 를 입력해야합니다. 최적화(Optimization)는 no 로 설정합니다. 그리고 배포할때 입력한 Solidity Contract Code도 입력하고 검증하시면 됩니다.
Mist Browser 사용하면서 생긴 이슈
- 블락 동기화 안 끝나는 이슈 - 윈도우 방화벽을 해제하여 해결하였습니다.
- 공식문서에 있는 샘플코드인데도 컨트랙트생성시 문법에 문제가 있다고나타납니다.
- 솔리디티 컴파일러 버전를 변경할수 없었습니다.
- ubuntu 에서 mainnet을 동기화 하였을 때 100GB 넘는 블럭을 전부 내려받다가 하드 여유 용량 부족이 발생하는 이슈도 있었습니다.
Tip - 윈도우에서 Mist에서 발생하는 로그 확인은 Powershell 의 Get-Content .\all.log.0 -Wait -Tail 1000
기능을 활용하면 좋습니다. 로그 위치는 상단 메뉴로 찾아갈 수 있습니다.
참고 - 계정, 트랜잭션, 가스, 블록가스한도
참고 - Keystore
'etc' 카테고리의 다른 글
Windows Dos 의 유용한 명령어(Vista 이상) (0) | 2019.03.08 |
---|---|
Wordpress 에 Custom endpoint 추가 (0) | 2019.02.13 |
PHP에 Google OTP Authentication 적용 (1) | 2018.06.15 |
bower-installer 사용법 (0) | 2017.10.27 |
Useful JavaScript Library(1) (1) | 2017.10.12 |