ABOUT ME

-

Today
-
Total
-
  • [Bitcoin] 비트코인 코어 운영 : 채굴, 계정 생성, 송금
    Study/Blockchain 2019. 8. 8. 10:10
    반응형

    bitcoin core

    코어를 직접 운영해보면 비트코인이 어떻게 동작하는지 원리를 알기 쉽다.
    비트코인 코어는 모두 오픈소스로 Github에 공개되어있어서 쉽게 설치할 수 있다.

     

    bitcoin-daemon (bitcoind)을 이용해서 bitcoin core를 운영해보자.
    그리고 비트코인 테스트넷은 2가지 종류가 있는데, regtest 네트워크를 활용했다.
    - testnet : 인터넷 상에서 동작하는 테스트 네트워크이고,
    테스트용 BTC를 사용하는데 이미 대량의 블록체인이 존재하기 때문에 처음 시작 부터 모든 블록을 동기화해야한다.
    - regtest : 로컬 PC 내에서의 테스트 네트워크이고,
    개인 PC에서 비트코인 코어를 운영할 수 있으며 블록체인 초기화도 쉬워서 테스트로 사용하기 적합하다.

     


     

    개발 환경 : ① Oracle VM VirtualBox ② Putty

     

     

    1. 비트코인 데몬 실행

    bitcoind -regtest -daemon -deprecatedrpc=generate 

     

    2. 다른 터미널 하나 띄워서 bitcoin-cli로 조작

     

    3. 블록 생성

    cd bitcoincore
    bitcoin-cli -regtest generate 101

    : 송금 테스트를 위해 블록을 생성하고 보상으로 BTC를 받는다
    **비트코인은 100블록이 넘지 않으면 송금 등에 이용할 수 없으므로 101개 생성한다
    **각 행은 1블럭을 나타내며 해시값은 16진수로 표현한다

     

    ​4. 블록 수 확인

    bitcoin-cli -regtest getblockcount

    5. 계좌 생성

    bitcoin-cli -regtest getnewaddress testuser1

    6. 잔고확인

    bitcoin-cli -regtest getbalance

    : 채굴자가 블록 생성을 통해 보상받은 비트코인 잔고 확인이 가능하다

    ** 위 명령어 왼쪽 끝에 인수로 특정 계좌를 기재하면 해당 계좌의 잔고 확인이 가능하다

     

     

    7. 송금

    bitcoin-cli -regtest sendtoaddress 송금계좌 금액

    ex) bitcoin-cli -regtest sendtoaddress 2MyptXGrSvBhYDyUY9K35xymNPadKC4b23H 10

    : 송금할 계좌와 금액을 지정해 트랜잭션을 생성한다
    그리고 결과값으로는 트랜잭션 확인을 위한 식별번호가 표시된다.(txid)

    ☞ a55ceb2bf4971d34126910a6ab98aafced7ed877f7de3b66ad0219a2da14b26e

     

    8. 트랜잭션 확인

    bitcoin-cli -regtest listunspent
     bitcoin-cli -regtest listunspent 0

    : listunspent는 확정된 트랜잭션을 확인하는 명령인데 빈 값으로 결과가 나온다.
    그렇다면 인수로 0을 추가 작성하여 다시 실행시켜보면 미확정 트랜잭션을 확인할 수 있다.
    ​ 위 사진에서 노란색 밑줄을 확인해보면 confirmation이 0인 것을 볼 수 있다.
    이는 트랜잭션은 생성됐지만 송금이 확정되지 않은 것을 의미한다.
    미확정 트랜잭션을 확정하기 위해서는 트랜잭션 이후에 채굴이 진행되야한다.
    **블록체인은 트랜잭션 생성 이후 채굴이 진행되어야만, 트랜잭션이 블록에 저장되고 확정된다.

     

    9. 채굴

    bitcoin-cli -regtest generate 1

    : 미확정 트랜잭션을 확정하기 위해 채굴을 실행한다

    bitcoin-cli -regtest listunspent

     

    다시 확정된 트랜잭션을 확인하기 위해 명령어를 치면
    노란색 밑줄 부분에 컨펌이 1이 되고, 트랜잭션이 확정됐음을 볼 수 있다.

    10. 잔고 확인

    bitcoin-cli -regtest getbalance
    bitcoin-cli -regtest getreceivedbyaddress 2MyptXGrSvBhYDyUY9K35xymNPadKC4b23H

    : 첫 번째는 채굴자의 잔고 확인이고, 두 번째는 송금 내역 확인이다.
    채굴자의 잔고는 수수료와 송금액을 제외하고 39.99...BTC 가 남았고,
    송금계좌는 10 BTC가 들어왔을 것이다,


     

     

    테스트 네트워크를 통해서 비트코인을 채굴해보고, 송금해본 것을 토대로
    비트코인이 어떻게 동작하는지 더욱 자세히 알 수 있었다.
    다양한 오픈소스들이 넘쳐나는 지금이 바로 공부를 더 쉽게 방대하게 할 수 있는 기회인 것 같다.

    반응형

    댓글