[dApp] 진짜 쉬운 이더리움 은행 만들기 1편 with Truffle

in ethereum •  7 years ago  (edited)

Ethereum_Truffle

할 것



가상의 클라이언트를 생성하고 이더리움을 입출금 가능한 은행 스마트 컨트랙트를 작성해 콘솔 환경에서 실습해봅니다.

이 프로젝트는 github에 등록되어 있습니다.


준비물

Node.js

홈페이지에 접속해 LTS 버전을 설치해주세요. Truffle 을 설치하는데 사용합니다. (Node.js 5.0 상위 버전을 추천합니다.)

Truffle


> npm install -g truffle



Truffle 은 이더리움 dApp 개발 프레임워크입니다. 스마트 컨트랙트 작성, 빌드 및 배포를 제공하며 유닛 테스트에 용이합니다.

Ganache



홈페이지에 접속하면 쉽게 다운로드 및 설치 할 수 있습니다.

Ganache 는 가상의 이더리움 클라이언트를 만들어줍니다. 마음껏 테스트 가능한 지갑, 계정, 화폐를 제공합니다. 이번 예제에서 Ganache 에 있는 이더리움을 사용합니다.


프로젝트 생성



준비물을 모두 설치했다면 이제 프로젝트를 생성해봅시다.

먼저 빈 폴더를 생성합니다:

> mkdir bank
> cd bank



truffle init 을 입력하여 Truffle 프로젝트 뼈대를 생성합니다:

> truffle init
Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!

Commands:

  Compile:        truffle compile
  Migrate:        truffle migrate
  Test contracts: truffle test



Windows 환경에서 truffle 명령어 실행시 네이밍 충돌로 올바르게 작동하지 않는 경우가 있습니다. 이는 truffle.cmd 명령어로 대체합니다. 만일 계속해서 문제가 생길시 여기에서 해결하세요.

디렉토리 구조를 살펴봅시다:

├── contracts
│
├── migrations
│
├── test
├── truffle-config.js
└── truffle.js


  • /contracts

Solidity 소스 코드를 담고 있는 폴더입니다. 이곳에 컨트랙트를 직접 작성합니다.

  • /migrations

이 폴더는 Truffle 에서 매우 큰 의미를 가집니다. migrations 폴더 여러분이 작성한 컨트랙트(Contract)를 이더리움 네트워크에 Deploy 하는 방식 JavaScript 로 작성합니다.

  • /test

Truffle 은 여러분이 작성한 Contract 의 Unit Test 를 가능케합니다. /test 폴더에 테스트 케이스를 작성하고 truffle test 로 테스트를 실행합니다.

  • /truffle.js, /truffe-config.js

두 스크립트 모두 Truffle Configuration 파일입니다. 프로젝트 생성시 기본적으로 생성되며 일반적으로 /truffle.js 를 사용합니다. /truffle-config.js 는 네이밍 충돌시 사용합니다.


프로젝트 설정



앞서본 /truffle.js 를 수정합니다:

module.exports = {
  networks: {
    development: {
      host: '127.0.0.1',
      port: 7545,
      network_id: '*',
    }
  }
};



Truffle 은 이 모듈을 읽어 실행 환경을 조성합니다.

networks: 현재 dApp 의 네트워크 환경을 정의합니다.

  • live-(이더리움 메인 네트워크)

  • development-(개발용)

  • ropsten-(Ropsten 네트워크)

  • ...

등 접속할 네트워크를 설정합니다.

host: 이더리움 클라이언트 주소를 가리킵니다. 우리는 로컬에서 작업하므로 127.0.0.1 입니다.

port: 포트는 Ganache 의 기본 포트 7545 입니다.

network_id: 이더리움 네트워크는 고유의 Network ID 를 가지고 있습니다. 대표적으로 1 번은 Main Ethereum Network 를 가리킵니다. 우리는 사설(Private) 네트워크를 사용하므로 * 로 설정합니다.


마무리



지금까지 Truffle 프로젝트 설치 및 환경설정을 마쳤습니다. 다음 포스팅은 아래 내용을 포함합니다.

  • Contract 생성 및 작성

  • MigrationDeploy

  • 실행하기

2편 이어보기

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

:0 어떻게 입문해야하나 많이 고민했는데
따라하기 쉬워서 너무 좋네요! 감사합니다~