트러플 스위트란? 기능, 설치 방법, 스마트 계약 실행 방법
게시 됨: 2020-03-24블록체인이 주류 기술 영역으로의 여정을 막 시작한 초기에는 Solidity 프로그래밍 언어를 사용하여 스마트 계약을 개발하고 geth 또는 solc 함수를 호출하여 배포해야 했습니다.
이 프로세스를 좀 더 쉽게 하려면 먼저 컴파일한 다음 계약을 배포하는 bash 스크립트를 작성해야 했습니다. 이제 후자의 접근 방식이 전자보다 더 나았지만 bash 스크립팅이 종종 표준화 부족을 수반한다는 점을 감안할 때 이것은 매우 기초적인 방법이었습니다.
블록체인 스마트 계약을 위한 원활하고 최적의 개발 및 테스트 프레임워크를 만들기 위한 이러한 필요성이 Truffle Etheruem을 탄생시킨 것입니다.
세계 최고의 대학에서 온라인 소프트웨어 엔지니어링 과정을 배우십시오. 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
목차
트러플 스위트란?
Truffle Suite 에 따르면 Truffle은 "개발자로서의 삶을 더 쉽게 만드는 것을 목표로 하는 이더리움 가상 머신(EVM)을 사용하는 블록체인을 위한 세계적 수준의 개발 환경, 테스트 프레임워크 및 자산 파이프라인"입니다.
간단히 말해서 Truffle은 개발 환경, 테스트 프레임워크 및 자산 파이프라인이 모두 하나로 통합된 것입니다. Ethereum Blockchain을 기반으로 하며 DApp(분산 응용 프로그램)의 원활하고 원활한 개발을 촉진하도록 설계되었습니다. Truffle을 사용하면 스마트 계약을 컴파일 및 배포하고 웹 앱에 삽입하고 DApp용 프런트 엔드를 개발할 수도 있습니다. 오늘날 Truffle은 Ethereum Blockchain에서 가장 널리 사용되는 IDE 중 하나입니다.

Truffle Suite는 세 가지 핵심 요소로 구성됩니다.
- Truffle – 스마트 계약의 컴파일, 테스트 및 배포를 통합하는 실제 개발 환경입니다.
- Ganache – 로컬에 배포된 블록체인 시뮬레이터입니다. Ganache는 실제 테스트 네트워크를 설정하거나 원격 네트워크에 사용할 필요 없이 블록체인 네트워크 및 라이브 테스트 스마트 계약을 시뮬레이션할 수 있는 그래픽 사용자 인터페이스를 제공합니다.
- Drizzle – 스마트 계약과 원활하게 연결할 수 있는 웹 애플리케이션 개발에 유용한 구성 요소를 제공하는 프론트 엔드 라이브러리 모음입니다.
읽기: 블록체인 개발자가 되는 방법 – 초보자 가이드
트러플의 특징은 무엇입니까?
Truffle Etheruem을 Ethereum Blockchain에 가장 널리 사용되는 IDE 중 하나로 만드는 기능은 다음과 같습니다.
- 스마트 계약 컴파일, 배포 및 연결에 대한 지원이 내장되어 있습니다.
- Mocha 및 Chai와의 자동화된 계약 테스트를 허용합니다.
- Truffle 콘솔을 사용하면 번거롭지 않은 방식으로 컴파일된 계약을 사용할 수 있습니다.
- 콘솔 앱과 웹 앱을 모두 지원하는 구성 가능한 빌드 파이프라인이 있습니다.
- JavaScript, CoffeeScript, SASS, ES6 및 JSX에 대한 지원이 내장되어 있습니다.
- 여기에는 새로운 계약 및 테스트 생성에 도움이 되는 생성기가 있습니다(예: 레일 생성).
- 스마트 계약을 포함하여 JS/Coffee 파일을 실행할 수 있는 스크립트 실행기가 있습니다.
- 개발 단계에서 자산을 즉시 재구축할 수 있습니다.
- 선호하는 RPC 클라이언트를 사용하여 계약 컴파일 및 배포를 가능하게 합니다.
- 네트워크 및 패키지 관리를 모두 지원합니다.
트러플 이더리움을 설치하는 방법?
npm(Node Package Manager)을 사용하여 Truffle Ethereum을 설치할 수 있습니다. 먼저 컴퓨터에 NPM을 설정 한 다음 Truffle을 설치해야 합니다. 그렇게 하려면 터미널을 열고 다음을 입력해야 합니다.
npm install -g 트러플
그러나 Linux 시스템에서는 위의 명령문에 "sudo" 접두사를 추가해야 할 수도 있습니다. Truffle 프레임워크를 설치했으면 Ganache 블록체인 시뮬레이터를 다운로드하여 설치해야 합니다. 공식 Ganache 웹사이트 를 방문할 수 있습니다 . 여기에는 가장 인기 있는 플랫폼에 대한 설치 프로그램이 포함되어 있습니다.
이제 Truffle을 성공적으로 설치했으므로 두 가지 방법으로 Truffle 프로젝트를 시작할 수 있습니다. 베어 프로젝트를 생성하려면 다음 문을 입력할 수 있습니다.
트러플 초기화
그러나 Truffle unbox 명령을 사용하여 기존 코드로 프로젝트를 생성할 수도 있습니다. 예를 들어 다음과 같이 토큰을 만들 수 있습니다.
트러플 언박스 메타코인
이 명령을 실행하면 Truffle 상자에서 프로젝트가 생성됩니다. 공식 웹 사이트에서 많은 트러플 상자 를 찾을 수 있습니다. 여기에는 상용구 코드와 프로젝트를 빌드하고 빠르게 실행하는 데 필요한 모든 구성이 포함되어 있습니다.
트러플 프로젝트의 구조
생성한 Truffle 폴더는 다음과 같습니다.
├── 계약
│ ├── ConvertLib.sol
│ ├── MetaCoin.sol
│ └── 마이그레이션.sol
├── 마이그레이션
│ ├── 1_initial_migration.js
│ └── 2_deploy_contracts.js
├── 테스트
│ ├── TestMetacoin.sol
│ └── metacoin.js
├── 트러플-config.js
└── 트러플.js
이제 Truffle 폴더에 포함된 다양한 하위 폴더에 대해 자세히 설명하겠습니다.
계약 폴더
계약 폴더는 모든 스마트 계약이 저장되는 폴더입니다. 이 폴더에는 Migrations.sol 파일이라는 특수 파일도 있습니다. 일반적으로 Truffle은 프로젝트를 컴파일할 때 Contracts 폴더를 검색하여 호환되는 모든 파일을 컴파일합니다.
마이그레이션 폴더
Truffle 마이그레이션은 스마트 계약이 이더리움 블록체인에 배포되는 방법을 정의하는 스크립트를 나타냅니다. 프로젝트가 계속 복잡해짐에 따라 배포의 복잡성도 증가하기 때문에 마이그레이션이 필수적입니다. Truffle Migrations 덕분에 스마트 계약 배포 프로세스를 순차적으로 자동화할 수 있습니다.

Truffle 폴더 구조를 다시 보면 1_initial_migration.js 라는 파일을 볼 수 있습니다. 이 파일은 Migrations.sol 계약을 Ethereum Blockchain에 배포합니다.
마이그레이션을 통해 다음을 수행할 수 있습니다.
- 배포에 대한 최대 가스 한도 설정
- 배포 주소에서 수정하거나 변경합니다.
- 임의의 계약 함수를 호출합니다.
- 라이브러리 배포
테스트 폴더
스마트 계약과 관련하여 테스트는 필수입니다! 고맙게도 Truffle에는 Solidity 또는 JavaScript로 테스트를 작성할 수 있는 테스트 프레임워크가 내장되어 있습니다. Solidity에서 테스트를 작성하는 경우 다음과 같이 Solidity 가져오기 지시문을 사용하여 스마트 계약을 테스트로 가져와야 합니다.
"../contracts/MetaCoin.sol" 가져오기;
그러나 JavaScript로 테스트를 작성하는 경우 다음과 같이 artifacts.require() 도우미 함수를 사용하여 테스트를 가져와야 합니다.
var MetaCoin = artifacts.require("./MetaCoin.sol");
구성 파일
truffle.js 또는 truffle-config.js라고도 하는 구성 파일은 Truffle이 다음 사항과 함께 이더리움 네트워크에 연결할 수 있는 방법을 정의합니다.
- 환경 – geth 메모의 주소, network_id, 배포를 위한 최대 가스 한도 및 지불할 가스 가격을 정의할 수 있습니다.
- 프로젝트 구조 – 파일이 빌드되고 저장되는 위치를 변경할 수 있습니다.
- 컴파일러 버전 및 설정 – solc 버전을 수정하고 -O(최적화) 매개변수를 설정할 수 있습니다.
- 패키지 관리 – Truffle은 EthPM(이더리움 패키지 관리자)과 호환됩니다. Truffle 프로젝트의 EthPM에 대한 종속성을 설정할 수 있습니다.
- 프로젝트 설명 - 프로젝트를 개발한 사람을 명시하고 프로젝트 이름, 연락처 주소 등을 지정합니다.
더 읽어보기: 초보자를 위한 블록체인 프로젝트 아이디어
스마트 계약을 실행하는 방법?
스마트 계약을 실행하는 다양한 방법은 다음과 같습니다.
- 스마트 계약을 컴파일하려면 다음 코드를 실행해야 합니다.
트러플 컴파일
- 마이그레이션을 실행하려면 다음 코드를 사용해야 합니다.
트러플 마이그레이션
특정 환경을 언급하여 수행할 수도 있습니다.
트러플 마이그레이션 – 네트워크 라이브

- 스마트 계약을 테스트하기 위해 다음 코드를 실행할 수 있습니다.
트러플 테스트
다음 코드를 사용하여 특정 테스트를 실행할 수도 있습니다.
트러플 테스트 ./path/to/FileTest.sol
이 게시물에서는 Truffle Etheruem의 기본 개념과 작동 방식을 알려드리고자 합니다. Truffle은 표준 개발 관행을 블록체인 그림으로 가져옴으로써 DApp 및 스마트 계약의 개발을 훨씬 더 편리하게 만드는 강력한 도구입니다.
마무리
블록체인 기술 분야의 경력이 증가하고 있으며 블록체인은 기술 산업의 면모를 영원히 바꿔 놓았습니다. 블록체인 개발자가 되어 스마트 계약 및 체인코드를 구축하는 데 관심이 있다면 IIIT-B & upGrad의 블록체인 기술 고급 인증 프로그램을 확인 하십시오.
Ethereum의 Vyper는 무엇입니까?
Vyper는 이더리움 가상 세계를 대상으로 하는 계약 지향적이고 통계적으로 유형이 지정된 파이썬 프로그래밍 언어입니다. 그것은 Solidarity에 대한 개선으로 설계되었습니다. Vyper의 주요 원칙과 목표는 보안, 언어 및 컴파일러 단순성, 감사 가능성입니다. Vyper는 강력한 유형의 언어이므로 한 데이터 유형을 다른 데이터 유형으로 사용할 수 없습니다. 경계 및 오버플로 검사, 강력한 유형 지정, 작고 이해하기 쉬운 컴파일러 측면, 순수 함수에 대한 제한된 지원, 부호 있는 정수 및 십진 고정 소수점 숫자에 대한 지원, 결정 가능성과 같은 많은 추가 기능이 함께 제공됩니다. 또한 개발자가 모호한 프로그램을 코딩할 수 없도록 하는 간단한 구문을 가지고 있습니다.
스마트 계약의 단점은 무엇입니까?
스마트 계약은 많은 용도와 더 넓은 인기를 가지고 있음에도 불구하고 많은 한계를 안고 있습니다. 스마트 계약의 시행에 대한 법적 규제가 있어 사이버 공격에 더 취약합니다. 코드 오류는 수정하는 데 시간과 비용이 많이 들기 때문에 스마트 계약 프로세스를 변경하는 것은 거의 불가능합니다. 제3자의 개입이 현저히 줄어들긴 하지만 완전히 제거할 수는 없습니다. 예를 들어 개발자는 스마트 계약을 위한 코드를 생성하기 위해 용어를 이해하기 위해 변호사가 필요합니다. 또한 스마트 계약은 프로그래머에 대한 의존도가 높고 버그에 노출되기 때문에 상당한 단점이 있습니다.
블록체인에서 네트워크 및 패키지 관리란 무엇입니까?
패키지 관리자는 설치, 업데이트, 구성 및 응용 프로그램 제거를 자동화하는 데 도움이 됩니다. 운영 체제 및 프로그래밍 환경에서 사용되며 종속성 지옥을 피하는 데 도움이 됩니다. 패키지 관리자의 주요 기능에는 패키지의 신뢰성 보장, 온라인 저장소에서 소프트웨어 다운로드, 기존 소프트웨어 업데이트 등이 포함됩니다. 패키지 관리자, 바이너리 패키지, 소스 코드 기반 패키지, 하이브리드 시스템, 메타 패키지 관리자, 애플리케이션에는 여러 유형이 있습니다. 기반 관리자 등 블록체인 관련 패키지 관리자도 존재합니다. 그러한 관리자 중 하나가 노드 패키지 관리자입니다. NPM은 개인이 오픈 소스 리포지토리를 통해 공유 리소스를 활용할 수 있도록 하는 세계 최대 소프트웨어 레지스트리입니다.