일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- web3.js
- 블록체인 구조와 이론
- 웹
- Klaytn
- web3
- 앵커링
- javascript
- API
- vue
- 접근제어자
- geth구현
- Geth
- 프론트엔드
- 클레이튼
- 블록체인
- 솔리디티
- nodejs
- frontend
- Klaytn API Service
- Web
- blockchain
- 서비스체인
- Solidity
- 제어자
- ethereum
- kas
- vue.js
- 이더리움
- 프레임워크
- SCN
- Today
- Total
목록blockchain (11)
BloCCat
![](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하게 관리하기 위한 체인이다. 다만, 블록..
동기 - 왜 블록체인이 하고싶은지? 동기가 있는지? 기존 데이터베이스의 트랜잭션과 블록체인상에서의 트랜잭션의 차이점은 뭐라 생각하는지? -> 기존 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에 대한 검증을 수행한다. 스마트 컨트랙트의 경..
함수 제어자는 인수 또한 받을 수 있다. // 사용자의 나이를 저장하기 위한 매핑 mapping (uint => uint) public age; // 사용자가 특정 나이 이상인지 확인하는 제어자 modifier olderThan(uint _age, uint _userId) { require (age[_userId] >= _age); _; } function driveCar(uint _userId) public olderThan(16, _userId) { // 필요한 함수 내용들 }
Gas : Dapp이 사용하는 연료 Dapp 함수를 호출할 때마다 (=트랜잭션이 발생할 때마다) 사용자가 내야하는 실제 돈(이더) 가스를 아끼기 위한 코딩법 1. 구조체 압축 struct 안에 여러개의 uint 타입의 데이터가 있다면 더 작은 크기의 uint를 쓰자. 그 변수들은 더 적은 공간을 차지하기 위해 스스로 메모리를 압축하여 사용한다. struct NormalStruct { uint a; uint b; uint c; } struct MiniMe { uint32 a; uint32 b; uint c; } // `mini`는 구조체 압축을 했기 때문에 `normal`보다 가스를 조금 사용한다 NormalStruct normal = NormalStruct(10, 20, 30); MiniMe mini =..
1. 매핑 기본적으로 키-값(key-value) 저장소로 데이터를 저장하고 검색하는 데 이용 // 금융 앱용으로, 유저의 계좌 잔액을 보유하는 uint를 저장한다: mapping (address => uint) public accountBalance; // 혹은 userID로 유저 이름을 저장/검색하는 데 매핑을 쓸 수도 있다 mapping (uint => string) userIdToName; 2. msg.sender : 함수를 호출한 eoa(계정주소) 혹은 ca(컨트랙트 주소) mapping (address => uint) favoriteNumber; function setMyNumber(uint _myNumber) public { // `msg.sender`에 대해 `_myNumber`가 저장되도록..
1. license & version 설정 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 uint8, uint16,uint32 과 같이 비트제한 가능, 제한 없으면 256비트 int : 정수형 -> int와 마찬가지로 비트제한이 가능하며 없으면 256비트 bool : 논리 자료형 string : UTF-8 인코딩 문자열 bytes : 바이트 address : 이더리움 주소 값 (0xaDc7192A0…) 4.수학 연산 다른 언어와 마찬가지로 기본 연산에 지수 연산까지 지원 uint x = 5 ** 2; // = 5^2 = 25 5.구조체와 배열 struct Person { uint age; string name; } // 2개의 원소를 담을 수 ..