-
도커(DOCKER) 상에서 비트코인 다운로드하기보안 2022. 11. 15. 12:00
도커를 다운로드하셨을거라 믿고
진행해보겠습니다.
저는 pjt3591oo/bitcoin:0.17.01 파일을 pull 해오겠습니다.
이 이미지는 비트코인을 공부하기위해 만들어진 이미지입니다.
자 도커 이미지 파일은 다운로드 완료했으니 사용해봅시다.
docker gui를 사용해도 괜찮습니다.
docker run -it --name bitcoin pjt3591oo/bitcoin:0.17.01 /bin/bash
컨테이너를 실행하고 ls 명령어를 통해 뭐가 있는지 한번 보았더니 bitcoin 이라는 폴더가 있습니다.
들어가보니 start 라는 shell script가 있네요 cat명령어로 확인해봅시다.
bitcoind -regtest -rpcuser=test -rpcpassword=test -server -rpcport=12345 --datadir="$PWD/.bitcoin"
-regtest = main or test network와 연결되지않음
-server:RCP 요청허용
-rpcuser =rpc요청시 필요한 유저이름
-rpcpassword = rpc요청시 필요한 비밀번호
-datadir=블록과 같은 데이터 저장위치
-rpcport = 노드들끼리 사용하는 포트번호
addnode:다른노드와 연결
daemon:노드를 백그라운드에 띄워줌
conf:설정파일경로
.bitcoin = 코인,트랜잭션등을 저장하는 디렉토리 이름앞에 .(dot)이 붙으면 리눅스상에서는 숨김파일입니다. 마찬가지로 안드로이드에서도 .(dot)이붙으면 숨김 폴더이지요.
.viminfo = vi 편집기 사용시 생성
start.sh = 실제로 작동하는 코드
지금현재로는 start.sh를 실행해보는것 밖에 할것이 없는것 같네요.
./start.sh
빠져나오기 위해서 ctrl + c를 눌러 캔슬해줍니다.
이폴더에는 뭔가 바뀐게 없네요.
숨겨진 bitcoin폴더로 가봅시다.
블록과 regtest 라는것이있네요 한번 살펴봅시다.
지갑도있고 mempool도 있고 다양한 것들이 있네요
banlist -
debug.log - 설명x
fee_estimates - 직역하면 거래 수수료 거래수수료를 얼마나 주냐에 따라 채굴(거래성립)에 걸리는 시간이 달라짐
mempool - 거래가 아직 성립되지않은 트랜잭션들이 모여있는곳
peers - 피어 목록(p2p 할떄 p)
이제 하나씩 해봅시다.
지갑만들기부터 시작합시다
상위폴더로 빠져나간뒤
mkdir 을 이용해 파일 test와 test2를 만들어준뒤
cmd 창을 2개 열고
docker exec -it bicoin /bin/bash 를 통해 docker로 들어가봅시다.
1번 창 bitcoind -regtest -rpcuser=test -rpcpassword=test -server -rpcport=12345 --datadir="$PWD/test"
2번 창 여기에는 지갑을 생성하기위해 bitcoin-cli를 사용
bitcoin-cli -regtest -rpcuser=test -rpcpassword=test -rpcport=12345 -rpcconnect=127.0.0.1 -datadir="$PWD/test" getnewaddress
명령어 제일 뒤에 닉네임을 만들어줍니다. 저는 gg로 했습니다.
순서 1번창 엔터 -> 2번창 엔터 빠져나오기
다른 주소리스트 찾기
빠져나온뒤 -deprecatedrpc=accounts를 추가한뒤 다시 실행
bitcoind -regtest -rpcuser=test -rpcpassword=test -server -rpcport=12345 --datadir="$PWD/test" -deprecatedrpc=accounts
이후 2번창에서
bitcoin-cli -regtest -rpcuser=test -rpcpassword=test -rpcport=12345 -rpcconnect=127.0.0.1 -datadir="$PWD/test" listaccounts
list를 알수 있습니다.
블록생성
bitcoin-cli 에서 generate [생성할 블록 개수]로 생성합니다
백개의 블록이 생성되었다.
근데 50 개로나온다? 이것은 코인을 의미한다 블록 100개를 생성한 대가로 받았다.
블록개수 조회
getblockcount로 블록 개수를 조회할수 있다.
어쨰선지 101개 가 있다고 나온다??
블록 해시 조회
getblockhash [hash no]
블록정보조회
getblock [block hash]
조회시 시간,트랜잭션,난이도,다음블럭해쉬등 이 만들어져있는것을 볼수 있다.
지갑주소 확인
getaccountaddress label
비트코인 전송 sendtoaddress [받는사람주소] [전송량]
잘못 보내버렸네요..
코인이들어온것을 알 수 있습니다.
'보안' 카테고리의 다른 글
정보처리기사 공부 (1) 소프트웨어 설계-생명주기,기본원칙,개발모형 (1) 2022.12.27 안티리버싱(anti-reversing) (0) 2022.11.22 피아트-샤미르(Fiat-Shamir)프로토콜 (0) 2022.11.16 리버싱(0)-리버스엔지니어링이란 (0) 2022.11.01 블록체인 - (0) 블록체인의 역사 (0) 2022.09.06