본문 바로가기
BlockChain/Wallet 프로그래밍 & 보안

[wallet 프로그래밍 & 보안] 1. 비트코인 실습

by rooney-l3 2019. 11. 7.

1. 터미널 쉘 명령

▶  ls : 목록 보기 
     ls -l : 상세보기

     ls -a : 숨겨진 목록까지 모두 보기
▶ cd 디렉토리명 : 디렉토리 이동
    예 ) cd home 
   디렉토리명 없이 cd 하면 자신의 홈디렉토리로 이동 
▶ pwd : 현재 위치를 보여줌 
▶ 특수 디렉토리 
    .   : 현재 디렉토리 
    .. : 상위 디렉토리 
    예 ) cd .. : 상위 디렉토리로 이동

▶ rm 파일 디렉토리 : 지우기 
    $ rm 파일명 
    $ rm r 디렉토리명 : 디렉토리와 하부구조를 모두 지움 
▶ mv 파일 디렉토리 옮길위치 : 옮기기 
    $ mv a .. : a라는 파일을 상위 디렉토리로 옮김 
▶ cp : 복사 , mv 와 동일한 문법 
▶ mkdir : 디렉토리 만들기 
    $ mkdir bit 
    $ cd bit 
▶ more : 파일 내용 보기

 

2. 비트코인 프로그램 설치

(1)sudo apt add repository ppa:bitcoin /bitcoin 

sudo apt add repository ppa:bitcoin /bitcoin

password 입력하라고하는데 그냥 enter치면 됩니다.

 

(2) $sudo apt get update 입력

$sudo apt get update

맨밑에 다음과 같은 문장이 보이면 완료된것입니다.

 

 (3)$sudo apt get install bitcoind 입력

$sudo apt get install bitcoind

 

3. 비트코인 노드

 

 (1) 노드 구동

$ bitcoind -regtest -daemon

다음과 같이 비트코인 노드를 실행하였습니다. 

 

 (2)노드 제어

$ bitcoin-cli -regtest stop

다음과 같이 비트코인 노드를 정지했습니다. 

 

4. 비트코인 주소와 채굴

 (1) 주소생성

$ bitcoin-cli -regtest getnewaddress "coinbase"

다음과 같이 "coinbase"라는 별칭을 갖은 주소를 생성하였습니다. 별칭은 생략이 가능합니다.

 

 

(2)채굴하기(돈 만들기)

$ bitcoin-cli -regtest generatetoaddress 101 2N6raBuB7ualHS8ysFxGfAgVpD5n9QnZSj7S

101개의 블록을 생성하고 채굴된 비트코인을 위에서 생성한 주소에게 지급합니다. 계정의 잔고를 조회하면 생성한 주소에 50의 돈이 들어있을겁니다. 계좌를 조회해보겠습니다.

 

 (3)계정 잔고 조회하기

 

$ bitcoin-cli -regtest listaddressgroupings

"coinbase"라는 별칭을 갖은 계좌에 50이라는 돈이 있는것을 볼 수 있습니다.

 

5. 쉘주소

$ ADDR1=$(bitcoin-cli -regtest getnewaddress "address1")

ADDR1이라는 변수를 만들어서 변수안에 바로 주소를 생성하여 저장합니다. 주소를 복사하여 붙여넣는 번거로움을 줄일 수 있습니다. 새로만든 주소는 계정에 잔고가 생기기 전까지 계정조회가 되지 않습니다. 따라서 새로만든 계정에 돈을 송금해 보도록 하겠습니다. 

 

6.코인 송금하기

$ bitcoin-cli -regtest sendtoaddress $ADDR1 10

 

ADDR1계좌에 10이 입금된것을 볼 수 있습니다. coinbase에 40이 아닌 39.999...가 남은것은 수수료가 들었기 때문입니다.

 

7. commit 하기

commit이란 코인을 송금받고 블록을 만들어 배포하는것을 말합니다. commit하기 전에 송금받은 돈은 쓸수 없는 돈입니다. 얼마만큼 commit해야 돈으로 인정해 줄것인지는 받는 사람이 정하게 됩니다. 위에서 송금받은 ADDR1은 아직 commit하지 않았습니다. 1회 commit한 계좌의 잔금을 조회해보겠습니다. 

 (1) commit 전 잔금 조회하기

$ bitcoin-cli -regtest getreceivedbyaddress $ADDR1 1

계좌의 잔금이 0원이라고 나오는것을 확인 할 수 있습니다.

 

(2)commit하기

$ bitcoin-cli -regtest generatetoaddress 1 $CB

최초만든 주소를 CB변수에 저장한 후 1회 commit시켰습니다. 이제 1회 commit시킨 계좌의 잔고를 조회해보겠습니다.

위와 똑같은 코드를 써서 조회해본 결과 1회 commit한 계좌의 잔고가 10원이 된것을 확인할 수 있습니다. 

댓글