Czym jest Propagation Time?
Propagation Time to czas, jaki zajmuje nowej transakcji lub blokowi rozpowszechnienie się w sieci blockchain i dotarcie do większości uczestników. Wyobraź sobie to jak soczystą plotkę rozchodzącą się po ogromnym czacie grupowym, lecz każdy odbiorca sprawdza ją dwa razy zanim przekaże dalej. Krótszy czas jest lepszy, bo wszyscy szybciej są na tej samej stronie.
„Propagation Time to tylko ping internetu.” Nie do końca. Ping ma znaczenie, ale także rozmiar danych, sprawdzenia walidacyjne, kolejki u obciążonych peerów oraz sposób połączeń w sieci.
Jak działa Propagation Time
Oto krok po kroku, gdy pojawia się transakcja lub blok:
- Krok 1: Portfel nadaje nową transakcję albo górnik bądź walidator znajduje nowy blok.
- Krok 2: Bliski peer weryfikuje podstawowe reguły, a następnie przesyła dalej do swoich połączonych węzłów.
- Krok 3: Dane przechodzą z peeru do peeru, aż większość sieci je zobaczy.
- Krok 4: Uczciwi uczestnicy aktualizują swoje spojrzenie na tip jeśli to blok, albo dodają transakcję do mempoola jeśli przejdzie sprawdzenia.
- Krok 5: W miarę jak więcej peerów odbiera informację, szansa na rozbieżny widok maleje i sieć synchronizuje się.
Ta fala po mapie to Propagation Time. Tak, o to chodzi.
Dlaczego Propagation Time ma znaczenie
A co jeśli potrwa to kilka dodatkowych sekund? To się sumuje.
- Korzyść: Szybsze Propagation Time oznacza mniej przypadkowych forków, płynniejsze działanie handlu i bardziej responsywne odczucia użytkownika.
- Perspektywa: Wolne rozprzestrzenianie dają przewagę botom arbitrażowym i zwiększa wskaźniki porzuconych bloków gdy łańcuch jest obciążony.
- Związek: To łączy się bezpośrednio ze skalowalnością oraz z doświadczeniem w portfelach, giełdach i dappach.
Podczas wysyłania środków obserwuj eksplorator bloków, który pokazuje zasięg peerów lub statystyki pierwszego zauważenia. Jeśli Propagation Time rośnie, wyższe opłaty lub cierpliwość mogą uchronić przed problemami.
Główne cechy Propagation Time
Co je wyróżnia:
- Rozmiar: Większe wiadomości poruszają się wolniej, więc większy rozmiar bloku może wydłużyć czas.
- Przepustowość: Ograniczona szerokość pasma sieci i wysokie opóźnienia podnoszą czas rozprzestrzeniania.
- Sprawdzenia: Walidacja podpisów i reguł dodaje małe, lecz rzeczywiste opóźnienie na każdym przeskoku.
- Topologia: Peery dobrze połączone i o zwartej retransmisji szybciej dochodzą do porozumienia.
- Obciążenie: Zatłoczone mempoole i obciążone peery spowalniają przekazywanie podczas szczytowego ruchu.
Jak oblicza się Propagation Time?
Możesz oszacować Propagation Time, sumując czas serializacji i wysyłki danych oraz opóźnienia hop po hopie. Prostym punktem wyjścia jest:
Propagation_Time ≈ Data_Size_bits ÷ Link_Bandwidth_bits_per_s + Hops × Latency_per_Hop + Local_Validation_Time Rzeczywiste sieci dodają kolejkowanie, losowe ścieżki peerów i techniki protokołu takie jak compact relay, ale to daje pojęcie o podstawowych parametrach.
Warianty
Ta sama idea, różne odmiany:
- Transakcja: Portfel nadaje transakcję, która rozchodzi się do mempooli.
- Blok: Nowy blok wyściga, by stać się wspólnym tipem zanim pojawi się rywalizujący blok.
- Kompaktowy: Peery wysyłają najpierw krótkie podsumowania, a potem pobierają tylko brakujące fragmenty.
- Gossip: Losowe przekazywanie przez peery poprawia zasięg i odporność w czasie.
Szybkie Propagation Time nie jest równoznaczne z finalnością. Nadal czekasz na Potwierdzenie transakcji, aby zmniejszyć ryzyko.
Przykład
Nowy blok Bitcoina może dotrzeć do większości peerów w ciągu kilku sekund, podczas gdy ciężki blok na wolniejszym łączu może zająć zauważalnie więcej czasu.
Ciekawostka
Badacze Ethereum przez lata skracali sekundy przekazywania bloków, ponieważ nawet niewielkie poprawy obniżają wskaźniki uncle i wyrównują rozkład nagród, stąd klienci skupiają się na sprytnych technikach relaya.
Podsumowanie
Jeśli zapamiętasz jedną rzecz, niech to będzie to: Propagation Time to wyścig, by wszyscy usłyszeli tę samą historię, i im szybciej to nastąpi, tym czyściej wygląda łańcuch.
