Sense categoria

본격 투자용 이더리움 DAPP 만들기 (기획,준비하기) [1/4]

“본격 투자용 이더리움 DAPP 만들기 시리즈”

실제로 블록체인이 사용되지 않아도 될 분야에 (중앙화 솔루션으로 충분한 분야에)
투자를 받기위해 스토리지형으로 DAPP을 만들어서 플렛폼에 끼워넣는 방법을 이야기 하고자한다.

*미리 이야기하지만 절대 이 글은 특정 회사, 프로젝트를 비난,비방할 의도로 작성하는 글이 아니다. “스토리지형 DAPP” 을 만드는 방법에 대해 이야기하는 글이다. 혹여나 문제의 소지가 있다면 개인적으로 연락바란다. *

기획하기

일반적으로 간단한 Dapp 을 만들고자 한다면 input , output이 있는 스토리지 형태로 사용하고자 하는 경우가 많다.

이더리움의 경우에는 변수에 데이터가 들어갈때마다 한개의 트렌젝션이 생기게 되는데
쉽게말하면 opcode 가 실행될때마다 하나의 트렌젝션이 생긴다.

트렌젝션이 생기게 되면 가스비 가 들게 되는데, OPCODE 를 실행하는 만큼(?) 금액을 책정해서 비용을 매기게 되는 것이다.

쉽게 이야기하자면, 내가 더하기 연산을 스마트 컨트렉트로 한다면 더하기에 대한 가스비 (0.000003ETH) 가 부과 되는 방식이다.

이더리움을 스토리지로 쓰는 것이 비효율적이다!

라는 이야기를 하는 사람이 간혹있는데 그 이유도 가스비 때문이다.


저기서 나오는 GAS의 단위는 Gwei 라는 단위인데, 1,000,000,000 Gewi 가 1 ETH 라 생각하면 된다.
그렇게 놓고보면 얼마 안되어 보일지도 모르겠지만, Dapp을 개발하는 입장이라면 저 opcode가 단 한번 실행되는것은 아닐것이라는
사실을 꼭 알고 생각해봐야된다고 생각한다.

저런 가스비 때문에 JPG,PDF파일을 째로 올릴수가 없는 것이다. 2MB 만 저장해도 1.2ETH 가량의 가스비가 부과되니 말이다.

효율을 생각해보았는가? 그럼 이제 본격적으로 스마트 컨트렉트를 짜러갈 준비를 하러가자.

스마트 컨트렉트 작성할 준비하기 (Solidity)

축하한다! 드디어 우리는 개발할 준비를 하러간다,

우리가 일반적으로 프로그래밍을 할때 Visual Studio Code 와 같은 IDE를 사용해서 개발하고, GCC와 같은 컴파일러를 활용해 개발한다.

그러나 스마트 컨트렉트를 작성할때는 Remix IDE 라는 것을 많이 활용한다. 컴파일도 해주고, 배포도 도와주고, 심지어 인텔리센스(자동완성) 까지 지원한다.

웹 기반 IDE인데 창을 꺼도 코드가 저장된다. (미개한 저장따위 안해도된다!)(웹 스토리지였나 뭐시기 쓴다던데 기억이안난다)
다만 단점은 다크테마가 없다 (갸아아아악!!!)

2019-02-06 11 41 47

요로코롬 생긴게 나올텐데, 가운데 있는 하얀바탕에 글자 잔뜩 있는곳에 코드를 쓰고, 오른쪽 바에서 Run, Compile 등을 할 수 있다.
솔리디티 0.4 버전과 0.5 버전에서 차이나는 문법이 몇가지 있어서 나는 최신버전이 아닌 0.4.2 버전 기준으로 이야기하고자 한다.
오른쪽 컴파일 옵션에서 오토컴파일과 최적화 옵션은 켜 놓는게 좋다.

버전 설정은 오른쪽에서 하고, 꼭 코드 첫줄에 버전 지정을 해줘야하는데 0.4.2 버전 기준으로
pragma solidity 0.4.2
라고 해줘야한다.

그리고 오른쪽에서 버전 지정할때도 꼭 -nightly 가 붙지 않은 버전을 쓰는것을 권장한다.

2019-02-06 11 54 26

오른쪽 바에서 Run 에 가보면 이렇게 뜨는데
Javascript VM은 비용도 안들고, 실제 네트워크에 올라가는것이 아닌 빌드의 느낌으로 생각하면 되고,
드롭다운을 보면 injected web3 과 web3 provider 가 있다.
injected web3은 메타마스크와 연동해 테스트넷이나 메인넷에 디플로이할때,
web3 provider는 RPC 서버와 연동해 테스트넷이나 메인넷에 디플로이 할때 사용한다.

우리가 일반적으로 테스트할때는 Javascript VM에서 테스트하고, 나중에 디플로이할때는 injected web3 을 사용할예정이다.

축하한다! 이제 우리는 솔리디티 코딩할 준비가 되었다!
이제 솔리디티 코딩하러 다음글 읽으러 ㄱㄱ하자

본격 투자용 이더리움 DAPP 만들기 (컨트렉트 작성하기) [2/4]

Compartir