일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- kas
- blockchain
- nodejs
- frontend
- 블록체인 구조와 이론
- 이더리움
- ethereum
- Solidity
- 제어자
- API
- Klaytn
- 솔리디티
- 클레이튼
- Klaytn API Service
- javascript
- vue
- Web
- 접근제어자
- 웹
- SCN
- geth구현
- vue.js
- 앵커링
- 프레임워크
- 프론트엔드
- web3.js
- web3
- Geth
- 서비스체인
- 블록체인
- Today
- Total
목록Study/클레이튼 (11)
BloCCat
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dnUZ4e/btrnP7woPco/RyyFQQQGwodOyLoqx6Imbk/img.png)
node js v17.2.0 사용 프로젝트 구조 - main.js : 'libs' 폴더의 caver 함수를 사용하는 main 함수를 담은 파일 - libs : caver-js 를 이용하여 만든 함수(라이브러리)를 모아놓은 폴더 - provider.js : Service Chain 과 연결하는 provider 파일 코드 1. provider.js require('dotenv').config(); // 전역 변수(.env파일에 선언한 변수)를 사용하기 위함 const Caver = require('caver-js'); //caver-js 객체 선언 const caver = new Caver(process.env.SCN_URL); // Service Chain Provider - server ip:scn po..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Hko7k/btrnBAc1nDZ/gr5ukxWydBJkyVsJoIpS3K/img.png)
앵커링이란? - 프라이빗 블록체인에 기록된 데이터의 해시값을 주기적으로 퍼블릭 블록체인 안에 포함시키는 것 SCN 과 EN 연동 * SCN 과 ENN 모두 가동 1. EN 의 kni 확인 2. SCN의 data 폴더에 EN의 kni를 담는 json 파일 생성 echo '["
SCN과 마찬가지로 aws, vutr 등의 cloud 서버 사용 * aws 권장 사양 모델명 vCPU 수 메모리(GiB) 스토리지(GiB) EBS 대역폭(Mbps) 네트워크 대역폭(Gbps) 가격(서울,USD/h) m5.2xlarge (권장) 8 32 EBS 전용 3,500 최대 10 0.472 - 예상 스토리지 요구사항 : 2.5GB/1일 1. EN (baobab)설치 $ wget https://packages.klaytn.net/klaytn/v1.7.1/ken-baobab-v1.7.1-0-linux-amd64.tar.gz $ tar zxf ken-baobab-v.1.7.1-0-linux-amd64.tar.gz 2.환경 변수 전역 설정 $ export PATH=$PATH:~/ken-linux-amd64..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdkGXy/btrnrjEDhM9/s9oZLIEOtoZg6PosI3tN60/img.png)
1. 개인 keystore 파일 생성 - keystore : account private key 파일 저장 kscn account new --datadir -> DATA-DIR / keystore에 파일 생성 2. 생성된 account에 klay를 할당하고 node 초기화 (genesis.json 수정후 재가동) vi ~/klaytn/homi-output/scripts/genesis.json balance 값은 Peb단위의 수량을 hex값으로 입력한다. 위 금액은 1000Klay 다. vi init.sh kscnd stop kill -9 $(ps -ef | grep "kscn" | grep -v 'grep' | grep -v 'tail' | grep -v 'vi' | awk '{print $2}') rm..
SCN을 구축하기 전에 클레이튼 네트워크의 구조를 알아야 한다. https://bloccat.tistory.com/entry/%ED%81%B4%EB%A0%88%EC%9D%B4%ED%8A%BC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%84%B1?category=961166 클레이튼 네트워크 구성 클레이튼은 기본적으로 이더리움을 기반으로 만들어진 네트워크지만 형태가 다르다 기존 public 블록체인 네트워크인 이더리움과 비트코인이 단일 네트워크인 반면 클레이튼은 3중 네트워크로 bloccat.tistory.com 간단히 말하면 서비스 체인은 개인, 기업이 클레이튼 네트워크에 데이터(트랜잭션)을 보다 빠르고 private하게 관리하기 위한 체인이다. 다만, 블록..
KAS를 사용하여 BAPP을 개발하기 앞서 모든 API가 그렇듯 해당 Document를 참고하여 개발을 한다. KAS또한 Document가 굉장히 잘 정리되어 있고 개발자 포럼에도 직원들이 24시간 내에 빠르고 친절이 답해준다. (기본적으로 BApp, DApp들은 주로 java와 java script를 지원하는데 이중 java script 언어에 대한 지원이 더 잘 돼있기 때문에 js 위주로 글을 작성한다.) https://docs.klaytnapi.com/ Introduction 이 페이지는 Klaytn API Service (KAS)를 소개합니다. docs.klaytnapi.com https://forum.klaytn.com/c/kas/25 KAS This category is for question..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6wNAo/btrfVsVgorQ/gtfxyK28fDsJiPkLcZvRqk/img.png)
KAS란? KAS란 Klaytn API Service의 약자로 ground-x에서 제공하는 클레이튼 네트워크 전용 api다. 클레이튼기반의 BApp을 개발하려면 클레이튼 네트워크에 Endpoint Node를 띄워야 하는데 KAS를 사용하면 KAS가 Endpoint Node 역할을 해주어서 따로 노드를 띄울 필요없이 제공하는 api만 사용하면 되므로 개발이 편리하다. 1. 권한 및 계정 생성 - KAS를 사용하기 위해선 KAS 권한을 받고 account를 생성해야 하는데 이는 KAS Console에서 회원가입 후 쉽게 만들 수 있다. https://console.klaytnapi.com/ko/dashboard KAS Console console.klaytnapi.com 1) 권한 생성 왼쪽 메뉴의 "Sec..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bt6lva/btrfU3uCEgo/vyjE5g0D7pkKSSLnnSpVt0/img.png)
클레이튼은 기본적으로 이더리움을 기반으로 만들어진 네트워크지만 형태가 다르다 기존 public 블록체인 네트워크인 이더리움과 비트코인이 단일 네트워크인 반면 클레이튼은 3중 네트워크로 이뤄진다. 0) SCN (Service Chain Network) - Service Chain Network는 BApp 에 의해 실행되는 블록체인으로 구성된 Klaytn 의 독립적인 하위 네트워크이다. Service Chain은 ENN을 통해 Klaytn network에 data를 처리한다. 1) ENN (Endpoint Node Network) - ENN은 Endpoint Node들로 구성돼 있으며 실제로 트랜잭션을 생성하고, rpc api 핸들링, Service Chain으로 부터 오는 데이터를 처리하여 BApp 사용에..
BFT ( 비잔티움 결함 허용) - 참여 노드수를 제한하여 높은 성능과 효율성을 달성 - 그러나 노드수를 제한하기 때문에 분산화를 약화시키고 투명성을 저하시킨다. IBFT (이스탄불 비잔티움 결함 허용) 클레이튼은 기존 BFT의 장점을 살려 public 블록체인의 장점과 결합할 수 있다는 믿음을 토대로 IBFT 알고리즘 채택. 합의를 달성하는 소수의 private 노드와 밖에서 블록 생성 결과 접근 및 검증을 하는 노드로 구성 => 공개를 통한 개인적인 합의 신뢰 모델
Finality : 변경 불가능한 최종적인 상태, 트랜잭션이 변경 불가라는 합리적인 보장을 받기까지 기다려야 하는 시간 블록이 Final하다는건 블록에 담긴 트랜잭션(거래)가 바뀔 수 없다는 걸 보증하는 것. 하지만 현재 비트코인과 이더리움의 마이닝 메커니즘은 최종성이 부족하다. 이 네트워크들에서 발생하는 트랜잭션은 바로 처리가 되지 않는다. 다만 처리가 될 것이다 라는 확률론적 최종성만 제공. 블록체인 블록 채굴 평균시간 Finality까지의 평균 시간 비트코인 10분 60분(6번의 검증) 이더리움 15초 6분(25번의 검증)