비트코인 네트워크는 실제 자산이 이동하는 Mainnet과 테스트를 위해 사용되는 testnet, signet, regtest(로컬) 등이 있다.
테스트넷은 누구나 채굴할 수 있고 변동적이다. signet은 서명자들만 블록을 생성할 수 있고 블록생성이 일관되고 예측가능하다.

실습을 위해 bitcoin core를 사용했다.
windows 환경으로 먼저 설치해보았으나, 대부분의 자료가 cli로 다루는것 같아서 wsl ubuntu 24.04에다가 새로 설치했다.
설치과정
https://bitcoincore.org/en/download/
Download - Bitcoin
Download - Bitcoin
bitcoincore.org

압축 풀고 /usr/local/bin에 폴더를 옮겼다.
bitcoind를 그냥 실행하면 메인넷의 데이터 800GB와 동기화를 진행하게 되는데,
학습용이니 regtest에서 진행하였다.

서버 실행
bitcoind -regtest -daemon
지갑 만들기 (이름은 mytest로 설정함)
bitcoin-cli -regtest createwallet "mytest"
새 주소 생성하고 블록 101개 생성
ADDR=$(bitcoin-cli -regtest getnewaddress)
bitcoin-cli -regtest generatetoaddress 101 $ADDR
잔액 확인
bitcoin-cli -regtest getbalance


101개를 생성했는데 왜 잔액은 50일까?
비트코인은 채굴 후 100번의 확인이 더해져야 사용가능해진다고한다.
getbalances 명령어로 확인해보면 trusted: 50, immature:5000인 것을 확인할 수 있다.
다른 사람들과의 거래가 이뤄지는 실제 네트워크와 유사한 환경을 체험해보기 위해 testnet4에도 지갑을 만들어보았다.
서버 실행
bitcoind -testnet4 -daemon
지갑 만들기
bitcoin-cli -testnet4 createwallet "test4_wallet"
채굴 시도를 위해 주소 가져오기
ADDR4=$(bitcoin-cli -testnet4 getnewaddress)
얻은 주소: tb1qfxejjamagq5lvs0pktt9xwhva5atzcr7xkd7h4

bitcoin-cli -testnet4 generatetoaddress 1 $ADDR4
이렇게 입력하면 채굴을 시도할 수 있지만 쓰레드로 계속 돌려도 1번 성공하는 것은 쉽지 않았다...
그래서 faucet에서 코인을 받아오는 방법을 택했다.
https://coinfaucet.eu/en/btc-testnet4/

이게 trusted로 바뀌면 다시 faucet 기부 주소나 다른 testnet4 지갑에 전송 테스트를 해볼 수 있겠다.

지갑의 키는 ~/.bitcoin/regtest/wallets/mytest/wallet.dat 여기에 들어있다.
bitcoin-cli encryptwallet 을 사용하면 지갑의 암호화를 할 수 있다. 지금 이 지갑은 암호화가 되어있지 않아서 내용이 그대로 보이는 상태이다.
댓글