사랑하애오
article thumbnail
블록체인 네트워크 웹소켓 WebSocket http ws
BlockChain 2021. 12. 31. 14:30

P2P (Peer to Peer) 구현 방법 -> WebSocket -> socket.io = 웹소켓으로 웹으로 구성할 때 필수적인 구성을 미리 만들어 놓은 패키지 이전 node.js chatting을 만들 때 사용함 기본 기능 외 여러가지 기능이 많다. 처음 사용하는 사람이 사용하기 편하다 -> ws (web socket 약자) 접속에 대한 것만 ex) broadcast, to 블록체인은 두 개의 port가 필요 1) 서버 - 클라이언트 2) 노드끼리 통신 server - client http 서버 먼저 만들기 with express express 설치 **** 터미널 경로 src 에서 npm i express network.js(websocket) websocket은 여기서 주요한 역할을 담당한다. ..

article thumbnail
블록체인 새 블록 추가, 연결하고 검증하기
BlockChain 2021. 12. 30. 15:08

src/block.js 1. AddBlock 새로운 block 추가하는 함수 // 새로운 block을 간단히 추가하는 함수 function addBlock(){ const newBlock = nextBlock(data); if(isValieNewBlock(newBlock, getLastBlock())){ Blocks.push(newBlock); return true; } return false; } 2. newBlock 새로운 블록을 생성하는 함수 // 다음 블럭(nextBlock)의 header와 body를 만들어주는 함수 function nextBlock(data){ // 이전 block 가져오기 const prevBlock = getLastBlock(); // Header const version ..

article thumbnail
블록체인 제네시스 블록 만들기 by JavaScript
BlockChain 2021. 12. 30. 11:22

블록체인 블록 만들기 첫 블록, = Genesis block 은 개발자가 하드코딩을 해야함 블록의 구성 요소 A block is composed of a header and a body, where a header contains the hash of previous block, a timestamp, Nonce and the Merkle root. The Merkle root is the root hash of a Merkle tree which is stored in the block body. Genesis Block(제네시스 블록) 만들기 1. 기본 세팅 사용할 디렉토리 안에(* 경로 주의) (src 상위 디렉토리에서 npm) npm init -src 디렉토리 생성 > block.js 파일 생성 ..

article thumbnail
블록체인 블록 만들어보기
BlockChain 2021. 12. 29. 12:07

block chain 개념 사전 개념 네트워크(http, socket) 분산원장 c.f)socket(p2p 연결형식) Hash sha256 단방향 암호화(복호화 ((그래서 모든 포털사이트에서 아이디는 찾아도 비밀번호는 그냥 재설정하는 이유))할 수 없는 암호시스템) 자리수 고정됨(a를 넣어도 64글자 marvel를 넣어도 64자리) merkle Tree 만들어진 목적 1. 해당 거래를 효율적으로 찾아가도록 하기 위해서 만들어짐. 위의 블록에서 L4를 찾아가려면 1>2>3>4로 찾아가는 과정 없이, hash1>hash1-1로 2단계로 찾아가면 되니 효율적이다. 2. 또한 위변조를 감지할 수 있다. 하위 노드값을 변조하면 해시값이 바뀌고, 그로 인해 상위 노드값이 변하기 때문에 결국 top hash값이 바뀌..

blockchain 맛 보기
BlockChain 2021. 12. 27. 12:26

//block.js const { Console } = require('console') const fs = require('fs') const merkle = require('merkle') class Block{ constructor(header, body){ this.header = header this.body = body } } class BlockHeader { constructor (version, previousHash, timestamp, merkleRoot, bit, nonce){ this.version = version this.previousHash = previousHash this.timestamp = timestamp this.merkleRoot = merkleRoot this..

블록체인 합의 알고리즘
BlockChain 2021. 12. 24. 15:37

Pow(Proof of Work) - 작업 증명 장점 : 답을 찾아낸 노드(개인)가 이익을 가져가는 구조 모든 노드들이 서로 부정행위가 방지되도록 경계하는 구조로 탈중앙화가 가능. 최초의 제안된 비트코인의 합의 알고리즘으로 해쉬(Hash)함수를 통해서 블록체인을 형성하고, 임의로 조작하기 힘든 강력한 보안성을 확보. 단점 : 조건을 만족하는 답(해쉬 값)을 찾기 위해 맏개한 컴퓨팅 파워가 필요해 많은 전력, 에너지가 낭비됨. 트랜잭션이 완료되기까지 많은 시간이 걸리고 느리다. 관련 블록체인 : 비트코인, 이더리움, IOTA, 라이트코인, 비트코인캐시, 비트코인골드, 모네로 문제(특정 조건을 만족하는 해쉬값 찾기 특정 길이 특정 해쉬값 이하의 해쉬값 찾기)를 주고, 조건을 만족하는 답을 찾아낸 노드에게 보..