내맘대로 Study 79

[클레이튼] 개발 환경

목표 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 플랫폼 없음 있음 발생 방식 발행자가 임의이 개수를 발생 채쿨을..

[문법] 부사절

개요 부사절이 무엇인지 배워 봅니다. 부사절 ? 1. 정의 - 부사 자리에 문장을 넣어 주는 것이 부사절 이다. - 완전한 문장이 부사절 접속사와 같이 사용되면 부사절이 된다. 2. 형태 - 부사절 접속사 + 완문 이다. 어떻게 사용하는가? 부사절 접속사 + 완문의 형태로 하여 문장의 앞/이나 뒤에 위치하여 동사, 형용사, 부사에 정보를 보충 해준다. 부사절 위치 - 부사절은 문장 앞/위에 위치합니다. 부사절 접속사의 종류 1. when 뜻 : ~ 할때 2. if 뜻 : ~한다면 3. because 뜻 : ~때문에 4. since 뜻 : ~이래로, 때문에 5. as 뜻 : ~로서, ~하면서, ~때문에 6. as long as 뜻 : ~하는 한 7. as far as 뜻 : ~하는 한 8. until 뜻 ..

[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..

[클레이튼] 클래이튼 이해하기

클레이튼의 태생 이더리움의 비잔티움 버전 fork해서 만듬 합의 1. 합의 알고리즘 종류 - Public 블록체인 : PoW, PoS 등등 - Private 블록체인 : PBFT, Raft 등등 * BFT(비잔티움 결함 허용) - 참여 node 수 제한/성능 높임 - 분산화 약화/투명성 저하 2. 클래이튼 합의 알고리즘 - IBFT(이스탄불 비잔티움 결함 허용) - 공개를 통한 개인적인 합의 신뢰 모델(private consensus with public disclosure) 3. IBFT 설명 1. 핵심 : 한 node가 블록을 생성하고 그걸 나머지 node가 증명하는 방식 이때 블록을 생성하는 node는 라운드 로빈 방식으로 선택됩니다. 2. 총 5단계로 합의가 결정됨 1) propose - 합의에 ..

[클레이튼] 기존 플랫폼과의 비교

개요 scalablity 와 Finality로 기존 브록체인의 한계를 알아본다. scalability 정의 : TPS + BI * Transacion Per Second (TPS): 초당 거래 처리 개수 * Block Interval (BI): 블록 생성 간격 - 의미: 거래가 블록에 기록 되기 까지의 걸리는 시간 항목 비트코인 이더리움 TPS 7 15 ~ 20 BI 10 분 15초 ~ 20초 블록 당 저장되는 TPS( TPS * BI) 4200 225 ~ 400 Finality 정의 : TX(transaction, 거래)가 변경 불가라는 합리적인 보장까지 기다려야 되는 시간. Transaction이 생성되면 바로 처리 되지 않는다. 검증을 다해야 Transaction이 정상 처리가 된다. 그러나. 비트..