BlockChain/Ethereum

Ethereum - Truffle

char1ey 2023. 5. 27. 18:36
목차
1. Truffle
2. 트러플을 사용하는 이유
3. 트러플 사용방법
※. 공식문서 참조

 

1. Truffle

 

트러플(Truffle)은  이더리움 스마트 컨트랙트를 개발, 테스트 및 배포하기 위한 개발 도구 모음이다.

트러플은 DApp을 개발할 때 개발자들이 생산성을 높이고 효율적으로 작업할 수 있도록 도와준다.

 

공식문서에 따르면 트러플은 다음과 같이 설명한다.

트러플 공식문서, 출처 : https://trufflesuite.com/docs/truffle/

 

2. 트러플을 사용하는 이유

 

 

 

개발 환경 구축

 이더리움 스마트 컨트랙트를 개발하기 위한 통합 개발 환경을 제공한다.

개발자들은 트러플을 사용해 편리하게 개발을 진행할 수 있다.

 

스마트 컨트랙트 컴파일

트러플을 Solidity와 같은 이더리움 스마트 컨트랙트 언어로 작서된 코드를 컴파일할 수 있다.
트러플을 이용하면 컴파일을 간편하게 할 수 있고, 컴파일 후 배포도 간편하게 진행 할 수 있다.

 

스마트 컨트랙트 테스트

트러플이 자체적으로 제공하는 테스트 프레임워크를 사용하여 스마트 컨트랙트 코드를 테스트할 수 있다.

 

배포 및 관리

트러플은 스마트 컨트랙트를 블록체인 네트워크에 간편하게 배포할 수 있는 기능을 제공한다.
개발자들이 배포와 관리를 편리하게 할 처리할 수 있도록 돕는다.

 

 

3. 트러플 사용방법

 

트러플의 기본적인 사용방법에 대해서 알아보자.

 

우선 사용하기에 앞서 트러플을 다운로드 받아야한다.

(아래에서 받는 node-gyp는 Node.js 확장 모듈을 빌드하기 위한 도구이다.)

npm install -g node-gyp
npm install -g truffle

 

다운로드를 받아서 사용하거나 다운받지않고 npx 명령어로 사용해도 무방하다.

 

truffle version

 

트러플이 제대로 다운로드 되었는지 확인해보자.

 

트러플을 사용해 본적이 있다면, 다음의 코드를 실행하고

truffle init
npx truffle init

 

처음으로 사용해보는 거라면 프로젝트를 생성해보도록 하자.

truffle unbox metacoin [설치할 디렉토리 경로]

디렉토리 구조

위와 같은 디렉토리 구조를 갖게되며,

 

안에있는 각 파일은 트러플의 사용예시를 볼 수 있는 파일들로 구성되어있다.

 

맨 아래의 truffle-config.js는 트러플의 설정에 대한 파일이다.

컴파일러의 버전, 배포하려는 네트워크 등의 설정이 들어가있다.

 

각 디렉토리들의 역할에 대해서 간략하게 말하자면,

 

 

contract

스마트 컨트랙트 코드가 적힌 파일들

스마트 컨트랙트 코드가 적힌 파일들을 컴파일하는 명령어는 다음과 같다.

truffle complie

 

migrations

컴파일된 파일들의 배포에 관한 파일들

다음의 명령어를 실행하면 컨트랙트 파일들을 배포한다.

배포뿐만 아니라 컨트랙트 파일을 컴파일 진행후에 배포 해주기 때문에 간편하게 배포를 진행할 수 있다.

migration 파일의 작성이 필수이다.

truffle migrate -[옵션]

 

 

test

테스트를 진행하는 파일들

 

 

 

한 가지 위에서 숨겨져 있는 디렉토리가 있는데

 

다음의 명령어를 입력하면 볼 수 있다.

 

truffle compile

 

build 디렉토리 생성

build

컴파일된 json파일들을 모아놓는 곳이다.

 

 

다음의 흐름을 가져야하는 스마트 컨트랙트 코드에서

 

계약 생성과 배포를 간편하게 진행해주고, truffle console이라는 기능을 이용해 간편하게 트랜잭션을 실행해 볼 수 있다.

 

 

truffle console 기능

 

truffle console

 

트러플 콘솔 기능을 이용하면, 컨트랙트와 상호작용이 가능하다.

사용방법은 공식문서에 보다 자세히 나와있다.

 

※. 공식문서

https://trufflesuite.com/docs/truffle/quickstart/#migrate-with-truffle-develop

 

Truffle quickstart - Truffle Suite

Truffle quickstart This page will take you through the basics of creating a Truffle project and deploying a smart contract to a blockchain. Note: Before you begin, ensure that you've read the official Ethereum documentation. Install Truffle Before you can

trufflesuite.com