내맘대로 Study/블록체인 12

[클레이튼] caver.wallet.keyring.decrypt() 에러, Uncaught ReferenceError: Buffer is not defined

목표 클레이튼 caver-js를 사용하면서 발생하는 Uncaught ReferenceError: Buffer is not defined 에러를 해결 합니다. 발생 상황 caver-js를 통해서 keyring을 decrypt 할 때 발생 합니다. caver.wallet.keyring.decrypt(this.auth.keystore, this.auth.password); 에러 정보 Uncaught (in promise) ReferenceError: Buffer is not defined at decryptKey (keyringHelper.js:96:17) at Function.decrypt (keyringFactory.js:423:25) at testFunction (app.js:18:51) 원인 Webpa..

[클레이튼] webpack 5.x 와 caver-js 호환성 문제 해결

목표 webpack 5 이상 버전 부터 caver-js에서 발생하는 호환성 문제 해결 에러 코드 ERROR in ./node_modules/caver-js/packages/caver-core-requestmanager/caver-providers-http/src/index.js 30:13-28 Module not found: Error: Can't resolve 'http' in '/home/jinkwon/develop/study/klaytn/klaytn_app/node_modules/caver-js/packages/caver-core-requestmanager/caver-providers-http/src' BREAKING CHANGE: webpack < 5 used to include polyfills..

[클레이튼] 개발 환경 truffle 설정 및 테스트 배포

목표 1. https://docs.klaytn.com/klaytn2 을 기준으로 klaytn에서 smart contract 개발 환경을 구축 합니다. Klaytn 2.0 - Klaytn Docs 2. High Performing Mainnet docs.klaytn.com 개발 환경 - klaytn의 smart contract 개발 환경을 구축 합니다. - 설치 가이드 https://docs.klaytn.com/getting-started/quick-start/install-development-tools Install Development Tools - Klaytn Docs where is one of: compile, console, deploy-contract, deploy-service, flatt..

[클레이튼] 개발 환경

목표 klaytn 개발 환경을 구성 합니다. 환경 설정 1. npm 버전 5 이상 2. node.js 버전 8 이상. 3. truffle framework 5.1.23 설치 $sudo npm install -g truffle@5.1.23 $truffle version Truffle v5.1.23 (core: 5.1.23) Node v16.15.0 4. visual studio code 설치 - solidity extention 설치 truffle 이란? 트러플(Truffle)은 이더리움 기반 디앱을 쉽게 개발할 수 있도록 도와주는 블록체인 프레임워크이다. 스마트 컨트랙트(smart contract) 컴파일, 배포, 관리, 테스트까지 빠르고 쉽게 할 수 있다. klaytn 역시 truffle framewo..

[solidity] 개발자를 위한 속성 문법 2

예외 처리 방법 지원 버전 0.422 ~ 0.7.x 1. assert - gas를 다 소비한후 , 특정한 조건에 부합하지 않으면 (false 일때) 에러를 발생시킨다. - test용도로 쓴다. function assertTest() public pure{ assert(false); } 2. revert - 조건 없이 에러를 발생시키고, gas를 활불 시켜준다. - 실전에서 쓴다. function revertTest() public pure{ revert("revert test"); } 3. require - 특정한 조건에 부합 하지 않으면(false일 때) 에러를 발생 시키고, gas를 환불 시켜준다. function requireTest() public pure { require(false, "occr..

[블록체인] token 과 coin 비교

개요 blockchain에서 token과 coin이 무엇인지 알아봅니다. token의 정의 특정 block chain에서 개발된 dApp에서 사용되는 화폐 token의 종류 token 종류 Fungible None-Fungible 대체 여부 가능 불가능 protocol ERC-20 ERC-721 실생활 예 Ex: 싸이 월드 도토리 Ex: 포켓몬 띠브실 교환 여부 가능 불가 가치 모든 token이 동일함 token마다 고유한 가치 Coin 정의 blockchain에서 사람들간의 거래를 위한 화폐의 목적으로 사용됨 Coin의 종류 비트코인, 라이트코인, 이더리움 token과 coin의 차이점 항목 token coin 독자 적인 blockcain 플랫폼 없음 있음 발생 방식 발행자가 임의이 개수를 발생 채쿨을..

[solidity] 개발자를 위한 속성 문법

개요 본 post는 적어도 하나의 언어를 안다는 가정에 하에 작성 되었습니다. 그리고 모든 code의 test는 https://ide.klaytn.com/ 에서 테스트 되었습니다. Solidity의 관점에서 컨트랙트란 무수한 코드들(함수)과 데이터(상태)가 Ethereum 블록체인의 특정 주소에 존재하는 것입니다. 기본 구조 1. Licsense 명시 - SPDX-License-Identifier: GPL-3.0 2. 버전 명시 - pragma 라는 keyword를 사용해서 smart contract가 지원하는 solidity 버전 을 명시 합니다. 1) 특정 지원 버전 명시 - pragma solidity ^0.8.4; 2) 지원 범위 명시 - pragma solidity >=0.4.0 memory /..

[클레이튼] smart contract 배포 과정 이해하기

개요 smart contract가 무엇인지 알아 본다. smart contract 정의 서면으로 이루어지던 계약을 code로 구현하고 특정 조건이 충족되었을 때 해당 계약이 이행되게 하는 script 입니다. 블록체인에서의 smart contract 란? contract code를 compile하여 bytecode로 변경 후 blockchain의 body 안에 넣고 특정 조건이 되면 실행 하는것이 lock chain에서는 smart contract 입니다. 블록체인에서의 smart contract가 배포되는 방법 [smart contract 배포 도식] 1. smart contract code compile 과정 및compile 결과물 설명 - smart contract를 배포 하는 것은 solitidy..

[클레이튼] 테스트 klaytn wallet 만들기

wallet 구조 1. private key - wallet을 접근 하는 키 2. keystore - private key를 암호화해서 갖고 있는 파일 3. keystore password - private key 암호화에 필요한 key를 만들어내는 패스워드 * keystore 구조 상세 설명 https://blog.violetstair.com/blockchain/keystore/ Keystore 파일 구조 하나의 Privatekey로 여러 체인의 Address 생성해보기 블록체인의 서명과 키파일 블록체인에서는 공개키 암호화 방식을 이용해 사용자를 구분하고 사용자가 전송한 데이터가 유효한 데이터인지 검 blog.violetstair.com wallet 생성 정차 https://baobab.wallet.k..