[모두의 연구소] 11/2 Bitcoin Node

안녕하세요, 모두의 연구소 블록체인 연구실입니다.

11월 2일 5회차 스터디에서 박인수님이 발표하신 비트코인 노드 자료를 공유합니다.

비트코인 노드란?

  • 비트코인 네트워크에 연결된 모든 컴퓨터를 노드라고 정의
  • 노드들은 지갑, 블록체인 복사본, 검증엔진, 채굴, P2P 네트워크 전송 기능 등을 가지고 있으며, 좀 더 Light한 기능들로만 구성된 클라이언트도 많이 개발되어 있음 / 참고 : https://en.bitcoin.it/wiki/Clients
  • 현재 풀노드 10825개 (11/02 기준) / 참고 : https://coin.dance/nodes

비트코인 노드 종류

  • Full Node: 풀 노드는 비트코인 거래 정보(블록체인)를 전부 저장하고 비트코인 사용자들의 지갑을 관리하며 비트코인 네트워크상으로 직접 거래를 만들어 낼 수 있다.
  • Lightweight Client: 사용자의 지갑을 저장하긴 하지만 비트코인 거래나 네트워크에 접근하기 위해서는 제 3자가 소유한 서버에 의존한다. 일반적으로 블록체인의 헤더정보만 저장한다.
  • Web Client: 웹 브라우저를 통해 접속하며 제3자가 소유한 서버상에서 사용자의 지갑을 저장한다. (ex: 거래소)
  • 모바일 비트코인: 스마트폰에서도 풀/라이트웨이트/웹 클라이언트 사용 가능 (풀???)

Full Node?

  • 지갑, 블록체인 복사본, 검증엔진, 채굴, P2P 네트워크 전송 기능 등을 가지고 있는 노드
  • 풀노드는 블록에 포함된 트랜잭션들과 블록 전체의 정합성을 검증
  • 검증을 통과한 블럭만 정당한 블록으로 인정하고, 로컬 데이타베이스를 업데이트하고 다른 노드로 전파
  • 블록체인 동기화 과정에 대략 3일의 시간과 130기가의 용량 필요

bitcoin-cli

실습(1)

  • BitcoinCore 설치: https://bitcoin.org/en/bitcoin-core/

  • Regtest 에서 기동
    Testnet : 실제 인터넷상에서 동작하는 테스트 네트워크
    Regtest : 로컬 PC 내에서의 테스트 네트워크. 자유롭게 계정을 만들거나 채굴이 가능

    ./bitcoind –regtest (linux)
    ./Bitcoin-Qt –regtest (mac)

  • 비트코인은 보상을 받은후 100블록이 경과하지 않으면 송금 등에 이용할 수 없기 때문에 101개의 블록을 만든다.

    ./bitcoin-cli –regtest generate 101

실습(2)

  • 계좌 생성 ./bitcoin-cli –regtest getnewaddress a
  • 잔고 확인 ./bitcoin-cli –regtest getbalance
  • 생성한 계좌에 송금하기 ./bitcoin-cli –regtest sendtoaddress 계좌 10
  • 트랜잭션 확인 ./bitcoin-cli –regtest listunspent
  • 확정된 트랜잭션이 없기 때문에 출력결과는 빈 상태 ./bitcoin-cli –regtest listunspent 0
  • 미확정 트랜잭션을 확정하기 위해 채굴 실행 ./bitcoin-cli –regtest generate 1
  • 송금 확인 ./bitcoin-cli –regtest getbalance a

PPT 링크는 아래와 같습니다.
https://drive.google.com/drive/u/3/folders/0BycGB_asZKAEZFhaMUpabFJpVG8

감사합니다.

H2
H3
H4
3 columns
2 columns
1 column
1 Comment