Jak działa Tally
Tally to otwarta sieć, która zbiera wiadomości radiowe nadawane przez statki powietrzne, odbierane przez odbiorniki w domach ludzi, i zamienia je w pozycje, z których każdy może korzystać. Ta strona wyjaśnia cały projekt bez zakładania żadnej wiedzy wstępnej.
Trzy słowa
- Feeder: odbiornik, który wysyła to, co słyszy. To odbiornik radiowy w czyimś domu i mały program, który oznacza każdą wiadomość dokładną chwilą jej nadejścia, podpisuje ją i wysyła dalej.
- Przekaźnik: program, który zbiera to, co wysyłają feedery, wyznacza pozycje i dzieli się nimi z innymi przekaźnikami. Każde zadanie w sieci należy do przekaźnika, a uruchomić go może każdy.
- Klient: wszystko, co czyta dane Tally, na przykład strona, aplikacja albo mapa. Klient nigdy niczego nie udostępnia. Jego dostęp to albo mały darmowy poziom, albo kredyt przekaźnika, z którym jest powiązany: firma, która chce pełnego strumienia, uruchamia przekaźnik, a jej klienci czytają na kredyt tego przekaźnika. Klient czyta z przekaźnika: własnego, jeśli chce firehose (często ta sama firma prowadzi oba), albo z publicznego przy niewielkim użyciu.
Elementy
Feedery wysyłają swoje wiadomości do przekaźników. Przekaźniki wykonują całą pracę: zbierają, wyznaczają pozycje i przekazują sobie dane. Klienci czytają z przekaźników. Nie ma żadnego specjalnego serwera ani centralnego operatora, bo każdy przekaźnik to ten sam program.
Dokąd trafiają dane
Feeder wysyła swoje dane do dwóch najbliższych sprawnych przekaźników w różnych sieciach, aby jedna awaria ani jeden nieuczciwy przekaźnik nie mogły go uciszyć. Najbliższy znaczy ten, od którego wiadomość najszybciej wraca, a tego nikt nie sfałszuje.
Surowe wiadomości zostają blisko domu: pokonują najwyżej jeden przeskok, do przekaźników obsługujących ten sam obszar, a te przekaźniki wyznaczają pozycje dla obszaru. Po świecie wędrują tylko gotowe pozycje, dzięki czemu każdy zużywa niewiele przepustowości.
Samoloty, które nie mówią, gdzie są
Większość statków powietrznych nadaje własną pozycję GPS. Niektóre nie, ale i tak odpowiadają radarom krótkimi pingami. Gdy kilka feederów słyszy ten sam ping, dociera on do każdego w nieco innej chwili, bo każdy jest w innej odległości. Każda różnica czasu umieszcza samolot gdzieś na krzywej, a samolot jest tam, gdzie krzywe się przecinają. To multilateracja, w skrócie MLAT, i jest to zadanie przekaźnika.
Wymaga to zegarów feederów zgodnych co do milionowej części sekundy, a odbiorniki domowe takie nie są. Dlatego przekaźniki korygują każdy zegar za pomocą samolotów, które nadają GPS: ich pozycja jest znana, więc wiadomo też, kiedy ich wiadomość powinna dotrzeć, a różnica to błąd tego zegara.
Każda odpowiedź ma uczciwe marginesy błędu: o ile może się mylić, łącznie z niepewnością, którą zostawiają korekty zegarów.
Zegary są korygowane wspólnie, w stałych grupach zwanych kafelkami. Świat jest podzielony na stałą siatkę obszarów w czterech rozmiarach, o boku około 50, 100, 200 i 400 km, a każdy kafelek obejmuje do 48 pobliskich feederów, wybieranych wyłącznie według tego, gdzie stoją. Każdy samolot nad obszarem korzysta z korekty swojego kafelka, więc praca jest wykonywana raz na obszar, a nie raz na samolot. Każdy przekaźnik wyznacza te same kafelki, więc wyniki dalej da się sprawdzić.
Każdy przekaźnik z tych samych danych wyznacza tę samą odpowiedź, co do bitu. Dlatego odpowiedzi różnych przekaźników łączą się bez konfliktów, a każdy może udowodnić przekaźnikowi błąd, jeśli opublikuje złą odpowiedź.
Szybko i ostatecznie
Porządne sprawdzenie pozycji wymaga czasu, bo przekaźnik czeka, aż dotrą wiadomości od wszystkich feederów. Dlatego każdy samolot z MLAT dostaje dwie odpowiedzi. Najpierw szybką, około 1 do 2 sekund po pingu, wyznaczoną z najnowszą przeniesioną dalej korektą zegarów i z szerszymi marginesami błędu. Potem sprawdzoną pozycję ostateczną, która ją zastępuje. Klienci sami wybierają, czy chcą dostawać szybkie pozycje.
Szybka odpowiedź liczy się w kokpicie: przy 150 kt, około 280 km/h, samolot pokonuje pół mili w 12 sekund.
Dwa produkty
- Regionalny: wszystko dla jednego obszaru, łącznie z surowymi wiadomościami. Dla badaczy, lokalnych aplikacji i przekaźników obsługujących obszar.
- Światowy: jedna pozycja na samolot na sekundę, wszędzie. Dla serwisów śledzenia lotów i firm, które chcą pełnego obrazu.
Udostępnianie jak w BitTorrencie
Dane każdego obszaru trafiają najpierw do kilku przekaźników, które ich chcą, a każdy z nich przekazuje je kilku kolejnym. Przekaźniki obsługujące feedery obszaru wysyłają stałe dwie lub trzy kopie, niezależnie od popularności obszaru, więc oblegany obszar nigdy nie podnosi ich rachunku.
Wzięcie obszaru to obowiązek: każdy strumień jest dzielony na pasy, każdy przekaźnik, który bierze obszar, przekazuje swoją część kilku innym, a przekaźnik, który nie przekazuje, zostaje z obszaru usunięty.
Obszary tworzą drzewo
Świat jest podzielony na stałe drzewo obszarów, co do którego wszyscy się zgadzają: małe obszary leżą w regionach, regiony w krajach, kraje na kontynentach, a kontynenty w świecie. Nikt go nie przydziela; to ta sama stała siatka dla wszystkich.
Przekaźnik bierze obszary, których chce, na dowolnym poziomie: serwis regionalny bierze swój region, krajowa aplikacja swój kraj, globalna firma cały świat. Na jakimkolwiek poziomie działa, przekaźnik dzieli się na tym poziomie, przekazując dane obszaru innym, którzy ich chcą.
Przekaźnik, który zebrał wszystkie obszary pod większym, może zaoferować ten większy jako jedną paczkę. Dzięki temu przekaźnik dla całego świata łączy się z kilkoma paczkami kontynentów lub krajów, a nie z każdym małym obszarem. Każdy poziom oferuje kilka przekaźników, więc gdy jeden przestanie działać, nic nie ginie.
Dane w paczce zachowują podpis każdego pierwotnego przekaźnika, więc paczka nie wymaga dodatkowego zaufania: sprawdza się ją dokładnie tak jak jej obszary.
Uczciwe korzystanie
Małe użycie jest darmowe: klient może czytać pozycje dla obszaru, mając tylko połączenie. Użycie na dużą skalę, czyli surowe dane albo pozycje dla dużych regionów, zdobywa przekaźnik, który naprawdę coś wnosi, przyjmując feedery lub wysyłając świeże dane, a klienci powiązani z tym przekaźnikiem czytają na jego kredyt. Klient nigdy niczego nie udostępnia, więc kto chce najwięcej danych, uruchamia przekaźnik i dokłada sieci przepustowości.
Każdy przekaźnik działa z obowiązkowym limitem prędkości wysyłania, aby jego rachunek nigdy nie przekroczył tego, na co pozwala limit, i żaden operator nie miał przykrej niespodzianki.
Co feedery dostają w zamian
Każdy feeder ma publiczną stronę stacji, która pokazuje jego dostępność, tempo wiadomości, usłyszane samoloty, zasięg, pokrycie, które daje tylko on, to, jak bardzo pomaga MLAT, i jego miejsce w rankingach.
Znajdź stacjęWszystko jest liczone z publicznych, podpisanych danych, więc każdy może to sprawdzić.
Zaufanie
- Wszystko jest podpisane. Każdy feeder ma własny klucz, a przekaźnik nie może zmienić ani zmyślić wiadomości feedera, może je tylko pominąć.
- Odpowiedzi są powtarzalne. Każdy, kto ma te same surowe dane, może ponownie wyznaczyć pozycję i dostać dokładnie ten sam wynik.
- Oszustwo da się udowodnić. Dwie podpisane odpowiedzi z tych samych danych wejściowych, które się nie zgadzają, są dowodem błędu, a każdy może przestać korzystać z tego przekaźnika.
- Feedery zdobywają reputację. Feeder, którego wiadomości stale zgadzają się z wiadomościami innych, z czasem zyskuje na wadze.