스마트 컨트렉트(contract 계약), 은 미리 프로그래밍 한 작동로직을 

암호화폐에 넣어놔서 특정 조건 (어떤 계약 체결등)을 트리거로 로직을 발현시켜 놓은 장치 입니다.

 

이 코딩은 솔리디티라는 언어를 통해서 만드는데, 

이 솔리디티 언어는 어떠한거고 어떻게 만드는지 부터 시작해 보고자 합니다.

 

우선 솔리디티 프로그래밍을 하려면 remix 라는 IDE(visual stduio, 이클립스 같은 툴)가 필요합니다.

 

로컬에서 docker를 사용해서 IDE를 다운받아 봅시다

https://github.com/ethereum/remix-ide

 

GitHub - ethereum/remix-ide: Documentation for Remix IDE

Documentation for Remix IDE. Contribute to ethereum/remix-ide development by creating an account on GitHub.

github.com

여기서 소개 하는것과 같이 파워쉘에서 아래와 같이 도커 이미지를 받고, 실행시켜 줍니다.

docker pull remixproject/remix-ide:latest
docker run -p 8080:80 remixproject/remix-ide:latest

그리고 http://localhost:8080 를 크롬같은곳에서 실행하면 아래와 같이 브라우저가 뜹니다.

여기서 test.sol 파일을 만들어 줍시다.

파일 탐색기에 contracts 눌러서 그 위의 문서 아이콘을 눌러 새 파일을 만들 수 있습니다.

소스는 아래와 같이 작성합니다.

pragma solidity >=0.5.0 <0.7.0;
contract HelloWorld {
    function get() public pure returns (string memory) {
        return 'Hello Go-Ethereum Contract';
    }
}

이제 컴파일을 해줍니다.

컴파일은 아래와 같이 하되, pragma 의 컴파일 버전에 주의 해서 선택해 줘야 합니다.

컴파일 버튼 눌렀으면 결과가 나오는데 밑에 

ABI 와 Byteencode 를 살펴 봅시다.

ABI
Bytecode

이제 이렇게 프로그래밍된것을 배포 해야 하는데요

컴파일 밑 아이콘 눌러 보시면 

Deploy(배포) & Run Transactions 이 나옵니다.

여기서 account, cas value 등을 설정한뒤 deploy 를 누르면 됩니다.

 

이제 이걸 우리 프라이빗 geth 서버에 붙게 해봅시다.

geth 설정 파일에 보면 http 랑 api 허용등을 설정하는 옵션이 있는데, 저기로 붙으면 됩니다.

만약 연결이 안되면 geth node 띄울때 문제가 있으니까, 설정을 체크해보록 합시다.

 

이제 보면 어떤 계좌에 활성화 시킬지,

얼마에 할지, 수수료는 얼마인지 그런것들 설정하고, deploy(배포)를 눌러 주면 됩니다.

+ Recent posts