본문 바로가기
매일코딩/블록체인-자바스크립트

자바스크립트로 블록체인 구현 강좌2 - 나만의 비트코인 발행하기

by 인생여희 2018. 5. 25.
반응형

자바스크립트로 블록체인 구현 강좌2 - 나만의 비트코인 발행하기


지난 포스팅에서는 자바스크립트로 블록체인 구현을 위한 셋팅과 자바스크립트의 데이터구조와 프로토타입에 대한 기본 지식을 알아보았다. 이번에는 지난번 포스팅에서 구현한 내용을 직접 console.log로 찍어보면서 대충 아~ 이런거구나 하고 감을 잡아보자

blockchain.js  모듈화 하기

//블록체인 데이터 구조
function Blockchain(){
this.chain = [];
this.newTransactions = [];
}


//블록체인 프로토 타입 함수 정의
Blockchain.prototype.createNewBlock = function(nonce,previousBlockHash,hash){
//새 블록 객체
const newBlock = {
index: this.chain.length + 1,
timestamp: Date.now(),
transactions: this.newTransactions,
nonce:nonce,
hash:hash,
previousBlockHash:previousBlockHash
};

//다음 거래를 위한 거래내역 배열 비워주고 새로운 블록을 chin 배열에 추가
this.newTransactions = [];
this.chain.push(newBlock);

return newBlock;

}

//Blockchain 모듈화
module.exports = Blockchain;

module.exports = Blockchain으로 다른 페이지에서도 이 모듈을 사용할 수 있게 해준다.


test.js 로 이동. 

아래와 같이 코드를 작성해준다. 위에서 작성한 블록체인 코드를 여기서 테스트 해보겠다는 뜻이다. 그리고 실행해보자.

//blockchain.js 모듈을 이곳에서 가져다 쓰겠다.
const Blockchain = require('./blockchain')

//위에서 가져온 모듈의 객체를 만든다.
const bitcoin = new Blockchain();

//찍어보기
console.log(bitcoin)


 node 명령어로 실행해보기 

 node 명령어로 실행한거 확인해보기 -  짜쟌


저게 먼지는 아직 잘 몰라도 일단 콘솔에 우리가 적은 코드랑 비스무리한게 떴다.

자 그럼 이제 직접 새로운 블락을 생성해보자

주석으로 새로운 블락 만들기를 보자. createNewBlock은 앞 포스팅에서 만들어놓은 프로토 타입 함수다. 인자값으로 일단 아무 값이나 넣어주었다.

//blockchain.js 모듈을 이곳에서 가져다 쓰겠다.
const Blockchain = require('./blockchain')

//위에서 가져온 모듈의 객체를 만든다.
const bitcoin = new Blockchain();

//새로운 블락 만들기
bitcoin.createNewBlock(1111,"aaaaaaa","1a1a1a1a1a1a");

//찍어보기
console.log(bitcoin)

//결과
//Blockchain { chain: [], newTransactions: [] }


다시 실행해보자


와우. 일단 그럴듯한 객체 데이터가 생성이 된것을 볼 수 있다. 몇개를 더 만들어 볼까?

//새로운 블락 만들기
bitcoin.createNewBlock(1111,"aaaaaaa","1a1a1a1a1a1a");
bitcoin.createNewBlock(2222,"bbbbbbb","2b2b2b2b2b2b");
bitcoin.createNewBlock(3333,"ccccccc","3c3c3c3c3c3c");


결과

Blockchain {

  chain: 

   [ { index: 1,

       timestamp: 1527223987875,

       transactions: [],

       nonce: 1111,

       hash: '1a1a1a1a1a1a',

       previousBlockHash: 'aaaaaaa' },

     { index: 2,

       timestamp: 1527223987875,

       transactions: [],

       nonce: 2222,

       hash: '2b2b2b2b2b2b',

       previousBlockHash: 'bbbbbbb' },

     { index: 3,

       timestamp: 1527223987875,

       transactions: [],

       nonce: 3333,

       hash: '3c3c3c3c3c3c',

       previousBlockHash: 'ccccccc' } ],

  newTransactions: [] }


이번 포스팅에서는 새로운 블락을 생성하고 콘솔로 한번 찍어 보았다. 아직은 이게 먼지 100% 감이 안올거다. 일단 하나씩 따라와 보자. 

반응형

댓글