salsa source

[이더리움 베이직] 컨트랙트 만들기 본문

STUDY/블록체인

[이더리움 베이직] 컨트랙트 만들기

dayofday 2018. 3. 13. 02:39

<출처 : 이더리움 베이직>



Mist를 이용하여 스마트 컨트랙트를 만들어봅시다.




Mist의 메인 화면입니다. 오른쪽 위 화살표가 가리키는 '컨트랙트'를 클릭합니다.




화살표가 가리키는 신규 컨트랙트 설치 를 클릭합니다.





스크롤을 내리면 위 화면과 같은 소스코드 편집 영역이 있습니다. 여기에 컨트랙트를 작성합니다.



아래 - 기존 코드

---------------------------------------

pragma solidity ^0.4.18;


contract MyContract {

    /* Constructor */

    function MyContract() public {


    }

}

-----------------------------------------



아래 SimpleStorage 예제로 수정합니다.

--------------------------------------------------------

pragma solidity ^0.4.18;


contract SimpleStorage {


    uint storedData;

    

    function set(uint x) public {

        storedData = x;

    }

    

    function get() public constant returns (uint){

        return storedData;

    }

}

----------------------------------------------------------




작성된 컨트랙트를 배포하고 실행합니다.  실행을 위해 Geth를 실행합니다.



cmd창에서 명령어를 순서대로 입력합니다.

> cd\     (최상위 디렉토리로 이동. C드라이브로 이동합니다)

> mkdir c:\MiningTest

>geth --datadir "C:\ethereum\data" --rpc -rpcaddr 사용자IP주소(local이면 0.0.0.0) --rpcport "8552" --rpcapi "admin, db, eth, debug, miner, net, shh, txpool, personal, web3" --port 3030 --nodiscover --networkid 2525 console



위 사진과 같은 화면이 뜨고 대기합니다.

miner.start()를 입력하여 채굴을 시작합니다.







이제 컨트랙트를 배포해봅시다.


Mist로 돌아와서 편집창의 오른편에서 설치할 컨트랙트인 Simple Storage 를 선택합니다.

아래에 설치 버튼을 누르면 다음과 같은 창이 뜹니다.




계좌의 비밀번호를 입력하고 SEND TRANSACTION을 누릅니다.



이때도 마찬가지로 채굴을 하고있어야 컨트랙트를 배포할 수 있습니다.

채굴을 하고있지 않다면 cmd창에서 miner.start() 를 입력하여 채굴을 시작합니다.








미스트 메인 화면인 지갑 하단에 트랜잭션이 생성된 것을 볼 수 있습니다.





컨트랙트 버튼을 눌러 보면 주문형 컨트랙트에도 생성된 것을 볼 수 있습니다.




실행 결과를 확인하기 위해 위 사진에서 새로 생성된 컨트랙트를 클릭합니다.

(위 사진에서 SIMPLE STORAGE 6503)




컨트랙트에 쓰기>함수선택 > Set  선택합니다.






입력칸에 100을 입력하고 실행합니다.


비밀번호를 입력하고 트랜잭션을 보내면







잠시 후 왼편의 "컨트랙트에서 읽어옴" 영역에 100이라는 값이 출력되는 것을 볼 수 있습니다.

(안 보인다면 채굴 중인지 확인해주세요)








Comments