암호화폐 (비트코인, cryptocurrency, bitcoin)

[Ethereum] 스마트 컨트렉트로 "Hello, World"를 출력하자.​

이더리움의 계정은 사용자 계정과 스마트 컨트렉트 계정이 있다.
사용자 계정은 private key를 통해서 생성하지만 스마트 컨트렉트 계정은 계약언어를 컴파일한 바이트코드를 블럭체인에 배포함으로써 생성할 수가 있다.

Code ---> Compile ---> Byte Code, ABI ---> Deploy ---> Smart Contract

스마트컨트렉트를 위한 계약언어가 몇가지 있지만 가장 많이 쓰이는 Solidity를 이용한다.

Solidity를 사용하기 위해서 직접 컴파일해서 배포할 수도 있지만 Remix-Ide(https://github.com/ethereum/remix-ide)를 이용하면 웹브라우저에서 바로 코딩이 가능하고 배포도 손쉽게 할 수가 있다.

Remix-ide를 직접 설치해서 사용하도 되지만 ​https://remix.ethereum.org 에 접속해서 개발하면 별도의 설치없이 바로 사용이 가능하다. 또한 웹브라우저 내에 파일이 저장되기 때문에 나중에 다시 접속하더라도 개발하던 파일을 그대로 이용할 수가 있다.

그러면 ​https://remix.ethereum.org 에 접속해보자

그림입니다.
원본 그림의 이름: mem000063bc6ce1.png
원본 그림의 크기: 가로 1326pixel, 세로 996pixel

최초에 접속하면 ​browser/ballot.sol 이라는 파일의 코드가 편집기에 나온다.

왼쪽 상단에 + 모양의 아이콘을 누르면 파일이름을 입력할 수가 있는 새로운 창이 뜨는데 HelloWorld.sol 이라고 변경하고 OK를 클릭한다.

그림입니다.
원본 그림의 이름: mem000063bc0001.png
원본 그림의 크기: 가로 640pixel, 세로 236pixel

이제 깨끗한 화면의 편집기가 뜨면 다음과 같이 작성한다.

pragma solidity ^0.4.23;

 

contract HelloWorld {

     string public str;

 

     constructor() public {

              str = "Hello, World";

     }

 

     function setName(string _str) public {

             str = _str;

     }

 

     function run() public view returns(string) {

             return str;

     }

}

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

모두 작성하고 화면 우측에 Compile 탭으로 가서 Start to compile 버튼을 클릭하면 컴파일을 한다.
Auto compile 옵션을 체크하면 수동으로 컴파일 하지 않아도 자동으로 계속 컴파일을 하게 된다.

그림입니다.
원본 그림의 이름: mem000063bc0002.png
원본 그림의 크기: 가로 400pixel, 세로 291pixel

컴파일이 정상적으로 완료되면 녹색박스에 컨트렉트 이름이 표시된다.

컴파일이 정상적으로 완료되었으면 블럭체인에 배포하고 스마트 컨트렉트에 접근해보자.
화면 우측 박스에서 이번엔 Run 탭을 클릭한다.

그림입니다.
원본 그림의 이름: mem000063bc0003.png
원본 그림의 크기: 가로 395pixel, 세로 387pixel

Run 탭을 클릭하면 몇가지 설정항목과 컨트렉트 리스트 박스가 나온다.

Environment 항목은 ​JavaScript VM, Injected Web3, Web3 Provider를 선택할 수가 있다.
JavaScript VM을 선택하고 개발하면 별도의 이더리움 네트워크나 채굴작업 필요없이 코드를 테스트할 수가 있어서 매우 편리하다.

이번에는 JavaScript VM을 선택하고 나머지 설정항목은 따로 손대지 않아도 된다.

HelloWorld가 선택되어있는 리스트박스 아래에 Create버튼이 있다.
생성자를 실행하는 것인데 예제에서는 생성자에 아무런 인자를 받지 않기 때문에 별도의 입력없이 바로 버튼을 클릭한다.

creation of HelloWorld pending...

[vm] from:0xca3...a733c, to:HelloWorld.(constructor), value:0 wei, data:0x608...00029, 0 logs, hash:0x529...1899c

 

하단의 콘솔화면에 Transaction이 일어났음을 보여주고 Details 버튼을 클릭하면 세부정보가 보이게 된다.

정상적으로 Transaction이 완료되면 Create 버튼 아래쪽에 스마트 컨트렉트에 접근 할 수 있는 박스가 보인다.

그림입니다.
원본 그림의 이름: mem000063bc0004.png
원본 그림의 크기: 가로 394pixel, 세로 179pixel

run 버튼을 누르게 되면 스마트 컨트렉트의 function run을 실행하게 된다.

0: string: Hello, World

 

가 나오는 것을 확인 할 수가 있다.

str 버튼은 string public str; 의 변수를 보여주는 버튼으로 run과 동일하게 나온다.​

setName은 빨간색 박스로 나오는데 Transaction이 일어난다는 의미이다. Transaction이 일어나게 되면 gas가 소비된다.
옆의 입력 박스에 "Hello, Harry"라고 입력한다. 이때 큰따옴표(")도 함께 써야한다.
그리고 setName을 클릭한다.

transact to HelloWorld.setName pending ...

[vm] from:0xca3...a733c, to:HelloWorld.setName(string) 0xec5...e2137, value:0 wei, data:0xc47...00000, 0 logs, hash:0x2e0...ca0ba

 

Console 박스에 transaction이 있어난 내용이 보인다.
JavaScript VM을 이용하기 때문에 별도의 채굴없이도 곧장 Transaction이 일어난다.

이제 다시 run버튼을 눌러보자.

0: string: Hello, Harry

 

나중에 입력한 글자로 변경되는 것을 볼 수가 있다.

Remix-ide를 이용해서 Solidity 언어를 작성하고 JavaScript VM을 통해 스마트 컨트렉트를 테스트해보았다.
다음번엔 이전 시간에 했던 Private Network on Docker​에 접속해서 배포해보고 Ethereum TestNet에 배포해보도록 한다.

[출처] https://steemit.com/ethereum/@ohk5004/ethereum-hello-world

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 25085
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 24564
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 25943
1082 Get to know TensorFlow.js in 7 minutes 7분만에 텐서플로우 자바스크립트 훑어보기 file 졸리운_곰 2019.12.17 26883
1081 [데이터분석][머신러닝] When not to use machine learning or AI Adventures in wishful thinking, nonstationarity, and pattern-finding / 기계 학습 또는 AI를 사용하지 않아야하는 경우 희망찬 사고, 비정상 성, 패턴 찾기의 모험 file 졸리운_곰 2021.03.28 19786
1080 [DAsP] 데이터아키텍쳐준전문가 요약자료 file 가을의 곰을... 2013.11.09 17676
1079 ADSP요약정리.pdf file 졸리운_곰 2016.10.23 6012
1078 데이터아키텍처 전문가.1.전사아키텍처_이해(2010).pdf file 가을의 곰을... 2013.10.08 4540
1077 머신러닝이란 무엇인가? file 졸리운_곰 2019.12.22 4163
1076 [DAP] 내용정리 및 문제 풀이 졸리운_곰 2014.07.18 4146
1075 유용한 오라클 쿼리 – 코멘트 조회 등 졸리운_곰 2014.01.02 3703
1074 이력 관리란 ? [sql 테이블] 이력관리 처리 history 테이블 file 졸리운_곰 2018.01.11 3645
1073 [ADsP] 제12회 데이터분석준전문가 시험 복원 file 졸리운_곰 2017.11.05 3605
1072 PL/SQL의 에러 처리방법 가을의곰을... 2013.12.27 3409
1071 [Dap] 데이터아키텍쳐전문가 내용 정리 및 문제풀이 file 가을의 곰을... 2013.11.12 3390
1070 설문 조사를위한 데이터베이스 설계 file 졸리운_곰 2020.09.05 3371
1069 [PLSQL] 상수와 변수 가을의곰을... 2013.12.27 3235
1068 ORCLE 문자열을 숫자로, 숫자를 문자로, TO_CHAR(), TO_NUMBER() 가을의곰을... 2013.12.27 3171
1067 PL_SQL 1일차 file 가을의곰을... 2013.12.27 3138
1066 [oracle, 오라클] 테이블이 존재 하는데, ORA-00942 발생 file 졸리운_곰 2020.12.11 2915
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED