Pełny węzeł (full node)

Większość użytkowników Bitcoina używa portfeli SPV (skrót od Simplified Payment Verification). Zdobyły ogromną popularność dzięki temu, że nie wymagają trzymania całego blockchaina na dysku (czyli obecnie prawie stu gigabajtów danych) i można taki portfel zmieścić na telefonie komórkowym. Można go ściągnąć i zacząć używać w ciągu kilku minut w przeciwieństwie do klienta Bitcoin Core, który wymaga najpierw ściągnięcia wszystkich bloków z transakcjami od początku istnienia Bitcoina – a to może potrwać nawet kilka dni… To nie jedyna wada pełnego klienta. Drugą jest generowanie sporego ruchu na naszym łączu internetowym – normalnym zjawiskiem jest upload kilkudziesięciu gigabajtów w ciągu jednej doby. Skoro można więc używać lekkich portfeli to po co ktokolwiek miałby się trudzić i poświęcać swój dysk, a także zapychać łącze internetowe, aby uruchamiać pełnego klienta? Odpowiedź jest krótka – sieć Bitcoin nie może bez niego istnieć.

Rola pełnego węzła.

Pełny węzeł weryfikuje wszystkie nowe transakcje i bloki transakcji pojawiające się w sieci. Muszą one spełniać szereg warunków, aby można je było uznać za poprawne i przekazać dalej innym węzłom.

Najważniejsze reguły dotyczące bitcoinów są następujące:

  • nie mogą się pojawić znikąd (musi być znana ich historia od momentu wykopania)
  • nie można ich wydać bez posiadania klucza prywatnego
  • nie można wydać dwa razy tych samych monet

Pełne węzły a mining.

Czasem może wydawać się, że to minerzy kontrolują Bitcoina. To oni wykopują nowe monety i muszą poprzeć zmiany w protokole poprzez głosowanie swoją mocą obliczeniową. Nowy nadchodzący soft fork Segregated Witness również będzie musiał być poparty przez 95% mocy obliczeniowej (hash rate) aby został uaktywniony. Minerzy nie mogą jednak łamać reguł, na których oparty jest Bitcoin. Nawet gdyby wszystkie kopalnie zmówiły się i zaczęły wysyłać nieprawidłowe transakcje, a następnie dołączałyby je do wykopanych przez siebie bloków to wszystkie pozostałe węzły odrzuciłyby te bloki. Innymi słowy jeśli korzystasz z pełnego klienta Bitcoin Core i otrzymujesz na nim transakcję to możesz być pewien, że jest uczciwa. Użytkownicy lekkich portfeli nie mogą być tego pewni na 100% i jeśli mają wątpliwości powinni poczekać na więcej potwierdzeń niż w przypadku pełnego klienta. Lekki portfel łączy się z pełnym węzłem lub centralnym serwerem aby przeprowadzać transakcje lub sprawdzić czy na jeden z jego adresów wpłynęły bitcoiny. Używa on uproszczonej metody weryfikacji przychodzących transakcji, bazującej na nagłówkach bloków, zamiast na pełnej historii transakcji. Ma to kilka słabości. Problem może nastąpić np. wtedy, gdy firma automatycznie realizowałaby zamówienia w oparciu o przychodzące transakcje, dlatego prowadzącym biznes zaleca się poleganie wyłącznie na własnym pełnym węźle. Minerzy muszą używać pełnego węzła do kopania monet, ale dzięki temu że w sieci istnieje tysiące węzłów należących do zwykłych użytkowników nie musimy bać się, że minerzy omijają reguły i oszukują. Całkowity zanik pełnych węzłów w sieci oznaczałby, że minerzy dyktują reguły, których nikt nie może zweryfikować i Bitcoin przestałby być walutą zdecentralizowaną. Minerzy za pomocą swych zmodyfikowanych węzłów całkowicie zapanowaliby nad walutą i miliony portfeli SPV nie zauważyłoby, że jest oszukiwanych.

Minimalna konfiguracja pełnego węzła

Aby móc korzystać z bezpieczeństwa, które daje pełny węzeł, a jednocześnie nie musieć poświęcać ogromnych zasobów dyskowych i sieciowych można skorzystać z następujących parametrów:

  • -maxuploadtarget=<ilość MB, które nasz węzeł wyśle w ciągu 24 godzin- rekomendowane minimum to 144*wielkość bloku czyli obecnie 144 MB>.
  • -prune=<maksymalna ilość MB przeznaczona na kopię blockchaina, rekomendowane minimum to 550>. Niestety zanim klient będzie mógł przejść w tryb pruningu i tak najpierw musi ściągnąć cały blockchain, żeby potem usunąć niepotrzebną historię transakcji.
  • -blocksonly – węzeł nie przyjmuje ani nie wysyła innym węzłom pojedynczych transakcji, a tylko całe bloki przez co znacznie redukuje przesył danych

bitcoin-qt -maxuploadtarget=1000 -prune=2500  (klient zostanie uruchomiony z 1 GB limitem uploadu i z 2,5 GB miejsca na blockchain)

Parametry można ustawić w autostarcie np. korzystając z darmowego programu Quick Startup lub tworząc plik bitcoin.conf 

Należy pamiętać, że pełny klient powinien mieć otwarty port 8333 lub włączone mapowanie UPnP (Preferencje/Opcje/Sieć). W prawym dolnym rogu programu można sprawdzić ilość połączeń z innymi węzłami – powinna być większa niż 8.

Na chwilę obecną polecam używać pełnego węzła jako hot wallet, ale nie trzymać na nim całych oszczędności, ponieważ Bitcoin Core wciąż nie obsługuje portfeli sprzętowych, choć zaczęto już nad tym pracować.

Ilość ma znaczenie.

Od dłuższego czasu ilość pełnych węzłów spada, choć wciąż jest ich wystarczająco wiele, aby sieć Bitcoin działała sprawnie i była bezpieczna. Każdy nowy węzeł sprawia, że Bitcoin jest bardziej zdecentralizowany i odporny na ataki, a także odciąża inne węzły, które obsługują zapytania od setek tysięcy portfeli SPV. Mając u siebie pełny węzeł wspierasz sieć i sprawiasz, że jest silniejsza. Polecam wszystkim entuzjastom 🙂

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *