[DAPP - truffle]

오미희·2021년 10월 13일
0

blockchain

목록 보기
3/13

- truffle [트러플]

:  솔리디티코드(스마트 컨트랙트)를 간단한 명령어로 쉽게 컴파일하고 배포해주는 프레임워크.

=> 아래의 작업을 효율적으로 편하게 만들어준 것이 truffle
1. 솔리디티 코딩한다. -> 컴파일 bin, abi
2. 솔리디티 배포한다.
3. web3를 활용하여 브라우저와 통신.

설치

npm install -g truffle

명령어

  • truffle init
    : 솔리티디 코드를 컴파일하고 배포해주기 위한 기본적인 개발환경 구축
  • truffle compile
    : 솔리디티 파일 컴파일
  • truffle migrate
    : 배포
  • truffle test
    : test contracts
  • cd client && npm test
    : test dapp
  • cd client && npm run start
    : run dev server
  • cd client && npm run build
    : build for production
  • truffle create contract [파일명]
    : 솔리디티 파일 생성

truffle init 생성 폴더

  • contracts
    : 솔리디티 작성공간
  • migrations
    : deploy 메서드가 사용되는 공간. 데몬에게 배포하는 행위를 하는 공간/ 이더리움 네트워크에 배포할 때 사용되는 js파일 디렉토리.
    ** migrations 폴더 안에서 파일 생성할 때 규칙
    // [숫자]_[파일명]
    // ex) 1_initial_migration.js / 2_deploy_contracts.js
  • test
    : TDD 코드를 작성하는 공간
    // 위의 폴더들은 truffle 프레임워크를 이용하여 컴파일과 배포를 자동적으로 해주는 코드이므로 해당 부분들은 건드리면 안됨.
** npm init으로 생성 된 폴더에서 truffle-config.js파일의 44~48line -> 네트워크 관련

- Ganache [가나쉬]

: 로컬에서 블록체인 테스트를 위한 개발툴.
// 가상의 계좌를 제공하고, 각 계좌별 100ETH를 제공

설치
: 검색창 ganashe 검색 후 나오는 사이트에 들어가서 download
or
: npm install -g ganache-cli

- truffle에서 react사용

: 터미널에 truffle unbox react 명령어 입력
// client : react프레임워크가 설치된 공감

참고사이트 : https://medium.com/@weekly.teckle/truffle%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-dapp-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%84%B1-14a98dc49db2

나만 알아볼 듯한 truffle 실행과정

1. 솔리디티 파일생성

truffle create contract [파일명]

function hello() public view returns(string memory){
    return "hello";
  }

2. 솔리디티 파일 컴파일하기.

truffle compile
이후 build/contracts [파일명].json 생성되는것을 확인하기.

3. 마이그레이션 코드 작성하기

migrations 폴더안에서 파일생성
규칙은 [숫자]_[파일명]
코드를 작성하기

const [파일명] = artifacts.require("[파일명]");
module.exports = function (deployer) {
  deployer.deploy([파일명]);
};

이후
truffle migrate

4. 테스트 작업

파일생성하기
truffle create test [파일명]
이후 코드작성하기

contract("HelloToken",()=>{
  it("hello function call2",async ()=>{
    let instance = await HelloToken.deployed()
    let result = await instance.hello()
    console.log(`이아이는 콘솔로그 : `,result)
    return result
  })
})
profile
안녕하세요

0개의 댓글