이 기사의 버전은 원래 Medium에 게시되었습니다.
최근 비트코인 채굴 분야에서 일어난 멋진 사건들 덕분에, 나는 나만의 작은 초당 400만 해시(MH/s) 솔로 채굴 작업을 설정하고 이를 개선할 수 있는 방법을 찾아보려는 영감을 받았다. 내가 개선할 수 있다고 생각한 몇 가지 측면은 연결성과 내 설정을 분산화 및 신뢰성 측면에서 가장 “순수한” 상태로 만드는 것과 관련이 있다.
그래서 나는 오늘날의 극도로 산업화된 채굴 세계에서 솔로 채굴을 어떻게 하는지에 대해 처음으로 파고들기 시작했다. 나는 지분 기반의 풀 채굴에는 관심이 없는데, 이는 솔로 채굴의 재미를 없애고 신뢰를 도입하기 때문이다. 나는 비트코인 네트워크에 순수한 해시 레이트 보안을 직접 기여하고 싶다.
참고: 나는 독자가 솔로 채굴이 믿을 수 없을 만큼 어렵고 블록을 생성할 가능성이 거의 없다는 것을 알고 있다고 가정하고 있다. 여기서 전부 공개하겠다…
몇 년 전, 솔로 채굴은 수천 명의 원격 개별 채굴자가 해시 레이트를 모으기 위해 설계된 전체 산업급 풀을 설정해야 했다. 나는 Eligius 코드나 GitHub의 다른 덜 알려진 풀 프로젝트를 사용하여 이를 설정하려고 했던 기억이 나며, 모든 개별 소프트웨어 구성 요소를 작동시키는 것이 어려웠다. 이를 알고 나는 솔로 채굴이 오늘날 더 쉬워졌다고 기대하지 않았다.
CK Pool은 자체 “솔로” 대응 풀을 가지고 있으며(이것이 존재한다는 것이 정말 마음에 든다), 이는 개별 채굴자가 블록을 생성할 때 98%의 블록 보상을 받고(2%의 풀 수수료를 지불) 다른 풀 참가자는 0%를 받는 일종의 의사 솔로 채굴 풀이다. 이는 모든 해시 레이트 기여자가 블록 보상의 일부를 받는 일반적인 풀 채굴과 대조된다. Solo CK Pool은 훌륭하지만 궁극적으로 풀을 사용하는 것은 순수한 솔로 채굴 설정에서 존재하지 말아야 할 신뢰를 도입한다. 또한, 내 채굴 설정을 위해 이를 사용하려고 시도한 결과 최신 비트코인 코어 버전과 가장 최근의 CK Pool 코드 간에 호환성 문제가 있다.
DuckDuckGo와 GitHub 문제를 샅샅이 뒤지다가, 나는 솔로 채굴을 위한 로컬 bitcoind와 통신할 수 있는 BFGMiner의 기능을 우연히 발견했다(!). BFGMiner는 일반적으로 GPU 또는 ASIC 하드웨어와의 인터페이스에 사용되었기 때문에 이 기능이 존재하는지 전혀 몰랐다.
참고: CGMiner도 이 기능을 가지고 있다. 고마워, Con!
그래서, 이 새로운 BFGMiner 지식을 통해 우리는 설정하기 어려운 풀 소프트웨어나 신뢰할 수 있는 풀을 없애고 BFGMiner와 비트코인 코어 전체 노드에만 의존할 수 있다. 이는 나의 순수한 솔로 채굴 구성에 적합하다.
이제 연결성 개선이 남았다. 이를 강화하는 방법은 내 ISP가 작동하는 동안 내 노드가 사용하는 피어 세트를 보완하기 위해 Blockstream Satellite를 사용하고, 내 ISP가 불안정해져서 연결이 끊길 경우를 대비한 백업으로 사용하는 것이다. 이렇게 하면 내 채굴 하드웨어는 어떤 블록이 최신 블록인지 알 수 있어 낭비되는 노력이 없다.
그러나 블록 이그레스에 대한 연구 영역이 있다. 새로 발견된 블록을 방송하는 데 사용할 수 있는 Starlink나 Iridium과 같은 옵션이 존재한다. Starlink는 실제로 솔로 채굴을 할 가능성이 낮고 블록 자체가 상대적으로 작기 때문에 비용 면에서 과도할 수 있다. 하지만 좋은 옵션이다. SMS는 내가 향후 블로그 게시물에서 탐구할 또 다른 옵션이다.
보스처럼 솔로 채굴하는 방법
가이드는 Ubuntu 20.04를 가정한다. 경고: 일부 컴파일이 필요하다.
사실 지금은 정말 쉽다. 더 이상 전체 채굴 풀을 설정할 필요가 없다. BFGMiner가 우리가 필요한 모든 것을 처리할 수 있다. 그러니 모든 것을 설정해 보자.
Blockstream Satellite 설정하기
Blockstream의 훌륭한 가이드를 따라 위성 안테나를 조립하고 정렬하며 지구 동기 위성을 통해 비트코인 데이터를 수신하기 위해 필요한 모든 소프트웨어를 설치하라.
blocksat-cli와 Blockstream이 위성 연결을 위해 유지 관리하는 패치된 비트코인 코어 노드인 Bitcoin Satellite를 설치하라.
BFGMiner 설정하기
BFGMiner는 로컬 bitcoind를 사용하여 솔로 채굴을 지원하는 GPU/ASIC 채굴 소프트웨어이다!
이 소프트웨어는 우리의 채굴 하드웨어를 로컬 위성 비트코인 노드에 연결할 것이다.
$ git clone https://github.com/luke-jr/bfgminer && cd bfgminer
Ubuntu의 경우, 필요한 종속성을 설치한 후 정상적으로 빌드하면 된다.
$ sudo apt install automake autoconf libtool pkg-config libcurl4-gnutls-dev libjansson-dev uthash-dev
그런 다음 빌드하라.
$ ./autogen.sh
$ ./configure
$ make
비트코인 노드가 동기화되고 위성을 통해 데이터를 수신하고 있다면(디버그 로그가 성공적으로 수신될 경우 비트레이트 데이터를 출력해야 함), BFGMiner를 로컬 노드로 지정하라. bitcoin.conf에서 server=1 및 rpcuser=user rpcpassword=pass를 설정하는 것을 잊지 마라.
$ ./bfgminer -T -D -P -o ‘127.0.0.1:8332’ -O user:pass –stratum-port 3334 –generate-to <your address>
이 명령은 BFGMiner에게 노드에서 데이터를 가져오고 stratum 채굴자를 위해 어떤 포트를 수신할지 알려준다(기본적으로 모든 현대 ASIC는 stratum을 사용한다).
BFGminer가 실행되면, ASIC 하드웨어를 비트코인 노드와 BFGMiner가 실행되는 IP 주소(포트 3334)로 지정하면 된다. 일반 채굴 풀인 Slush Pool 대신에 말이다. 그러면 BFGminer 콘솔 출력에서 채굴 하드웨어가 제출하는 낮은 난이도의 공유를 보기 시작할 것이다. 그게 전부다! 당신은 보스처럼 솔로 채굴을 하고 있으며, 지구 동기 위성을 통해 백업 블록체인 데이터 소스를 가지고 있다. 얼마나 멋진가? 채굴에 행운을 빈다!
Blockstream Satellite에 대해 더 알아보려면 여기에서 확인하라:
- https://blockstream.com/satellite/
- https://github.com/blockstream/satellite
- https://github.com/blockstream/bitcoinsatellite
이 글은 Grubles의 게스트 포스트이다. 표현된 의견은 전적으로 그들의 것이며 BTC Inc 또는 Bitcoin Magazine의 의견을 반드시 반영하지는 않는다.