체인의정석

Klaytn 개발환경 설정하기 본문

블록체인/Ethers & web3

Klaytn 개발환경 설정하기

체인의정석 2022. 5. 18. 18:00
728x90
반응형

기존 EVM 계열 네트워크는 모두 hardhat + ethers를 사용하였지만

클레이튼의 경우 레퍼런스가 많은 truffle + caver.js를 사용하여서 하기로 하였다.

 

일단 클레이튼의 경우 evm 계열이지만 지정하는 버전을 맞추어 주어야 사용이 가능하다.

 

이런 환경  세팅의 경우 공식 문서에 들어가서 체크하고 모두 해당 버전으로 맞춰주어야 한다.

안그럼 나중에 고생한다.

 

https://ko.docs.klaytn.foundation/dapp/sdk/caver-js/getting-started

 

시작하기 - Klaytn Docs

...

ko.docs.klaytn.foundation

 

node 버전 세팅하기

1. nvm 설치하기

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

실행시 export 명령어 넣으라는 문구가 뜨는데 그대로 넣은 후, 버전확인하여 설치 확인 

그래도 안되면 창을 한번 닫고나서 다시 열고난 후 설치 확인

nvm --version
//0.33.11

node 12 또는 14 버전으로 사용. 나는 12버전으로 사용하였다.

참고 caver-js는 Node.js 버전 12와 14에서 실행 가능합니다. -caver docs

 

nvm use 12
//Now using node v12.22.3 (npm v6.14.13)

truffle 5 버전으로 설치하기

다음으로 truffle을 5버전으로 설치해야한다고 한다.

https://ko.docs.klaytn.foundation/smart-contract/ide-and-tools/truffle#compatibility-with-truffle

 

트러플(Truffle) - Klaytn Docs

logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

ko.docs.klaytn.foundation

역시 공식문서에서 시키는대로 따라하기

 

Klaytn에서는 솔리디티로 작성된 스마트 컨트랙트를 트러플을 통해 컴파일하고 배포할 수 있습니다. 현재 Klaytn은 트러플 최신 버전인 v5.0.26까지 지원합니다. 트러플에 대한 자세한 내용은 아래 웹 사이트를 참고해주세요.

 

sudo npm install -g truffle

최신버전을 설치하면 5버전이 나오게 된다.

 truffle -v
Truffle v5.4.32 - a development framework for Ethereum

 

이정도로 기본 세팅을 하고나서 코드를 실행하면 된다. 공식 문서를 보니 예전 2년 반 전과는 다르게 설명이 매우 잘되있는걸 볼 수 있었다. 

일단 로컬 EN이 아닌 원격 EN을 사용중이기 때문에 truffle-hdwallet-provider-klaytn을 config에 지정해주어야 한다.

$ nvm use 12 # for node v12 and higher
$ yarn install truffle-hdwallet-provider-klaytn@1.4.1

결국 이걸 사용하려면 노드 12전을 사용하게 되는거 같다.

그리고 공식문서와는 다르게 yarn에 add를 넣어줘야 설치가 된다

yarn add truffle-hdwallet-provider-klaytn@1.4.1

근데 에러가나서 그냥 npm을 사용하도록 하겠다. 회사 보안망 영향인지 yarn은 계속 에러가 난다.

https://www.npmjs.com/package/truffle-hdwallet-provider-klaytn

 

truffle-hdwallet-provider-klaytn

HD Wallet-enabled Web3 provider for Klaytn. Latest version: 1.4.2, last published: 5 months ago. Start using truffle-hdwallet-provider-klaytn in your project by running `npm i truffle-hdwallet-provider-klaytn`. There are no other projects in the npm regist

www.npmjs.com

npm install truffle-hdwallet-provider-klaytn

prerequisite 한번 봐주면

Node v12.20 or later
caver-js v1.6.3 or later

caver 버전을 한번 체크해줘야겠다.

일단 설치시 관리자 권한 관련한 에러가 났기 때문에 해당 오류를 찾아보니

https://stackoverflow.com/questions/26612649/please-try-running-this-command-again-as-root-administrator-error-when-trying

 

"Please try running this command again as Root/Administrator" error when trying to install LESS

I'm trying to install LESS on my machine and have installed node already. However, when I enter "node install -g less" I get the following error and am not sure what to do? FPaulMAC:bin paul$ npm

stackoverflow.com

brew install node

이걸 사용해서 해결할 수 있었다.

 

caver가 관리자 권한을 sudo로 하더라도 에러가 나기때문에 관리자 권한 관련된 부분을 세팅해 주어야 하는거 같은데 찾아본 방법중 가장 깔끔한 방법으로 판단이 되었다.

 

그리고 node를 다시 설치하게 되면 실제 사용시에는 12 버전으로 낮춰 주어야 한다.

 

결국 caver를 설치할 때는 node를 최신버전으로 설치 후 설치하고 이후 nvm을 설치하여 버전을 낮춘후 다시 설치하거나 아니면 node12 버전에서 복잡한 세팅을 해주어야 한다.

그러나 다시 에러가 났고 찾아보니 mac의 BigSur OS에서 트러플 설치가 에러가 나는것 같다. 불록체인이 유행을 끌면서 다행히 이런것도 이제 질문이 떠있어서 답변들 찾아볼 수 있었다. 답변중 선택한건 아래 커멘드이다.

 % truffle version            
Truffle v5.5.6 (core: 5.5.6)
Ganache v^7.0.3
Solidity v0.5.16 (solc-js)
Node v18.1.0
Web3.js v1.5.3

https://ethereum.stackexchange.com/questions/92641/cant-install-truffle-framework-to-mac-os-big-sur

 

Can't install Truffle Framework to Mac OS Big Sur

so I checked to see if I had the latest version of nodejs, and it turns out that I do. kalebamarante$ node -v v15.5.0 then I tried installing a version of Truffle and it didn't work ~ kalebamarant...

ethereum.stackexchange.com

brew install truffle

다행히 잘 먹혔다.

 

 % truffle version            
Truffle v5.5.6 (core: 5.5.6)
Ganache v^7.0.3
Solidity v0.5.16 (solc-js)
Node v18.1.0
Web3.js v1.5.3

이렇게 뜨는데 node 버전을 낮추고 나서 실행을 시켜봐야 겠다.

물론 brew install 한번 하면 처음부터 다시 설치..

 

설치는 일단 완료되어서 중간 정리한번 하겠다.

truffle version
Truffle v5.4.32 (core: 5.4.32)
Solidity v0.5.16 (solc-js)
Node v12.22.3
Web3.js v1.5.3

트러플 버전을 검색시 아래와 같이 나와있고

실행명령어의 순서는

1107  brew install truffle
 1108  truffle version
 1109  nvm use 12
 1110  curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
 1111  export NVM_DIR="$HOME/.nvm"\n[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm\n[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
 1112  nvm --version
 1113  truffle -v
 1114  nvm use 12
 1115  nvm --version
 1116  nvm use 14
 1117  npm config delete prefix
 1118  nvm use 12
 1119   npm install caver-js
 1120  npm install truffle-hdwallet-provider-klaytn
 1121  truffle version

처음 truffle 설치 후

다음과 같다. 중간 1109~1118번까지가 nvm설치이다.

이후 노드 12버전으로 caver를 설치한후

hd wallet provider를 설치한다.

그리고 마지막으로 트러플 버전을 검색한게 위의 결과 값이다.

 

그럼 마지막으로 작성된 테스트 파일이 실행되는지 살펴보겠다. (작성된 코드를 중간에 인수인계받은 상황)

truffle test ./test/0_KlaytnGreeting.js

환경변수를 받기위해

brew install direnv

direnv를 설치해주고

.envrc도 요청해서 받아온 후에

direnv allow

이걸로 주소나 rpc pk 정보를 받아온다.

결과는 성공!!

 

정말 험난한 길이였지만 다음에 클레이튼 환경 설치를 하면 이 포스팅을 보면 금방할 수 있을것이다.

728x90
반응형
Comments