본문 바로가기
Ethereum

[Ethereum] 개발 환경 설정

by smilemugi 2022. 12. 6.

이더리움(Ethereum) 이란, 스마트 컨트랙트(Smart Contract)를 실행할 수 있는 플랫폼이다. go,c++,python 등 다양한 언어로 이더리움을 구동할 수 있는 클라이언트가 개발되고 있으며, 현재 가장 많이 사용되는 클라이언트가 go 언어로 개발된 go-ethereum(geth) 이다.

 

 

Ethereum  Client설치

https://geth.ethereum.org/downloads/ 

 

Downloads | Go Ethereum

Retrieving packages from release server...

geth.ethereum.org

윈도우즈 버전 설치.

설치 진행 중 "Geth, Development tools'를 반드시 설치해야 한다.

 

설치가 잘 되었다면, 명령 프롬프트에서 "geth version" 을 치면 다음과 같이 나올 것이다.

geth 실행에 문제가 있다면 "윈도우 >> 시스템 >> 고급시스템설정 >> 환경 변수 >> 시스템변수 >> Path" 편집을 통해 geth 설치 경로에 설정한다.

 

가나슈 (이더리움 DAPP 개발환경) 설치

가나슈(Ganache)란, 테스트 목적으로 PC에 설치해서 사용할 수 있는 일종의 간이 블록체인이다. 간이 블록체인이기 때문에 네트워크와 연결할 필요없이 로컬에서 작동시킬 수 있어, 계약을 손쉽게 배포 및 테스트해볼 수 있다. 개발을 위해 게스(geth) 또는 패리티(parity) 같은 클라이언트를 사용하면 각 트랜잭션을 실행하는 데 15 초씩 걸리기 때문에 개발 속도가 느려질 수 있다. 이 문제를 해결하기 위해 일반적으로 개발 목적으로 가나슈(ganache)라는 메모리 내 블록체인을 사용할 수 있다. ganache-cli 또는 GUI 버전의 커맨드 라인 버전을 설치할 수 있다. 가나슈의 또 다른 장점은 테스트를 위해 100개의 이더가 미리 탑재된 10개의 테스트 계정을 확보하게 된다

 

가나슈는 스마트컨트랙 개발에 있어서 편한 인터페이스를 제공한다.

https://www.trufflesuite.com/ganache 

 

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 를 누르면 아래와 같은 화면이 나온다.

  • CURRENT BLOCK: 노드에서 채굴한 마지막 블록 Number
  • GAS PRICE : 노드가 트랜잭션을 채굴하기 위한 가스 최소 가격
  • GAS LIMIT : 트랜잭션을 위해 필요한 가스 최대량
  • HARDFORK : 하드포크
  • NETWORK ID : 서버 내부 블록체인 식별 ID
  • RPC SERVER : 서버 주소
  • MINING STATUS : 새로운 블록을 채굴하는 속도(기본 AUDOMINING)
  • MNEMONIC : 연산기호, 여러 단어들의 조합으로 계정 생성시 사용하는 비밀 문자
  • TX COUNT : 이 계정주소에서 몇번 트랜잭션을 처리 했는지
  • INDEX : 10개의 계정 중에 몇번재 위치하는지

Node Js 설치

https://nodejs.org/ko

 

[NodeJS] 환경설정(Windows10)

# Node.js 설치 https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 최신버전 다운로드 및 설치 설치 과정 중에 "Tools for Native Modules" 화면에서 체크박스(Automaticall

smilemugi.tistory.com

 

트러플 설치

트러플은 스마트컨트랙을 컴파일, 테스트, 배포할 수 있는 프레임워크이다.

npm install -g truffle (truffle ver 4 이상 설치 필수, Python 설치 필수)

버전 확인 : truffle --version

파이썬 설치

https://www.python.org/downloads 

 

Download Python

The official home of the Python Programming Language

www.python.org

3.11.0 이 내가 본 최신

 

Remix - Ethereum IDE 활용하기

remix 데몬 설치 및 실행

  • remixd 설치 - remix deamon (로컬 서버 역할)
    • npm install -g @remix-project/remixd
  • remix ide 와 공유(동기화)하고 싶은 폴더(solidity 소스 파일이 있는 곳)로 이동
  • 데몬 실행
    • remixd -s . --remix-ide https://remix/ethereum.org

 

https://remix.ethereum.org/ 에 접속 

 

localhost 선택

"connect" 를 선택하면 로컬에서 데몬을 실행한 폴더에 있는 파일들이 나온다.

Visual Studio Code

https://code.visualstudio.com 

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

visual studio code 를 설치 후 

사이드바에서 확장(extension)을 선택한 후, solidity를 검색하여 설치한다.

메타마스크 설치

이더리움 개인 지갑이다. 크롬 브라우저에서 extension 에서 설치한다.

https://metamask.io 

 

The crypto wallet for Defi, Web3 Dapps and NFTs | MetaMask

A safe crypto wallet for digital tokens & NFTs. Join the blockchain and DeFi world.

metamask.io

이 후 크롬에서 메타마스크 아이콘을 클릭하면 아래와 같다.

"시작하기"를 누르면  경고 화면 과 함께 동의를 구한다. 나는 "동의하기"를 클릭했다.

이후

처음 시작했으니, 오른 쪽 "지갑 생성" 클릭 ("지갑 가져오기"는 복구관련 내용인 것 같다.)

새 비밀번호를 입력하고 "생성" 클릭, 아래 화면에서 영상을 보고 내용 참고.

"다음" 버튼을 누르고 나오는 화면에서 비밀 단어를 다른 곳에 적어서 기록해 둔다.(아무에게도 알려 주면 안된ㄷ.)

다음..

이전 화면에서 기억해 준 12개의 단어들을 순서대로 클릭하고 확인.

위와 같이 나오면 끝. "모두 완료"를 누르면

메타마스크지갑과 가나슈 연결

1)가나슈 SERVER 설정 확인

localhost:7545, NetworkID:5777

2)메타마스크 네트워크 설정

"네트워크 추가" 

"네트워크 수동 추가" 클릭 후  가나슈 서버 입력

체인ID 는 1337 ( 기본 값?)

"저장"하기  클릭

3)생성된 가나슈 계정을 메타마스크 지갑으로 연동

메타마스크 계정 가져오기

위 오른쪽 비공개키 설정, 문자열은 가나슈에서 가져오고자하는 계정의 Private Key를 입력한다.

 

가져오기 완료

"계정 세부 정보"를 통해 이름을 변경할 수 있다.

오른쪽 은 가져온 계정들 목록을 볼 수 있다.

 

송금해 보기

오른쪽 화면에서 Private Key를 직접 입력하거나,

"내 계정 간 전송"을 클릭후 보내고자 하는 계정을 선택

보내고자 하는 금액(여기는 23 ETH)을 입력하고 "다음"을 누르면 오른쪽 화면과 같이 나오고 "확인"을 누르면

잠시 뒤 송금이 완료 된다.

 

가나슈 에서도 변경된 내용을 확인할 수 있다.