5줄 요약
비트코인 노드를 운영하면 외부 도움없이 트랜젝션 발행. 확인 등 완전한 탈 중앙화가 가능합니다
비트코인 노드는 HDD로도 운영가능하나 chainstate(10기가)와 index(60기가)폴더는 SSD에서 운영하는게 좋습니다.
지갑을 운영하려면 electrum 서버(UTXO때문에 실사용으로 추가 인덱스필요)가 필요한데 인덱스 크기가 클수록 성능이 좋습니다.
비트코인 풀노드와 일렉트럼서버를 운영하면 코인 익스플로러나 멤풀 확인 서비스를 외부 도움 없이 사용 할 수 있습니다.
각 서비스 직접설치가 힘들거 같은데 써보고 싶으시면 남는 오래된 PC에 https://umbrel.com/umbrelos 설치해 보세요
---------------------------------------------------------------------------------------------------------------------
기존에 움브렐을 이용해 비트코인 노드를 운영하고 있었습니다. - 설치와 관리의 편함
하드웨어 지갑에서 트랜젝션 만들때 개인 비트코인 풀노드를 이용해 직접 브로드캐스팅 하기도 하고.
라이트닝 노드를 운영도 해보고 - 지금은 접었습니다.
비트코인 멤풀 데이터를 활용하기도 하고 했었는데.
얼마전에 움브렐이 0.54에서 1.0으로 업그레이드 된다길래 기다리다가 계속 지연이 되길래
직접 노드 설치를 해보자 싶어서 몇가지 테스트를 했는데 기록을 남길 겸 써봅니다.
사실 일반적인용도로 움브렐 쓰는건 문제가 없었는데. 멤풀에서 트랜젝션 조회시에 검색불가능 메시지가 나오는게 불편해서 업그레이드 차원에서 진행해봤습니다.
운영하드웨어 : J4105 + 12GB RAM + 1TB HDD + ( 128GB + 256GB )SSD or 512GB SSD
운용서비스 : 비트코인 풀노드 + 일렉스럼서버 + rpc 익스플로러 + 멤풀
1. 비트코인 풀노드 ( 24.5월 기준 700기가)
비트코인 노드자체는 저장하는 블럭데이터를 랜덤엑세스 하지 않아 사실 HDD로 운영이 가능합니다
다만 동기화시 약 10기가 조금 넘는 chainstate폴더를 SSD에 위치 시키면 성능향상이 많이 됩니다.
60기가 정도 되는 index 폴더도 SSD에 위치하면 성능향상이 있습니다.
1TB SSD는 1000GiB로 대략 930-950GB정도가 사용가능한데. 최소 OS 제외하면 대략 900기가 사용 가능합니다.
뒤에서 이야기하겠지만 electrum 서버를 위해 인덱스 저장공간이 필요한데 최소 30에서 150기가가 필요합니다.
900기가에서 현재 비트코인 블럭 사이즈 700기가를 빼고 인덱스 150기가를 빼면 남는 공간이 50기가 밖에 되지 않아
장기운영이 힘들것으로 예상되어 SSD+HDD를 이용하는 하이브리드 구성으로 결정했씁니다.
비트코인 풀노드 데이터중 렌덤엑세스 하지 않는 블럭데이터 630기가는 HDD로 옮기고 ( 큰 영향을 미치지 않습니다. )
SSD사용시 성능향상이 큰 인덱스등의 나머지 데이터는 SSD로 구성했습니다.
블럭데이터는 일년에 약 100기가 내외로 증가될것으로 예상하고.
현재 630GB 남은 공간 300GB 이라 최소 3년은 저장공간 부족없이 쓸수 있을것 같습니다.
2. 일렉트럼 서버
하드웨어 월렛과 병행하여 멀티시그니쳐 월렛 기능을 쓰거나 하려면 외부 지갑을 사용해야 하는데
일렉트럼이나 스패로우 월렛을 사용하고 있습니다. 해당 지갑은 일렉트럼 서비스를 연결해 사용해야 하는데.
비트코인은 이더리움과 달리 어카운트 방식이 아니라 UTXO라는 방식으로 동작하는데
지갑의 잔액을 확인하려면 연결된 트랜젝션을 다 모아서 확인해야 합니다.
이경우 전체 블럭데이터를 확인하려면 시간이 많이 걸리니 미리 인덱스를 만들어 사용해야 하는 되는데
(비트코인 코어 지갑의 경우 새 시스템에 키 임포트하고 잔액확인 하려면 블럭 다 동기화 하고 인덱싱 해야 해서 몇시간씩 걸리죠 )
일렉트럼 표준을 따르는 서비스로 아래와 같은 서버가 있습니다.
EPS - 개인용, 지갑을 변경할때 마다 인덱스 재구성
ElectRS - 현재 45GB ( 2년전 32GB) (인덱스중 70GB까지 증가 )
Electrumx - 현재 100GB ( 2년전 75GB )
fulcrum - 현재 150GB ( 2년전 100GB )
서버 성능비교는 2022년에 스패로우 월렛 팀이 진행한게 있어 링크 첨부합니다.
https://www.sparrowwallet.com/docs/server-performance.html
개인지갑용으로 사용하면 ElectRS도 충분하나. 멤풀이나 익스플로러에서 트랜젝션 수가 많은 지갑주소를 조회하면 에러가 나거나 시간이 너무 많이 걸려서 elctrumx도 시도해 보았으나 큰 성능변화가 느껴지지 않아 결국 fulcrum으로 업그레이드 해서 사용중입니다. 트랜젝션 검색때 정말 빠릅니다.
ElectRS로 트랜젝션 많은 주소 검색하면 1분쯤 로딩되다가 이런 메시지가 나옵니다.
그런데 펄크럼으로 가고나서는 정말 큰 지갑 아니고는 잘 나오네요. 다만 이녀석도 누적 트랜젝션이 몇만개 쯤 되면 제대로 동작하지 않습니다.
제약없이 상업적인 목적의 또는 최고의 성능을 보려면 esplora로 가야하는데 인덱스 데이터 사이즈가 블럭사이즈의 2배에 달해서..
이건 나중에 필요해지면 한번 써볼까 합니다.
3. 익스플로러 ( 위 비트코인 노드와 일렉트럼 서버 설치시 간단히 설치 가능 )
외부 서비스 없이 비트코인 네트워크 상황이 실시간으로 파악이 가능합니다.
4. 멤풀 ( 위 비트코인 노드와 일렉트럼 서버 설치후 DB세팅해서 운영가능 )
- 현재 메모리풀 상황이나 내 트렌젝션이 어디 있는지 외부 도움없이 확인가능
- 새 트랜젝션 만들때 수수료 확인용으로도 사용가능하고.
- 기본적으로 2주마다 없어지는 낮은수수료의 트랜젝션 유지도 가능
저도 노드 운영해 봐야지....생각만 몇년째 하는 중..ㅠㅠ