Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습

Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습

(77개의 수강평)

2489명의 수강생

무료

SEJONG IT EDU
평생
초급, 중급
31개 수업, 총 3시간 9분
이우진 프로필

!!! 에러 해결법 총집합 !!! npm-gyp 오류/python 오류/truffle 컴파일 에러/Unknown network klaytn 에러 나시는 분들은 이우진 21시간 전

1. python 오류 나시는 분들은

https://www.python.org/downloads/release/python-2710/

위 링크로 이동하셔서 2.7버전으로 다운그레이드 해주시고

 

2. npm-gyp 오류 나시는 분들은 - 출처: https://minimonk.net/8343

cmd 관리자 권한으로 실행하셔서,

npm install --global --production windows-build-tools

npm install --global node-gyp

 

입력하시면 됩니다!

저는 파이썬이랑 npm-gyp 문제가 둘다 발생해서 이문제로 골치좀 아팠네요...

윈도우10 환경에서 종종 발생되는 문제라고 합니다.

 

 

3. 그리고 truffle deploy --network klaytn 하실 때 컴파일 에러 발생하시는 분들은,

그리고 truffle.js 파일 이름을 truffle-config.js 이름으로 수정해서 다시 시도 해보세요!

저는 이렇게 하니까 되네요!

이게 왜 문제가 발생하냐면, 윈도우의 경우에는 truffle의 실행 명령어인 truffle.cmd 와 충돌이 일어날 수 있다고 합니다. 그래서 truffle.js로 하지않고 윈도우 환경에서는 되도록이면 truffle-config.js 로 수정해서 실행해주어야 한다고 합니다. 출처 - https://steemit.com/truffle/@blueleeky/truffle

 

4. 마지막으로 Unknown network "klaytn". See your Truffle configuration file for available networks. 에러 나시는 분들은, 저도 이거 잠시 겪었는데 파일의 내용에 오타가 있거나 철자 하나가 빠지거나, 필요한 내용이 없거나 할 때 발생되는 문제입니다.

저는 networks 부분이 network 라고 적혀있었기 때문에 문제가 발생하더라구요.

 

// truffle.js config for klaytn.
const PrivateKeyConnector = require('connect-privkey-to-provider')
const NETWORK_ID = '1001'
const GASLIMIT = '20000000'
const URL = 'https://api.baobab.klaytn.net:8651'
const PRIVATE_KEY = '' // 싱글 따옴표 안에 자신의 프라이빗 키 입력하세요.

// 스마트 컨트랙트를 배포할 수 있는 간단한 기본 설정
module.exports = {
    networks: {
        klaytn: {
            provider: new PrivateKeyConnector(PRIVATE_KEY, URL),
            network_id: NETWORK_ID,
            gas: GASLIMIT,
            gasPrice: null,
        }
    }
}

 

구동되는 환경설정 소스코드 입니다. 그대로 복사하셔서 프라이빗 키만 채워넣고 다시 해보세요.

이 에러들 찾느라 하루를 꼬박 샜네요...

 

그리고 강의 잘 듣고있습니다! 이런 좋은 강의 무료로 올려주시다니... 감사합니다! :)

추후 목표인원 달성하면 유료로 진행되는 강의도 수강할 계획입니다!

1
전희철 프로필

governance council 노드들은 어찌뽑나요? 전희철 3일 전

코인갯수를 통해서 지분양만큼 순위권안에 들어가게뽑는지요? 

1
블록체인 프로필

거래 질문드립니다. 블록체인 4일 전

안녕하세요.

오너계정과 일반계정이 서로 클레이를 주고받을 수 있게 구현하고 싶은데요

일반계정이 컨트랙계정에 돈을 송금하는건 구현했는데 컨트랙 계정이 오너계정에게 받은 돈을 송금하게 하려면 어떻게 해야하는지 궁금합니다. 솔리디티에서 메소드를 추가해야하나요?

2
JPAStudent 프로필

질문드립니다 JPAStudent 5일 전

안녕하세요. 몇 가지 질문 드립니다!

1. klaytn에서 private 네트워크를 이용한 서비스를 개발하려면 test net을 생성하면 되는 것인가요??

2. test net에서는 트랜잭션 비용이 발생하지 않게 값을 조정할 수 있는 것으로 알고있는데 이렇게 사용할 경우 test network내에 채굴 노드를 운영하지 않아도 되나요??

답변 부탁드려요!

 

1
awp2122 프로필

npm install 오류 awp2122 6일 전

맥 os 및 윈도우 두환경에서 진행하고있는데 둘다안되서 문의드립니다.

 

npm install을 할시 아래와같은 오류가 뜨는데어떻게해야하는지 궁금해서 질문드립니다.

-----------------------------------------

 ~/klaytn/addition-game-starter  npm install

npm ERR! path /Users/jsy/klaytn/addition-game-starter/node_modules/caver-js/node_modules/websocket

npm ERR! code EISGIT

npm ERR! git /Users/jsy/klaytn/addition-game-starter/node_modules/caver-js/node_modules/websocket: Appears to be a git repo or submodule.

npm ERR! git     /Users/jsy/klaytn/addition-game-starter/node_modules/caver-js/node_modules/websocket

npm ERR! git Refusing to remove it. Update manually,

npm ERR! git or move it out of the way first.

 

npm ERR! A complete log of this run can be found in:

npm ERR!     /Users/jsy/.npm/_logs/2019-07-15T08_30_25_090Z-debug.log

 

-------------------------------------------

 

npm 은 6.9

node js는 12.6

truffle 은 4.1.15 사용중입니다.

 

 

2
신현수 프로필

클레이튼 블록보상 왜하나요? 신현수 7일 전

합의 프로토콜은 철저하게 프라이빗체인이고, 체인을 이용한 여러 트랜잭션생성은 퍼블릭하게 오픈한게 클레인튼인데 합의프로토콜에 참여한 소수의 노드에게 블록생성할때마다 보상을 준다는게 좀 이상한것 같습니다.

카카오톡측에서 뭐 이정도면 신뢰할수있는 기업이다 뭐니어쩌고저쩌고해서 합의노드를 선출만하면 그 세끼들은 계속해서 블록보상을 독점하는거잖아요 이거 뭔가 이상해도 한참이상한것같은데...

도대채 보상시스템을 왜 만들었는지 이해가안됩니다

5
rnjsskdud941 프로필

npm 설치 에러 rnjsskdud941 17일 전

 

npm install이 안되는데 어떻게 해야할까요?

git도 깔려있는 상태입니다.

1
제이유 프로필

오랜만에 baobab testnet에 저장된 데이터를 조회할 때 out of gas가 뜹니다. 제이유 18일 전

getHashCont : function(c_code){
        return new Promise(function(resolve, reject){            
            agContract.methods.getContHash(c_code).call().then(function(name){
                if(name){
                    console.log("bmodul: "+name);  
                    resolve(name);
                }else{
                    console.log("No value in the blockchain");  
                }
                reject(new Error("No value in the blockchain."));
            })
          });
    }

를 통해 데이터를 불러올 때 

 

아래의 에러가 뜹니다.... 

Uncaught (in promise) Error: Returned values aren't valid, did it run Out of Gas?
    at ABICoder.decodeParameters (index.js:220)
    at Contract._decodeMethodReturn (index.js:796)
    at Method.outputFormatter (index.js:1347)
    at _formatOutput (index.js:216)
    at Method.formatOutput (index.js:223)
    at eval (index.js:270)
    at eval (index.js:218)
    at XMLHttpRequest.request.onreadystatechange (index.js:140)
    at XMLHttpRequestEventTarget.dispatchEvent (xml-http-request-event-target.js:34)
    at XMLHttpRequest._setReadyState (xml-http-request.js:208)

 

그리고, 다시 truffle을 deploy하려고 할 때, 

 

truffle : 'truffle' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니
다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.
위치 줄:1 문자:1
+ truffle
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (truffle:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

 

이 오류가 뜹니다...

2
JPAStudent 프로필

질문드립니다 JPAStudent 18일 전

안녕하세요

klaytn에 cn, pn, miner와 같은 주체(?)들은 bApp개발시 신경 쓸필요가 없는 건가요??(klaytn 환경에서 기본으로 동작하고 있는 컴포넌트인가요??)

서비스를 만들어보려고하는데 아직 이해가 안되는 부분이 많아서 질문드려요

1
김예서 프로필

nodejs말고 django로 할수있는 방법도 있나요? 김예서 18일 전

아니면 django에서 nodejs코드를 연동해올 수 있을까요..? 이미 django 바탕으로 만들어져 있는 데에 사용하고 싶어서요 ㅠ

1
김용현 프로필

다른계정으로 송금 김용현 24일 전

Owner계정으로 송금할때는 문제없이 transaction이 되는데 다른계정으로 송금할때는 문제를 풀고나면 0.1KLAY 받기탭까지뜨고 Spinner가 계속 돌아가면서 주소로 전송된다는 메세지가 안뜸니다.. 무슨문제인가요??..

2
송현수 프로필

클레이튼도 토큰을 생성할 수 있나요? 송현수 26일 전

이더리움의 ERC20과 같이 클레이튼 플랫폼에서도 토큰을 생성할 수 있나요????

아니며 ERC20기반의 토큰을 클레이튼에서 운영(?)할 수 있나요?

1
송현수 프로필

deposit()함수에 대해서 질문이 있습니다. 송현수 28일 전

deploy해서 txvalue를 1로 설정한 후 deposit()함수를 실행시키면 owner 계정에서 AdditionGame 컨트랙의 주소로 1Klay가 이동되는 것을 강의에서 확인하고 테스트해봤습니다.

그런데 약간 의아한 부분이 있는데 왜 코드에서는 msg.sender와 owner가 같은지만 검사하는 require문만 있는데 위에서 언급한 내용들이 함수에서 실행되는 것인가요?

단순히 deposit()함수를 보면 그냥 msg.sender가 owner와 같은지 테스트하는 함수로 볼 수 있지 않나요?

payable 키워드를 추가함으로써 위와같은 기능들이 기본적으로 추가가 되는 것인가요? 

이에 대한 설명 부탁드립니다 ㅠㅠ

1
tae hyung kim 프로필

npm install tae hyung kim 1달 전

npm install을 하면

> scrypt@6.0.3 preinstall C:\Users\LG\addition-game-starter\node_modules\scrypt

> node node-scrypt-preinstall.js

 

 

> keccak@1.4.0 install C:\Users\LG\addition-game-starter\node_modules\keccak

> npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."

 

 

> keccak@1.4.0 rebuild C:\Users\LG\addition-game-starter\node_modules\keccak

> node-gyp rebuild

 

 

C:\Users\LG\addition-game-starter\node_modules\keccak>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )

gyp ERR! configure error

gyp ERR! stack Error: Command failed: C:\Python\Python36\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];

gyp ERR! stack   File "<string>", line 1

gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];

gyp ERR! stack                                ^

gyp ERR! stack SyntaxError: invalid syntax

gyp ERR! stack

gyp ERR! stack     at ChildProcess.exithandler (child_process.js:294:12)

gyp ERR! stack     at ChildProcess.emit (events.js:198:13)

gyp ERR! stack     at maybeClose (internal/child_process.js:982:16)

gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

gyp ERR! System Windows_NT 10.0.17134

gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"

gyp ERR! cwd C:\Users\LG\addition-game-starter\node_modules\keccak

gyp ERR! node -v v10.16.0

gyp ERR! node-gyp -v v3.8.0

gyp ERR! not ok

npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! keccak@1.4.0 rebuild: `node-gyp rebuild`

npm ERR! Exit status 1

npm ERR!

npm ERR! Failed at the keccak@1.4.0 rebuild script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm WARN Local package.json exists, but node_modules missing, did you mean to install?

 

npm ERR! A complete log of this run can be found in:

npm ERR!     C:\Users\LG\AppData\Roaming\npm-cache\_logs\2019-06-18T07_15_07_797Z-debug.log

"Keccak bindings compilation fail. Pure JS implementation will be used."

 

> scrypt@6.0.3 install C:\Users\LG\addition-game-starter\node_modules\scrypt

> node-gyp rebuild

 

 

C:\Users\LG\addition-game-starter\node_modules\scrypt>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )

gyp ERR! configure error

gyp ERR! stack Error: Command failed: C:\Python\Python36\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];

gyp ERR! stack   File "<string>", line 1

gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];

gyp ERR! stack                                ^

gyp ERR! stack SyntaxError: invalid syntax

gyp ERR! stack

gyp ERR! stack     at ChildProcess.exithandler (child_process.js:294:12)

gyp ERR! stack     at ChildProcess.emit (events.js:198:13)

gyp ERR! stack     at maybeClose (internal/child_process.js:982:16)

gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

gyp ERR! System Windows_NT 10.0.17134

gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"

gyp ERR! cwd C:\Users\LG\addition-game-starter\node_modules\scrypt

gyp ERR! node -v v10.16.0

gyp ERR! node-gyp -v v3.8.0

gyp ERR! not ok

npm WARN klay-dapp-boilerplate@0.0.1 No repository field.

npm WARN klay-dapp-boilerplate@0.0.1 No license field.

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules\fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

 

npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! scrypt@6.0.3 install: `node-gyp rebuild`

npm ERR! Exit status 1

npm ERR!

npm ERR! Failed at the scrypt@6.0.3 install script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

 

npm ERR! A complete log of this run can be found in:

npm ERR!     C:\Users\LG\AppData\Roaming\npm-cache\_logs\2019-06-18T07_15_11_044Z-debug.log

 

이런 오류가 뜹니다. 어떻게 해야할까요...

 

node: 10.16.0

npm: 6.9.0

입니다

2
김용현 프로필

npm install 김용현 1달 전

npm ERR! path git
npm ERR! code ENOENT
npm ERR! errno ENOENT
npm ERR! syscall spawn git
npm ERR! enoent Error while executing:
npm ERR! enoent undefined ls-remote -h -t git://github.com/frozeman/WebSocket-Node.git
npm ERR! enoent
npm ERR! enoent
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\82109\AppData\Roaming\npm-cache\_logs\2019-06-17T13_52_56_274Z-debug.log​
왜 에러 뜨는지 어떻게 해결하는지 알 수 있을까요??..

4