이전글
[web3.js] 1. Visual Studio Code
이전글 [web3.js] 0. 들어가기 전에 0. 들어가기 전에 web3.js는 이더리움 노드와의 상호작용을 도와주기 위한 자바스크립트 라이브러리입니다. web3.js를 이용하여 이더리움 노드와 효과적으로 상호작
kwjdnjs.tistory.com
트러플, 가나슈
이번 글에서는 트러플과 가나슈에 대해서 알아보겠습니다.
1. 트러플
지금까지 솔리디티로 코드를 작성하기 위한 코드 에디터인 Visual Studio Code를 설치해 봤습니다.
이번 글에서는 스마트 컨트랙트를 테스트하기 위한 블록체인인 가나슈를 설치하는 방법에 대해 알아보겠습니다. 가나슈를 사용하기 위해서는 트러플을 먼저 설치해야 합니다. 따라서 트러플에 대해 먼저 알아보겠습니다.
트러플은 솔리디티 IDE입니다. 테스트 블록체인인 가나슈를 제공할 뿐만 아니라 솔리디티 컴파일러까지 제공합니다. 트러플을 이용하면 코드 컴파일과 테스트 블록체인 배포를 한 번에 진행할 수 있습니다.
트러플을 설치하기 위해서는 Node.js가 필요합니다. 아래 링크를 통해 Node.js를 먼저 설치하시기 바랍니다.
Node.js
nodejs.org
Node.js가 설치됐으면 npm 명령어를 이용해 트러플을 설치할 수 있습니다. 아래 명령어를 명령 프롬프트나 터미널 등에 입력하여 node-gyp를 설치한 뒤 트러플 설치를 진행합니다.
npm install -g node-gyp
npm install -g truffle
설치가 완료되었다면 아래 명령어를 입력하여 트러플 버전을 확인합니다.
truffle version
2. 가나슈
이번에는 가나슈를 설치하여 테스트 블록체인을 설치한 뒤 스마트 컨트랙트를 배포해 보겠습니다. 가나슈는 아래 링크를 통해 다운로드할 수 있습니다.
Ganache - Truffle Suite
Features VISUAL MNEMONIC & ACCOUNT INFO Quickly see the current status of all accounts, including their addresses, private keys, transactions and balances.
trufflesuite.com
가나슈가 설치됐다면 가나슈를 실행한 뒤 QUICKSTART를 눌러 테스트 블록체인을 실행합니다. 가나슈가 정상적으로 실행됐다면 다음 화면을 볼 수 있습니다.

이제 트러플을 이용하여 솔리디티 코드를 컴파일한 뒤 테스트 블록체인에 배포해보겠습니다. 배포를 위해 먼저 스마트 컨트랙트 코드를 작성했던 폴더에서 vscode 터미널을 실행하여 다음 명령어를 입력합니다.
truffle init
해당 명령어를 실행하면 다음과 같이 contract, migrations, test 폴더와 트러플 설정 파일인 truffle-config.js가 생성됩니다. 솔리디티 코드는 contracts에 저장하면 됩니다.

이전에 작성했던 .sol파일을 contracts 폴더로 먼저 이동시킵니다. 그다음 명령어를 입력하여 contracts 폴더로 이동한 뒤 솔리디티 코드를 컴파일해 줍니다.
cd contracts
truffle compile
컴파일에 성공하면 build/contracts 폴더에 .json 파일이 생성됩니다. 해당 json파일은 abi와 컴파일된 코드 등을 담고 있습니다.
마지막으로 스마트 컨트랙트를 배포해 보겠습니다. 컴파일된 코드를 배포하기 위해서는 먼저 설정 파일을 작성해야 합니다. 다음과 같이 truffle-config.js에서 배포할 네트워크에 대한 부분을 작성해 줍니다. 포트와 네트워크 id는 가나슈에서 확인할 수 있는 기본 값입니다.
module.exports = {
networks: {
development: {
host: "127.0.0.1", // Localhost (default: none)
port: 7545, // Standard Ethereum port (default: none)
network_id: "5777", // Any network (default: none)
},
},
};
설정파일을 작성한 이후 다음과 같이 배포 코드를 작성해야 합니다. migrations 폴더에 2_deploy_contracts.js라는 이름의 파일을 생성하여 다음 코드를 입력합니다.
var Hello = artifacts.require('Hello');
module.exports = function (deployer) {
deployer.deploy(Hello);
};
위 코드는 Hello 컨트랙트를 배포하기 위한 코드입니다. 코드가 모두 작성되었다면 아래 명령어를 터미널에 입력하여 배포를 진행합니다.
truffle migrate --reset
배포가 성공적으로 이뤄졌다면 터미널에서 결과를 확인할 수 있습니다. 만약 오류가 발생할 경우 truffle-config.js에서 compilers 내부의 solc 내부의 솔리디티 버전인 version을 적절히 변경해 줍니다.

가나슈에서도 관련 정보를 확인할 수 있습니다.


지금까지 작성된 솔리디티 코드를 트러플을 통해 컴파일한 뒤 가나슈에 배포해 봤습니다. 감사합니다.
다음글
[web3.js] 3. ERC-20 토큰 컨트랙트
이전글 [web3.js] 2. 트러플, 가나슈 이전글 [web3.js] 1. Visual Studio Code 이전글 [web3.js] 0. 들어가기 전에 0. 들어가기 전에 web3.js는 이더리움 노드와의 상호작용을 도와주기 위한 자바스크립트 라이브러
kwjdnjs.tistory.com
'이더리움 > web3.js' 카테고리의 다른 글
[web3.js] 3. ERC-20 토큰 컨트랙트 (0) | 2023.11.16 |
---|---|
[web3.js] 1. Visual Studio Code (0) | 2023.11.08 |
[web3.js] 0. 들어가기 전에 (0) | 2023.11.03 |