비트코인 코어(Bitcoin Core) 설치, Bitcoin.conf 설정

yebeen·2023년 3월 21일
0

Bitcoin Core ?

비트코인 코어(Bitcoin Core)는 비트코인 생태계에서 사용되는 오픈 소스 프로젝트 중 하나로, 비트코인 프로토콜을 개발하고 유지보수하는 역할을 합니다.

사토시 나카모토가 개발한 공식 지갑 클라이언트 소프트웨어이며 비트코인 거래를 처리하고, 블록체인의 유효성을 검증하며, 새로운 블록을 생성하는 등의 역할을 합니다.

AWS에 EC2 우분투 서버를 생성해주었고(t3.medium, 800GB), ssh -i를 통해서 접속했습니다.

설치

비트코인 코어를 설치합니다.
Download Bitcoin Core에서 파일 다운로드가 가능하며 첫 동기화는 시간이 오래걸릴 수 있다고하며 현재 최신버전인 22.0으로 설치했습니다.
Linux Instructions를 참고하여 GUI로 시작할 수 있습니다.

sudo -i
wget https://bitcoin.org/bin/bitcoin-core-22.0/bitcoin-22.0-x86_64-linux-gnu.tar.gz
tar -zxvf bitcoin-22.0-x86_64-linux-gnu.tar.gz
rm -rf bitcoin-22.0-x86_64-linux-gnu.tar.gz

파일을 다운받은 후 압축을 풀어준 뒤 삭제합니다.

install -m 0577 -o root -g root -t /usr/local/bin bitcoin-22.0/bin/*

명령을 루트로 실행하는데 사용하기위해 위의 명령을 추가하여 어느 경로에서나 실행할 수 있도록 합니다.

Bitcoin.conf

루트 경로에 비트코인 코어 설정 파일을 만들어줍니다.

mkdir ~/.bitcoin
vi ~/.bitcoin/bitcoin.conf

bitcoin-core-config-generator에서 값을 설정해줄 수도 있습니다.

# bitcoind를 실행했을 때 블록체인 데이터를 저장하는 공간(기본 위치:.bitcoin)
datadir=/root/.bitcoin
# Accept command line and JSON-RPC commands
server=1
rpcbind=0.0.0.0
# JSON-RPC 연결을 위한 유저 이름
rpcuser=<username>
# JSON-RPC 연결을 위한 비밀번호
rpcpassword=<password>
# JSON-RPC연결할 수 있는 ip를 서브넷과 합께 입렵하니다.
rpcallowip=0.0.0.0/0
# rpcport: JSON-RPC 연결을 위한 포트번호, default:8332, testnet: 18332, regtest:18443)
# port: 연결을 위한 포트입니다. default:8333, testnet:18333, regtest:18444)
# 1로 했을 때, 모든 거래의 인덱스를 유지하면서 블록체인 네트워크 상의 모든 장보를 내려받아 사용합니다.
txindex=1
# prune: 오래된 블록을 삭제하여 디스크 공간 요구치를 줄입니다.사용할 경우 txindex를 사용할 수 없습니다.
# addnode: 다른 노드를 추가합니다. 

외부에서 접속하여 rpc를 사용할 수 있도록 명령을 추가합니다.

노드를 추가할 때 아래 사이트를 참고할 수 있습니다.
https://otx.alienvault.com/
https://bitnodes.io/nodes

alias 설정

압축을 푼 폴더 경로/bin/명령어의 별칭을 추가합니다.

$ vi .bashrc

# btc alias
alias bitcoind="/path/bitcoin-22.0/bin/bitcoind"
alias bitcoin-cli="/path/bitcoin-22.0/bin/bitcoind/bitcoin-cli"

$ source .bashrc

명령어

  • 시작
bitcoind -daemon
  • 종료
bitcoin-cli stop

bitcoin-cli에서 명령어를 확인할 수 있습니다.


앞으로 개발할 때 생각해야 할 부분

  • 오래된 블록체인 데이터 자동삭제(기간을 얼마나 or 용량)
  • 현재 잔고: 사용 가능한 금액만 표시 or 미확정 금액을 포함한 총액을 표시
  • 트랜잭션 전송: 송금할 대상, 라벨, 거래액, 메시지
  • 입금 트랜잭션 확인 방식 및 HDWallet 관리, HotWallet 전송, ColdWallet 포션 관리
  • 비트코인 코어의 경우, seed phrase를 무작위로 생성하며 시드 문구 추출/백업 기능을 제공하지 않음
profile
🐣🐥

0개의 댓글