취미/비트코인 풀노드 운영

풀노드? RPC? 생각보다 소소하게 해볼 수 있는게 많구나!

저도잘은몰라요 2024. 5. 26. 09:18
반응형

 

다양한 RPC들과 그 설명이 들어있는 영문 웹사이트

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 Core 프로그램을 설치하는 방법을 알아보았다. 

 

 

설치해서 이리저리 보면 알겠지만, 위 Bitcoin Core 프로그램 GUI*는 지갑으로서의 기능만 충실히 수행할 수 있다.

노드 운영은 프로그램이 이미 알아서 척척 해주고 있기 때문에 더더욱 사용자는 할 일이 없다. 

...

그럼 이게 끝인 걸까...?

 

 

*GUI: Graphical User Interface, 명령어를 쳐서 응답을 이끌어내는 프로그램이 아닌, 버튼이나 입력창 따위로 구성되어

쉽게 원하는 결과를 이끌어낼 수 있는 프로그램 인터페이스를 GUI라 한다. 우리가 쓰는 대부분 일상 프로그램이 이것.


 

 

엣..

 

 

그럼 그렇지!! 뭔가가 더 있는게 틀림없다!

콘솔에서 뭔가를 입력할 수 있게 되어있다. 콘솔이 아마 CMD 뭐 그런 거였지..?

그럼 윈도우 CMD로도 뭘 이것저것 입력해서 Bitcoin Core 프로그램을 멋대로 조종해볼 수 있겠지..?


그렇다. 그걸 가능한게 하는 것이 저번 글에서 말했던 RPC이다. 

이 RPC를 제대로 쓰기 위해서라면 저 콘솔 창에서 이것저것 해볼 게 아니라, 본격적으로 CMD 창을 켜야 한다. 

코딩을 전혀 모르는 필자조차도 할 수 있는 쉬운 일이다!

 

아, 대신 CMD로 Bitcoin Core 프로그램을 실행하고 노드 운영을 하려면 아쉽게도 GUI창은 닫아야 한다. 

한 컴퓨터에서 같은 프로그램을 동시 실행할 수는 없기 때문이다.

 

 

안녕~~~

 

이제 파일 탐색기에서 C:\Program Files\Bitcoin\daemon 위치로 이동해주자. 

비트코인 코어 프로그램 설치경로를 다른 곳으로 했다면 그 곳으로 이동하면 된다.

 

 

이게 파일탐색기이다. 빨간 네모로 표시된 곳을 눌러준 후 파일 경로인

C:\Program Files\Bitcoin\daemon

위 경로를 붙여넣기하면 매우 빠르게 설치위치로 이동할 수 있을 것이다. 

 

daemon 폴더로 이동했다면 요상한 파일들이 있는 게 보인다. 

그중에서 bitcoind.exe를 더블클릭해주자. 

 

 

뭐가 주루루룩 올라갈텐데 이게 아까 작별인사를 했던 GUI의 맨얼굴이라고 할 수 있겠다. 

달리 말하자면 이게 진짜 비트코인 풀노드 프로그램이라고나 할까? 

bitcoin qt 혹은 bitcoind라고 주로 부른다.

여따 대고는 뭘 눌러도 먹히지 않기 때문에 CMD창을 새로 하나 켜주자. 

 

 

짠! 이제 cd 명령어(Change Directory)를 통해서 아까 갔던 daemon 폴더로 이동해주자. 

cd C:\Program Files\Bitcoin\daemon 입력 후 엔터..

RPC를 사용하려면 daemon폴더의 bitcoin-cli.exe를 호출해서 RPC명령어를 타이핑하면 된다. 

하는 방법은 그냥

bitcoin-cli rpc명령어 

이렇게 입력하고 엔터키를 치면 된다. 참 별거없죠...?

 

rpc명령어의 예시는 getblockhash으로 연습해보자. 

bitcoin-cli getblockhash 0 이라 입력할 경우 블록 높이*가 0인 블록의 해시**값을 토출해줄 것이다. 

참고로, pruning모드로 설치했다면 비트코인 블록 데이터를 검증후 전부 컴퓨터에서 지워버리므로

이와 같은 연습은 불가능하다.

 

 

와! 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f 이라는 값이 나왔다. 

이건 비트코인 프로그램을 만든 사람이 처음 프로그램을 구동시키면서 채굴한 첫번째 블록의 해시값이다.

Genesis block 이라고 보통 부른다. 

이 블록에 대해서 좀더 자세히 알아보기 위해서 getblock RPC를 사용해보자. 

아, 다양한 RPC들과 그 설명은 https://developer.bitcoin.org/reference/rpc/index.html에 정리되어 있다. 

 

getblock 명령어는

bitcoin-cli getblock 원하는블록의해시값

 

과 같이 사용한다.

제네시스블록의 정보를 얻고 싶다면

bitcoin-cli getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f   

 

이렇게 복사-붙여넣기 하면 될 것이다.

 

 

뭔가 잡다한 정보들이 많이 나왔지만, 아직 뭔가 부족해보인다. 

더 많은 정보를 얻고 싶다면 

 

bitcoin-cli getblock 원하는블록의해시값 2

처럼 끝에 2를 붙여주자. 

 

bitcoin-cli getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f  2

 

 

추가로 이와 같은 긴 값들이 마구마구 나왔다. 와 신기하다~~~~~~~

글이 길어졌으니, 이 값들에 대해서 다뤄보는 것은 다음에.

 

 

*블록 높이: 블록이 만들어진 순서

**해시: 비트코인에서는 SHA-256알고리즘으로 암호화한 결과값을 해시라고 부른다.

반응형