블록체인 프로젝트 - 비트코인, 이더리움, 하이퍼레저 패브릭 기반 시스템 구축
박정태 지음 / 정보문화사 / 2019년 7월
평점 :
장바구니담기


solidity를 사용하여 간단한 스마트 컨트랙트 생성

pragma solidity >=0.7.0 <0.9.0; contract Storage { uint256 number; function store(uint256 num) public { number = num; } function retrieve() public view returns (uint256){ return number; } }

* 데이터 타입

String은 문자열 타입으로 싱글 따옴표나 더블 따옴표로 문자열을 지정한다.

Boolean은 bool 키워드를 이용하며 true와 false를 가진다.

Unit는 부호 없는 정수 타입으로 데이터 길이에 따라 unit8, unit16, uint24, uint256(uint)가 있다.

Array는 연속적인 데이터를 저장하는 타입이다. push, pop, length와 같은 특수 기능을 제공한다.

mapping은 데이터를 key : value 형태로 저장한다.

mapping (string => uint) userBalance; userBalance["user1"] = 10 userBalance["user2"] = 20 userBalance["user1"] struct personInfo { uint age; string name; string phone; } mapping (string => personInfo) person;

solidity에서 제공하는 Address는 블록체인에서 동작하는 언어의 특성으로 지갑 주소를 취급하는 데이터 타입니다. address 타입의 자료형은 balance와 transter 기능을 사용할 수 있다.

solidity의 함수는 호출 범위를 정할 수 있다. 가시성이라고도 하는데 public, private, external, internal 이 있다. 그리고 require, assert를 이용하여 예외 처리를 한다. require()와 assert()는 false를 전달하면 내부적으로 revert()를 호출하려 롤백한다.

스마트 컨트랙트에서 데이터를 조회할 때 수수료를 지불하는데 pure나 view 키워드를 사용하면 수수료를 지불하지 않는다. 스마트 컨트랙트는 컨트랙트 주소를 가지고 있어서 지갑 주소처럼 코인을 받을 수 있다.

solidity에서는 is 키워드를 사용하여 상속을 한다.



댓글(0) 먼댓글(0) 좋아요(10)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo