Matematyka miningu w 2026 roku jest bezwzględna. Hashrate sieci Bitcoin przebił historyczny sufit na poziomie 1 eksahasha (1024 EH/s). Trudność kręci się w okolicach 139 bilionów. Szansa na trafienie bloku z jednej domowej koparki jest bliska zeru. Mimo to bloki wpadają. Regularnie.
Mining to proces Poissona, czyli czysty przypadek. Sieć nie pamięta poprzednich próby. Każdy pojedynczy hash ma dokładnie taką samą szansę na wygraną. Nie ważne, czy generuje go gigantyczne serwerownia w Teksasie, czy stary asic w garażu. To loteria, ale rządząca się twardą matematyką.
Fuks roku: Solówki, które wpadły w 2026
Teoria teorią, ale liczą się fakty. Ten rok przyniósł już serię kosmicznych upstreaków u solo minerów.
- Strzał z wynajmu (Luty 2026): Anonimowy górnik wrzucił zaledwie 119 000 satoshi (jakieś 75 USD) na NiceHash. Wynajął moc 1 PH/s i skierował hash na solo pool. Efekt? Blok 938 092 i ponad 200 000 USD na czysto. Inwestycja zwróciła się tysiąckrotnie. Czysta fluktuacja statystyczna.
- Akcja „Stary klamot” (Kwiecień 2026): Górnik działający solo z mocą zaledwie 70 TH/s wyciągnął blok 944 306 przez eusolo.ckpool.org. To osiągi jednego starego Antminera S17+, wypuszczonego jeszcze w 2019 roku. Sprzęt działał z prawdopodobieństwem 1 do 100 000 na dobę. Matematyczna nadzieja wynosiła 300 lat, a chłop zamknął blok w kilka miesięcy.
- Strzał na 230 TH/s (Początek kwietnia 2026): Blok 943 411 wpadł solówkarzowi na Antminerze S21. Szansa wynosiła 1 do 28 000 dziennie. Zgarnął 3.139 BTC wliczając opłaty z mempoola.
W ciągu ostatnich 12 miesięcy solo minerzy wyciągnęli z sieci ponad 20 bloków. Statystyki Benneta pokazują jasno: niezależni zgarniają nagrodę średnio co 18 dni.
Analiza strategii solo miningu
| Strategia | Koszty początkowe (CAPEX) | Koszty operacyjne (OPEX) | Opóźnienie (Latency) | Autonomia |
|---|---|---|---|---|
| Własny węzeł + ASIC | Wysokie (zakup sprzętu). | Wysokie (prąd, chłodzenie). | Minimalne (<1-5 ms). | Pełna. Sam składasz blok. |
| Solo poole (Solo CKPool) | Średnie (własny ASIC). | Wysokie (rachunek za prąd). | Średnie (zależy od ringu). | Częściowa. Pool bierze 1% prowizji za infrę. |
| Wynajem mocy (NiceHash) | Zero. | Zmienne (koszt zleceń). | Wysokie (stratum-proxy broker). | Zero. Czysty handel hashrate'em. |
Infrastruktura solo minera: Stawianie mini-węzła
Jeśli nie chcesz karmić obcych pooli i zależy ci na pełnej niezależności, musisz postawić własny węzeł. Twój prywatny serwer Stratum.
Kupujemy mini-PC na Intel N100 albo jakiś używany serwer. Kluczowa sprawa to szybki dysk NVMe SSD o pojemności minimum 2 TB. Na zwykłym HDD synchronizacja padnie przez timeouty I/O. Sieć nie będzie czekać na wolny sprzęt.
Krok 1. Konfiguracja bitcoin.conf
Plik bitcoin.conf musi być ustawiony idealnie. Błędy w configu oznaczają wysyp odrzuconych share'ów (stale shares).
# Uruchom jako demon
daemon=1
# Włącz serwer RPC dla żądań z zewnątrz
server=1
# Ram na cache łańcucha (minimum 4 GB)
dbcache=4096
# Pełny indeks transakcji, inaczej getblocktemplate się wyłoży
txindex=1
# Pozwól na połączenia tylko z localhosta lub proxy
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
# Autoryzacja, bez prostych haseł
rpcuser=core_operator
rpcpassword=X9_f28_Klsda__m192Krok 2. Budowanie Stratum V2 proxy w Ruście
Koparki nie gadają bezpośrednio z komendami RPC Bitcoin Core. Potrzebują protokołu Stratum. W 2026 roku siedzenie na starym Stratum V1 to strzał w kolano. Marnuje pasmo i podbija ping. Kompilujemy oficjalne proxy w Ruście.
Komendy do zbudowania i odpalenia w terminalu Linuxa:
# Aktualizacja pakietów
sudo apt update && sudo apt upgrade -y
# Instalacja kompilatora Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
# Pobranie repo proxy
git clone https://github.com/stratum-mining/stratum-v2-proxy.git
cd stratum-v2-proxy
# Kompilacja wersji produkcyjnej z optymalizacją
cargo build --releaseTworzymy plik konfiguracyjny config.toml w katalogu z binarką:
[node]
rpc_url = "http://127.0.0.1:8332"
rpc_user = "core_operator"
rpc_pass = "X9_f28_Klsda__m192"
[proxy]
listen_address = "0.0.0.0:3333"
# Odświeżanie szablonu bloku w ms. Im mniej, tym lepiej.
block_poll_interval_ms = 200Odpalamy demona: ./target/release/stratum-v2-proxy --config config.toml. Teraz twój ASIC spina się bezpośrednio z portem 3333.
Skrypt do automatyzacji i monitoringu węzła
Górnik musi kontrolować stan węzła w trybie live. Poniżej wrzucam gotowy, produkcyjny skrypt w Pythonie 3. Monitoruje dostępność RPC, ping do blockchaina oraz opóźnienia metody getblocktemplate.
import http.client
import json
import time
import sys
class NodeMonitor:
def __init__(self, host, port, user, passwd):
self.host = host
self.port = port
# Kodowanie danych logowania do Basic Auth
import base64
auth_str = f"{user}:{passwd}"
self.auth_header = base64.b64encode(auth_str.encode()).decode()
def send_rpc(self, method, params=[]):
payload = json.dumps({"jsonrpc": "2.0", "id": "monitor", "method": method, "params": params})
headers = {"Authorization": f"Basic {self.auth_header}", "Content-Type": "application/json"}
start_time = time.perf_counter()
try:
conn = http.client.HTTPConnection(self.host, self.port, timeout=3)
conn.request("POST", "/", payload, headers)
res = conn.getresponse()
data = res.read()
conn.close()
latency = (time.perf_counter() - start_time) * 1000
return json.loads(data.decode()), latency
except Exception:
return None, 0
def check_health(self):
# Sprawdzenie ogólnego stanu
blockchain_info, _ = self.send_rpc("getblockchaininfo")
if not blockchain_info or "result" not in blockchain_info:
print("CRITICAL: Węzeł leży lub RPC jest niedostępne.")
sys.exit(1)
# Pomiar czasu generowania szablonu bloku. Kluczowe dla solo.
template, latency = self.send_rpc("getblocktemplate", [{"rules": ["segwit"]}])
if not template or "result" not in template:
print("WARNING: Węzeł nie zwraca szablonu bloku! Koparki zaczną sypać stale shares.")
return
blocks = blockchain_info["result"]["blocks"]
headers = blockchain_info["result"]["headers"]
print(f"[OK] Wysokość: {blocks}/{headers} | Latency GBT: {latency:.2f}ms")
# Opóźnienie powyżej 100ms to znak, że dysk nie wyrabia
if latency > 100:
print("ALERT: Opóźnienie getblocktemplate krytyczne! Zbyt wolny dysk.")
if __name__ == "__main__":
# Parametry połączenia lokalnego
monitor = NodeMonitor("127.0.0.1", 8332, "core_operator", "X9_f28_Klsda__m192")
# Pętla sprawdzania co 10 sekund
while True:
monitor.check_health()
time.sleep(10)Skrypt napisany bez zewnętrznych bibliotek, na czystym Pythonie. Nie wyłoży się przez uwalone zależności.
Anatomia strategii na NiceHash: Kupowanie terahashy
Jeśli wizja trzymania w domu huczącego grzejnika o mocy 3,5 kW niezbyt Ci się uśmiecha, jest alternatywa. Wynajem. NiceHash to największy broker hashrejtu. Nie kupujesz tu sprzętu. Płacisz za cudzą moc obliczeniową na określony czas.
Zasada działania jest prosta. Górnicy z całego świata wynajmują swoje asiki platformie NiceHash. Wchodzisz na giełdę, składasz zlecenie i ustawiasz cenę, jaką chcesz zapłacić za pakiet mocy. Wykupiony hashrejt kierujesz prosto na pool wspierający kopanie w pojedynkę.
Tutaj jednak kryje się główna pułapka na nowicjuszy. Kupienie losowej mocy i wrzucenie jej na zwykły pool to prosty sposób na wyczyszczenie depozytu. Cała sztuka polega na trafieniu bloku zanim koszty wynajmu zjedzą Twoje zlecenie.
**Krok po kroku: jak ustawić order pod polowanie na blok:**
- Wybór poola. Rejestrujesz się na solo poolu (np. Solo CKPool lub Poolin Solo). Lokalny węzeł nie będzie potrzebny. Pool bierze na siebie całą infrastrukturę, a w razie sukcesu zgarnia 1%. Dostajesz własny adres stratum w formacie
stratum+tcp://solo.ckpool.org:3333i wpisujesz tam swój adres BTC jako nazwę workera. - Wybór algorytmu. Na NiceHash wybierasz algorytm SHA-256 (dla Bitcoina).
- Typ zlecenia. Masz dwie opcje. Standard (tańszy, ale moc rośnie powoli) oraz Fixed (droższy, ale natychmiast dostajesz potężną ścianę hashrejtu). Profesjonaliści stawiają na krótkie ordery typu Fixed. Wykupujesz na przykład 10 PH/s na 3 godziny. Generuje to potężne uderzenie obliczeniowe i drastycznie zwiększa szanse na trafienie bloku w tym konkretnym oknie czasowym.
- Monitoring. Pilnujesz panelu poola. Jeśli zlecenie wygasło, a bloku brak – księgujesz stratę. Kasa poszła do ludzi wynajmujących asiki. Kupiłeś kupon na loterię, który tym razem nie wygrał.
Optymalizacja opóźnień sieciowych: Mikrosekundy warte tysiące dolarów
Wróćmy do opcji z własnym sprzętem. Powiedzmy, że masz topowego ASIC-a i postawiłeś zsynchronizowany węzeł. Jest jednak jeden parametr, który ignoruje 99% amatorów: Orphan Block Rate (odsetek osieroconych bloków).
Co się dzieje, gdy Twój asic znajdzie rozwiązanie? Proxy przekazuje je do węzła, a ten zaczyna rozsyłać blok do swoich peerów (sąsiednich węzłów w sieci). Dokładnie w tej samej milisekundzie gdzieś w serwerowni w Chinach inny ASIC znajduje inne rozwiązanie dla tego samego bloku. Zaczyna się wyścig. Ten, czyj blok rozejdzie się po sieci szybciej i zostanie zatwierdzony przez większość węzłów, zgarnia 3,125 BTC oraz prowizje. Jeśli Twój węzeł ma laga, blok zostanie "sierotą". Zobaczysz go w logach, ucieszysz się, ale sieć go odrzuci. Kasa trafi do konkurencji.
Aby tego uniknąć, węzeł musi mieć maksymalną łączność. Zapomnij o domyślnych ustawieniach sieciowych.
Ręczne ustawianie peerów pod szybką propagację:
Wprowadź do pliku bitcoin.conf adresy IP największych kopalń jako stałe węzły (addnode). Musisz pchać znaleziony blok bezpośrednio do nich, omijając pośredników.
# Wymuszamy połączenie z węzłami dużych pooli, żeby uciąć opóźnienia
addnode=172.65.216.111:8333 # Przykładowe IP węzła dużego poola (Antpool/F2Pool)
addnode=104.20.55.90:8333 # Węzeł agregatora transakcji
# Zwiększamy limit maksymalnych połączeń wychodzących
maxoutboundconnections=64Porządny ping do kluczowych węzłów sieci Bitcoin powinien wynosić poniżej 20–30 milisekund. Jeśli dostawca internetu daje 120 ms do Europy czy USA, kopanie solo na własnym węźle mija się z celem. Znalezione bloki zbyt często będą spóźniać się na imprezę.
Analiza kosztów: Loteria czy topienie kasy?
Policzmy opłacalność domowego kopania solo w 2026 roku na przykładzie jednego Antminera S21 (200 TH/s), przy założeniu gry długodystansowej zamiast wynajmu mocy.
- Pobór prądu: 3500 W/h.
- Na dobę: 84 kWh.
- Miesięcznie: 2520 kWh.
Przemnóż to przez swoje stawki za prąd. Przy cenie rzędu 0,06 USD za kWh, miesięcznie płacisz około 150 USD za samą elektryczność. W rok robi się z tego 1800 USD, a w trzy lata – 5400 USD. Tymczasem matematyczny czas oczekiwania na trafienie bloku przy takiej mocy to około 7–9 lat.
Odpalając jednego asica solo, podpisujesz cyrograf na regularny podatek dla zakładu energetycznego z mglistą perspektywą zgarnięcia głównej wygranej. Z biznesowego punktu widzenia to czysty absurd. Patrząc jednak przez pryzmat rachunku prawdopodobieństwa – każdy dzień pracy daje mikroskopijną, ale realną szansę na zmianę życia. To inwestycja w czyste szczęście.