https://developer.bitcoin.org/reference/rpc/index.html
RPC API Reference — Bitcoin
This site aims to provide the docs you need to understand Bitcoin and start building Bitcoin-based applications.
developer.bitcoin.org
필자는 코딩의 ㅋ자도 모르는 문외한이다.
한글로 자세한 사용법을 적어놓으면 좋을 듯하여, 사용하는데 어려움을 겪었던 명령어들을 추려 정리해보았다.
필자와 같은 사람들에게 도움이 되었으면 하는 마음이다.
모든 명령어들은 bitcoin-cli 뒤에 사용된다. 자세한 사용법은 여기로.
decodescript "hexstring"
hexstring칸에는 ScriptPubKey*, ScriptSig** 같은 script 중 standard script의 hex값을 넣어준다.
OP_RETURN이나 custom script같이 standard script가 아닌 것은 decode하지 못하는 것에 유의한다.
사용예시***: bitcoin-cli decodescript 76a914fc916f213a3d7f1369313d5fa30f6168f9446a2d88ac
예시 명령어를 입력하면 다음과 같은 결과가 출력된다.
4번째 줄에 나온 address는 정상적인 p2pkh**** legacy***** 주소이다.
"segwit" 예하 "address": "bc1qljgk7gf684l3x6f38406xrmpdru5g63dhtg3x6" 는 최근 블록에만 적용되는 값이다.
decodescript명령어는 최근에 만들어진 것으로 script값을 넣으면 p2pk, p2pkh, p2wpkh(segwit방식이다), p2sh 등등을 가리지 않고 decode할 수 있게 설계되었다. 따라서 비록 트랜잭션이 p2pk방식으로 암호화되었더라도 segwit방식으로 해싱하여 무작위의 값을 생성해낸다. 해당 bc1qljgk7gf684l3x6f38406xrmpdru5g63dhtg3x6 값은 특별한 의미 없이 자동적으로 생성된 값이다.
*ScriptPubKey: 비트코인 전송내역을 블록에 기록하기 위해 암호화할 때 암호화 코드를 ScriptPubKey라고 한다.
** ScriptSig: 비트코인 전송을 위해서는 암호화된 비트코인 내역을 풀어내야 하는데 이때 복호화 코드가 ScriptSig.
***사용예시는 사토시 나카모토가 할 피니에게 처음으로 비트코인 p2p트랜잭션을 실행한 170번째 블록과 연관된 값이다.
우선 getblockhash명령어를 사용한다.
bitcoin-cli getblockhash 170
엔터를 치면 170번째 블록의 해시값을 얻어낼 수 있다.
얻어낸 값 00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee 을 넣어서
bitcoin-cli getblock 00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee 2
getblock을 실행해준다. 길게 출력되는 여러 값들 중 "value": 10.00000000 밑에 위치한 "desc"값을 deriveaddresses
명령어에 넣어준다.
bitcoin-cli deriveaddresses pk(04ae1a62fe09c5f51b13905f07f06b99a2f7159b2225f374cd378d71302fa28414e7aab37397f554a7df5f142c21c1b7303b8a0626f1baded5c72a704f7e6cd84c)#hsw9ejus
결과값으로 1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3 가 나온다. 이는 할 피니의 공개 주소이다.
마지막으로 getaddressinfo를 사용해서 할 피니의 공개주소 정보를 조회한다.
bitcoin-cli getaddressinfo 1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3
실행하면 사용예시에서 쓴 76a914fc916f213a3d7f1369313d5fa30f6168f9446a2d88ac 이
1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3 주소의 ScriptPubKey값이었다는 것을 알 수 있다.
****p2pkh: ScriptPubKey****의 한 종류다. 보안 관련 업그레이드를 통해 ScriptPubKey에 여러 가지 종류가 생기게 되었다.
더 자세한 것은 https://learnmeabitcoin.com/technical/transaction/output/scriptpubkey/를 참고하라.
*****legacy: 레거시, 유물. 이제는 잘 안쓰이는 과거의 유산을 뜻한다. 실제로 16년 이후엔 p2pkh 등 레거시 method가 아닌, witness 라는 새로운 방법이 도입되었다.
'취미 > 비트코인 풀노드 운영' 카테고리의 다른 글
블록체인에 숨겨져있는 가톨릭 기도문 (0) | 2024.05.29 |
---|---|
블록체인에 숨겨져있는 메시지들을 직접 찾아내보자! (0) | 2024.05.29 |
getrawtransaction-bitcoind RPC별 사용법 정리 (0) | 2024.05.26 |
초창기에 채굴된 비트코인들은 어디로 갔을까? 직접 확인해보자. (0) | 2024.05.26 |
deriveaddresses-bitcoind RPC별 사용법 정리 (0) | 2024.05.26 |