본문 바로가기
블록체인 공부/이더리움 개발 & 환경구축

[개발 환경설정-3]이더리움 개발 환경 셋팅 - 배포설명과 트러플 설치 및 배포해보기

by 으노으뇨 2023. 1. 27.
728x90
반응형
SMALL

배포

이더리움 주소에는 지갑 주소와 컨트랙트 주소라는 두 가지 주소유형이 있다.

동일한 형태를 가지고 있고 기능도 거의 동일하지만,

사용자에게 귀속하느냐 컨트랙트에 귀속하느냐의 차이가 있다.

특정 지갑 주소에 담긴 이더를 다른 곳으로 보내려면 해당 지갑 주소의 개인키가 반드시 필요하다.

컨트랙트 주소도 지갑 주소와 마찬가지로 잔고를 가지고 있다.

컨트랙트 주소에 담긴 이더를 다른 곳으로 보내는 것은 해당 컨트랙트 코드만 수행할 수 있다.

트러플이란?

트러플은 솔리디티 및 EVM의 개발 프레임워크이다. 

트러플이 컨트랙트의 컴파일, 배포, 테스트 절차를 간소화해주기 때문에 개발자는 컨트랙트의 작성에 집중할 수 있다.

트러플을 전역으로 설치하려면 다음 명령을 사용하면 된다.

sudo npm install -g truffle

입력한 모습
설치 성공한 모습, 조금 오래걸렸다. 264초 소요되었다.

설치가 완료되었으니, 트러플의 기본 명령을 몇가지 실행해 보겠습니다.

트러플로 간단한 댑 배포하기

첫 번째 컨트랙트를 프라이빗 체인에 배포해보기
mkdir truffle-test
cd truffle-test
truffle init
truffle develop

#트러플 개발 콘솔에서 명령 실행
migrate

# 개발 콘솔을 빠져나오는 명령어
.exit
테스트를 위해서 그냥 루트디렉터리에 폴더를 생성합니다.
생성완료

그러나 ... nodeJS 버전이 너무 낮아 설치가 안됩니다. 
nodeJS 버전을 높혀서 다시 실행해보겠습니다.

우분투 nodeJS 버전 높이는 방법 https://uno-kim.tistory.com/330

truffle init 명령실행한 모습
truffle init은 일련의 폴더와 예제 파일을 생성하는데, 그중 contracts 라는 폴더가 있고 그 안에서 Migrations.sol이라는 솔리디티 컨트랙트 파일을 볼 수 있다.

여기서 잠깐!!!!!

truffle init 을 해도 Migration.sol 이 안보이는 경우가 있습니다.
이에대해서는 아래 링크 해결 방법을 참고하시면 되겠습니다.
https://uno-kim.tistory.com/331

이런저런 파일이 생겼다.


truffle develop 명령은 가나슈를 실행하는 트러플 개발 콘솔을 엽니다.

콘솔을 연모습

migrate 명령은 해당 콘솔 내에서 실행해야한다.

컴파일링 하는모습
완료하면 빌드 폴더가 생긴다.


Migrations 파일의 코드를 가볍게 한번 보자

빌드가 완료되면 해당 내용을 확인해보자. 
contracts 폴더 내에 Migrations.sol 파일로 존재한다.

배포내용을 보면 위와같다.


이는 방금 배포한 코드이며, 이 코드를 읽어보면 솔리디티 컨트랙트가 어떻게 구성되었는지 감잡을 수 있다.

 

 

[자주사용] 우분투 nodeJS 버전 변경

이더리움 개발을 위해 nodeJS를 설치하고 트러플을 시작하려니 오류가 발생했다. nodeJS 버전 높이는 방법 sudo apt update 업데이트를 해준다. 인터넷에서 curl -sL https://deb.nodesource.com/setup_14.x -o nodesource

uno-kim.tistory.com

마이그레이션은 트러플 배포와 동일합니다.

트러플에서의 마이그레이션은 본질적으로 배포 스크립트에 해당합니다.

트러플이 만든 디렉토리 중 하나가 migrations/folder 인데, 이 안에 위의 마이그레이션 파일도 위치하고 있습니다.

 

파일을 확인해서 간단한 마이그레이션이 어떻게 진행되었는지 보겠습니다.

지금까지 개발 체인을 직접 설정하고 첫 번째 솔리디티 컨트랙트를 배포하는데 성공한것입니다.

728x90
반응형
LIST

댓글