i z naszej wymiany zdań dowiedziałem się czegoś bardzo niepokojącego:
UPnP jest ważnym mechanizmem automatycznej konfiguracji, która zajmuje się między innymi przekierowaniem portów. Węzeł który nie posiada przekierowanych portów, jest w stanie nawiązać połączenie z węzłem z otwartymi portami, ale nie może połączyć się z drugim węzłem który ma zamknięte porty. Efektywnie węzeł z zamkniętymi portami musi być obsłużony przez węzeł z otwartymi.UPnP was disabled by default after a number of security vulnerabilities in the UPnP code in v0.12 (2015). Furthermore, there is no real need for more listening nodes - the important part is that people run full nodes at all, not whether they are listening.
Pogrzebałem w necie, i znalazłem dwie metody zliczania ilości węzłów
- pierwsza opierająca się crawlerze łączącym się aktywnie z węzłami pozwala na wykrywanie węzłów posiadających przekierowane porty
przykład:
https://bitnodes.21.co/dashboard/
https://coin.dance/nodes/all
- druga (pasywna) zlicza wszystkie węzły, które łączą się z crawlerem - narzędzie napisał zresztą sam LukeJr
Statystyki są dosyć brzydkie.
Wedle coindance, pod koniec marca 2017 było około 6750 węzłów z otwartymi portami.
W tym samym czasie ogólna ilość węzłów wynosiła (wg pasywnego crawlera) ok. 57000 węzłów
Oznacza to efektywnie że te 6750 węzłów musi obsługiwać pozostałe 50 000!!!
Mimo iż mamy zaledwie 1MB bloki = 4,3GB miesięcznie (plus jakiś tam overhead), niektórzy użytkownicy raportują że ich węzły BTC muszą wysłać nawet 200GB danych na miesiąc. SegWit czy jakie kolwiek inne zwiększenie rozmiaru bloku, wywinduje te wymagania jeszcze wyżej.
Nie wiem czym kieruje się Core, prowadząc politykę domyślnego wyłączenia UPnP - moim zdaniem bugi powinny zostać załatane i funkcja domyślnie włączona. Inaczej nadal otwarte węzły (które muszą być konfigurowane ręcznie) będą musiały obsługiwać masę pasożytów, a zwiększenie bloku tylko pogorszy sprawę. Co gorsza to tak pracuje już od dwóch lat - taki stan rzeczy zakrawa na niekompetencję...