블록체인 노드와 역할
이번 포스팅에서는 비트코인 블록체인의 노드에 대해 자세히 알아볼 것이다. 공부를 하다보면 '노드' 라는 단어를 자주 접하게 된다. 노드의 의미를 검색해보면 편의상 지갑이라고 말하는 경우, 블록을 생성하는 주체 라고 정의하기도 한다. 나는 노드를 P2P네트워크를 유지하는 컴퓨팅파워를 사용하는 모든 주체 라고 정의를 할 것이다. 사실 지갑, 채굴 모두 맞는 표현이다. 블록체인의 노드의 종류는 다양하기 때문이다. 간단하게 블록체인이 어떻게 유지가 되는지 설명하겠다. 블록체인의 노드들은 p2p네트워크를 통해 동등한 포톨로지를 갖고 서로 유기적으로 연결된다. 각 노드들은 발생한 트랜잭션을 공유하고, 이들 중 채굴 경쟁에서 승리한 노드가 블록을 생성하며 새로 생성된 블록에 트랙잭션을 저장한다. 그리고 이 블록을 모든 노드에게 공유하고 노드들은 블록체인을 동기화 한다. 전반적인 블록체인의 프로세스를 설명하였다. 아마 전체적인 컨셉정도는 이해할 수 있을것이다. 조금 깊게 들어가보자. 위의 전반적인 설명에서는 노드의 역할을 단순하게 표현을 했으나 노드의 종류는 아래와 같이 7가지가 존재하며 역할은 다르다. 위 노드를 다 경험해 보기 위한 쉬운 방법은 https://bitcore.io/bitcoin 사이트 에 들어가서 Bitcore를 다운받고 실행을 해보는 것이다. 자신이 하나의 노드가 될 수있다. 여기서 지갑주소를 만들어 거래를 한다면 위 노드구성중 Wallet기능을 갖는것이고, 채굴작업을 하게되면 Miner기능을 경험할수 있다. Bitcore를 시작하게 되면 기본적으로 Peer를 찾고 연결을 하게되는데 찾는데 성공하여 연결이 된다면 Network기능을 할수 있고, 만약 전체 블럭을 다운받고 유지한다면 Block-chain 데이터베이스 기능또한 갖게된다. 비트코인 블록체인에 어떤 기능만을 담당할지는 본인의 자유다. 그렇다면 맨 위의 노드종류부터 알아보자. Full Nod