스마트 컨트랙트를 개발하고 테스트하기 위한 준비 단계로 이더리움 개발용 네트워크를 설치하는 과정입니다.
순서
- 이더리움 클라이언트 설치
- Mist 브라우저 설치
- 개발 네트워크 설치 및 기동
- 간단한 스마트 컨트랙트 작성 및 테스트
설치환경
- OS : Windows 7 64-bit
이더리움 클라이언트 설치
Go Ethereum 다운로드
- Geth 1.8.1 Installer 64-bit
- https://geth.ethereum.org/downloads/
설치 방법은 간단하기 때문에 다운로드 받은 인스톨 패키지를 실행하시면 쉽게 설치하실 수 있습니다.
Mist 브라우저 설치
Mist 다운로드
- Mist 0.9.3 (Mist-installer-0-9-3.exe)
- https://github.com/ethereum/mist/releases
Go Ethereum과 마찬가지로 설치 방법이 간단하기 때문에 따로 설명하지 않겠습니다.
개발 네트워크 설치 및 기동
이더리움 개발 네트워크 기동
윈도우즈 명령 프롬프트에서 아래 명령어를 실행합니다.
> mkdir C:\DevNet
> geth --dev --datadir "C:\DevNet" --ipcpath geth.ipc console
지갑 생성
Geth(Go Ethereum) 자바스크립트 콘솔에서 아래 명령어를 실행합니다.
> personal.newAccount()
패스워드를 입력해야 합니다.
채굴 시작
> miner.start()
간단한 스마트 컨트랙트 작성 및 테스트
Mist 실행
설치한 Mist 브라우저를 실행합니다.
Mist 시작 화면 우측 상단에 'PRIVATE-NET'이라고 뜨는지 확인하고 하단에 'LAUNCH APPLICATION' 클릭하면 Mist 브라우저가 실행됩니다.
반드시 'PRIVATE-NET'에 접속하는지 확인해야 합니다. 해당 문구가 없다면 실제 Ether를 전송할 수 있는 공용 네트워크에 접속하게 됩니다.
신규 컨트랙트 설치
상단의 '컨트랙트' 탭을 클릭하여 열린 화면에서 '신규 컨트랙트 설치' 항목을 클릭하여 컨트랙트 작성을 시작합니다.
'솔리더티 컨트랙트 소스 코드' 편집기에 아래의 코드를 입력합니다. 간단한 값을 저장하고 조회하는 솔리디티 코드입니다.
코드를 작성한 후 설치할 컨트랙트로 'Simple Storage'를 선택한 다음 '설치' 버튼을 클릭합니다.
pragma solidity ^0.4.18;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public constant returns (uint) {
return storedData;
}
}
설치 버튼을 클릭하면 'Create contact' 창이 뜹니다.
컨트랙트 송신 계정이 Main account(Etherbase)인 경우에는 패스워드 입력 없이 'SEND TRANSACTION' 버튼을 클릭하여 컨트랙트를 생성합니다.
송신 계정이 추가로 생성한 계정이라면 계정 생성 당시 입력한 패스워드를 입력합니다.
컨트랙트 생성이 완료되면 컨트랙트 화면(컨트랙트 탭)에서 생성된 신규 컨트랙트를 확인하실 수 있습니다.
컨트랙트 실행
생성된 컨트랙트를 클릭하면 컨트랙트 정보를 조회하고 컨트랙트에 읽고 쓰기를 실행할 수 있는 화면을 보실 수 있습니다.
'컨트랙트에 쓰기' 영역에 'Set' 함수가 선택되어 있습니다. 컨트랙트를 실행하기 위해 임의의 숫자를 입력하신 후 '실행' 버튼을 클릭합니다.
실행 버튼을 클릭하면 'Execute contract' 창이 뜹니다.
컨트랙트 생성할 때와 마찬가지로 'SEND TRANSACTION' 버튼을 클릭하여 컨트랙트를 실행합니다.
컨트랙트 실행이 완료되면 컨트랙트 정보 조회 화면에서 'Get' 항목 밑에 실행 당시 입력한 숫자가 조회되는 것을 확인하실 수 있습니다.
이상으로 Windows 7에 이더리움 개발용 네트워크를 설치하는 과정을 진행해 보았습니다.