-
[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가 들어왔을 것이다,
테스트 네트워크를 통해서 비트코인을 채굴해보고, 송금해본 것을 토대로
비트코인이 어떻게 동작하는지 더욱 자세히 알 수 있었다.
다양한 오픈소스들이 넘쳐나는 지금이 바로 공부를 더 쉽게 방대하게 할 수 있는 기회인 것 같다.반응형'Study > Blockchain' 카테고리의 다른 글
[Ethereum] 이더리움의 등장과 디앱(DApp) (0) 2019.09.03 [Bitcoin] 비트코인 UTXO : 비트코인 거래 원리 알아보기 (0) 2019.09.01 [Bitcoin] 비트코인 합의 알고리즘 PoW / 채굴 / 노드 (0) 2019.08.30 [Bitcoin] 비트코인 블록에는 무엇이 담겨있을까? (0) 2019.08.29 [Bitcoin] 비트코인과 블록체인의 등장 (0) 2019.08.27