일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
- 솔리디티
- 프론트엔드
- Geth
- Klaytn
- javascript
- Klaytn API Service
- Solidity
- 블록체인
- web3
- kas
- 접근제어자
- vue.js
- 제어자
- API
- frontend
- 블록체인 구조와 이론
- geth구현
- 웹
- 프레임워크
- SCN
- vue
- 이더리움
- 클레이튼
- nodejs
- 앵커링
- Web
- 서비스체인
- web3.js
- ethereum
- blockchain
- Today
- Total
목록블록체인 (26)
BloCCat

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

앵커링이란? - 프라이빗 블록체인에 기록된 데이터의 해시값을 주기적으로 퍼블릭 블록체인 안에 포함시키는 것 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..

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하게 관리하기 위한 체인이다. 다만, 블록..
동기 - 왜 블록체인이 하고싶은지? 동기가 있는지? 기존 데이터베이스의 트랜잭션과 블록체인상에서의 트랜잭션의 차이점은 뭐라 생각하는지? -> 기존 RDB에서의 트랜잭션이란 데이터베이스의 저장된 데이터의 상태를 변화시키기 수행작업의 단위를 뜻하는 반면, 블록체인상에서의 트랜잭션이란 블록에 저장되는 데이터 그 자체를 의미하며 이는 거래내역, 영수증을 상징하는 의미가 크다 생각된다. 추가적으로 블록체인의 트랜잭션에는 트랜잭션 해시값, 트랜잭션을 담고있는 블록의 넘버와 블록해시값, 송금값(amount), 트랜잭션이 발생한 Time Stamp, nonce 그리고 사용된 gas의 price, used, limit 등의 정보가 담긴다. 퍼블릭 네트워크와 프라이빗 네트워크의 차이점 -> 블록체인 네트워크를 퍼블릭과 프..
1. Transaction 생성 단계 특정 주소 A가 B에게 송금한다고 가정 1) 이때 A의 private key로 해당 Transaction을 암호화 (Sign : 전자서명) 2) B는 A의 public key로 해당 Transacion을 해독 -> 만약 해독이 되지 않는다면 pirvate key가 맞지 않는것이므로 Transacion은 무효 처리 *송금이 아닌 컨트랙트 호출일 경우 스마트 컨트랙트 내용 자체가 Transaction이 된다 2. Transaction 전파 단계 지갑이 해당 Transaction을 블록체인상 여러 노드들에게 동시에 전파한다 3. Transaction 검증 단계 송금의 경우 잔고확인과 Private Key를 통해 수행된 Sign에 대한 검증을 수행한다. 스마트 컨트랙트의 경..
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..

클레이튼은 기본적으로 이더리움을 기반으로 만들어진 네트워크지만 형태가 다르다 기존 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 사용에..
payable - 가상화폐로 접근하기 위한 키워드, 이더 코인을 전송하는 smart contract를 작성하기 위해서 반드시 사용 * payable을 작성한 함수에서만 이더를 보낼 수 있기 때문에 smart contract 외부에서 해당 함수들 중에 코인을 전송 시키는 함수를 사용하려 한다면, 해당 함수는 반드시 payable 키워드가 함께 작성된 함수이어야 한다. contract OnlineStore { function buySomething() external payable { // 함수 실행에 0.001이더가 보내졌는지 확실히 하기 위해 확인: require(msg.value == 0.001 ether); // 보내졌다면, 함수를 호출한 자에게 디지털 아이템을 전달하기 위한 내용 구성: transf..