Maneki-neko DUCAT-a, trzymający monetę Monero
handel w pobliżu, bezpośrednio między ludźmi · specyfikacja szkic 1.1.0-dev13

DUCAT

Veilid do transportu. Monero do rozliczenia. Żadnego operatora pomiędzy.

Nigdzie nie ma serwera DUCAT — kontakty, wiadomości, rachunki i paragony to wpisy w DHT oraz ładunki zapieczętowane od końca do końca, a każdy telefon prowadzi pełny węzeł Veilid, oddając routing i przestrzeń, które zajmuje.

0 wektorów zgodności 0 trybów pracy 0 języków 0 serwerów

Podpisane w trybie debug, tylko stagenet. Jeszcze nie na prawdziwe pieniądze.

Stoi na

Handel bez nikogo pośrodku

Dukat przez sześć stuleci był złotą monetą przyjmowaną od Wenecji przez Wiedeń po Lewant — bez relacji z emitentem, bez konta za nim, bez dołączonego pozwolenia. DUCAT jest tym samym, na chwilę, gdy stoisz przed kimś i robisz interes.

🐱

Nigdzie żadnego serwera

Kontakty, rachunki, płatności i paragony podróżują jako ładunki zapieczętowane od końca do końca po DHT Veilida. Nie ma czego wezwać do sądu, ograniczyć, usunąć z platformy ani wyłączyć, bo nic nie działa. Każdy telefon jest pełnym węzłem i oddaje routing oraz przestrzeń, które zajmuje.

🔑

Tożsamość to para kluczy

Tworzona na telefonie. Bez e-maila, bez numeru telefonu, bez nikogo, u kogo trzeba by się rejestrować — i właśnie dlatego nikt nie może ci jej odtworzyć, a aplikacja mówi to wprost, zamiast to zakopywać.

🎫

Wizytówki do jednorazowego odebrania

Podajesz komuś wizytówkę — kod QR, link ducat: albo dotknięcie NFC — i jest ważna dla jednej osoby. Po odebraniu przestaje działać, więc zrzut ekranu, który trafi gdzie indziej, nie jest wejściem.

🔒

Zapieczętowane rozmowy

Szyfrowanie w kształcie X3DH, z jednorazowymi prekluczami i utajnianiem z wyprzedzeniem. Gdy aplikacja musi sięgnąć po podpisany preklucz, pokazuje ci otwartą kłódkę, zamiast to ukrywać.

💬

Rozmowy, które niosą pieniądze

Wątki oparte na skrzynce pocztowej, które działają, gdy jedna ze stron jest offline — niosą rozpisane rachunki, których pozycje muszą się sumować do kwoty, inaczej wiadomość jest odrzucana, płatności oraz paragony wystawiane przez odbiorcę wskazujące transakcję, którą potwierdzają. Małe grupy rozchodzą się na te same wątki dwustronne: bez klucza grupowego, bez wspólnego rejestru, z każdą własnością wątku nienaruszoną.

Sześć kroków, żadnego konta,
około minuty

Każdy zrzut ekranu na tej stronie to aplikacja działająca na telefonie, nie makieta. Nic tutaj nie prosi cię o rejestrację, bo nie ma u kogo się zarejestrować.

Krok 1 z 6: utwórz swoją tożsamość — para kluczy zrobiona na tym telefonie, bez konta
1 · Tożsamość — para kluczy, nie rejestracja
Krok 4 z 6: wybierz PIN, z wprost podanym ostrzeżeniem, że nie da się go zresetować
4 · PIN — i żadnego sposobu na jego reset, powiedziane wprost
Krok 5 z 6: jak obcy sobie ufają — obie strony wpłacają zabezpieczenie, doprowadzenie do końca je zwraca
5 · Zaufanie — wyjaśnione przed pierwszą transakcją
Krok 6 z 6: kopia zapasowa, która szczerze mówiąc nią jeszcze nie jest, dopóki nie opuści telefonu
6 · Kopia zapasowa — „to jeszcze nie kopia”, dopóki nie opuści telefonu

Twoja tożsamość to para kluczy utworzona na urządzeniu — bez e-maila, bez numeru telefonu, bez nikogo, u kogo trzeba by się rejestrować, i właśnie dlatego nikt nie może ci jej odtworzyć. Ostatnim krokiem jest kopia zapasowa, bo portfel, którego nie da się odtworzyć, to jedyny sposób, w jaki ktoś tu naprawdę traci pieniądze.

Pieniądze, które są twoje

Samodzielnie przechowywany portfel Monero z przeliczaniem na walutę lokalną wszędzie, skanowany i wydawany przez wbudowany silnik monero-oxide — bez żadnego demona portfela na telefonie.

Ekran osobisty: saldo w XMR i walucie lokalnej, stan synchronizacji, licznik banknotów do wydania, kafelki trybów i ostatnie ruchy
Saldo i banknoty, które za nim stoją
Płacenie lub prośba: kwota w walucie lokalnej albo XMR, arytmetyka opłat, ile zostaje potem
Cała arytmetyka zanim się zdecydujesz
Wyciąg: saldo bieżące, wyszukiwanie paragonów, eksport CSV
Wyciąg odtworzony z łańcucha
Wybór, komu zapłacić: kontakty z odciskami ich kluczy
Komu płacisz, po odcisku klucza

Przy płaceniu widzisz kwotę, szacowaną opłatę sieciową, sumę, ile ci zostanie potem, ile banknotów zostanie wydanych i mniej więcej ile to potrwa — i możesz wybrać prędkość. Historia jest odtwarzana z łańcucha: wysyłki rozpoznawane po key image, reszta nigdy nie pokazywana jako przychód, każdy wiersz z saldem bieżącym, a cały wyciąg można wyeksportować do CSV.

Monero wydaje pojedyncze banknoty, a nie saldo, więc portfel z jednym dużym banknotem może nie być w stanie zapłacić dwa razy pod rząd. Aplikacja liczy banknoty, które może wydać, i mówi ci, żebyś rozmienił jeden zanim staniesz przy kasie, zamiast zawieść dopiero tam.

Rozmowy, które niosą pieniądze

Kontakt to para kluczy, nie identyfikator. Jedno zeskanowanie otwiera rozmowę opartą na skrzynce pocztowej, która działa, gdy jedna ze stron jest offline — a te wątki niosą handel, nie tylko tekst.

Twoja wizytówka: jednorazowy kod QR otwierający rozmowę, ważny dla jednej osoby
Twoja wizytówka — ważna dla jednej osoby
Rozmowa niosąca pieniądze: rozpisany rachunek z wierszem podatku, paragon, baner rozliczonego depozytu
Rachunek, płatność, paragon — w wątku
Trzyosobowa grupa na wspólnej tablicy: jeden wpis na pokolenie, pytanie i odpowiedź z innego telefonu
Grupy — jeden wspólny wpis na pokolenie
Szukanie tego, co ludzie powiedzieli, z trafieniami w nazwach przed trafieniami w wiadomościach
Szukaj tego, co ludzie naprawdę powiedzieli

Podajesz komuś wizytówkę — kodem QR, linkiem ducat: albo dotknięciem NFC — i jest ważna dla jednej osoby: po odebraniu przestaje działać, więc zrzut ekranu, który trafi gdzie indziej, nie jest wejściem.

Grupa to lista, która tylko rośnie, a jej słowa jadą na jednym wspólnym wpisie tablicy na pokolenie (§16.24): każdy członek pisze własne strony pod kluczem grupy, który niesie lista, więc wiadomość do pięciu osób to jeden zapis zamiast pięciu, a sieć nie odróżni tego wpisu od żadnego innego. Nikt nie podszyje się pod nikogo, a wyjście jest sprawą lokalną. Grupa potrafi podzielić rachunek: jedna suma staje się osobną prośbą do każdej osoby plus zdaniem, na którym wszyscy mogą sprawdzić rachunki, a każda prośba przeskakuje na opłaconą, gdy dotrze jej potwierdzenie.

Twój telefon to cały biznes

Wybierz jeden z dziewięciu trybów, a cała aplikacja przekazuje pałeczkę — własne zakładki, nic z portfela. Prawie nic z tego nie wymagało nowego obiektu protokołu, i to jest zdanie, z którego specyfikacja jest najbardziej dumna.

Tryby pracy: osobisty, kasa, rachunek w barze, taksówka, darowizny, targowisko, wynajem, wynajęcie pomocy, kiosk
Dziewięć trybów, jeden protokół
Kasa: nabite pozycje z wyliczonym wierszem podatku
Kasa — z wyliczonym podatkiem
Jeden kod do zeskanowania przez klienta; rozpisany rachunek trafia na jego telefon
Jeden kod — rachunek trafia przy skanowaniu
Rachunki w barze: otwarte, wystawione i czekające, zamykane jedną fakturą
Rachunki w barze — regulowane z autobusu do domu
Tryb kiosku, strona klienta: dotknij, czego chcesz, podatek pokazany przed potwierdzeniem
Kiosk — klient zamawia sam
Panel obsługi kiosku za PIN-em: zamówienia, menu i stawka podatku
Panel obsługi za PIN-em
Stały kod darowizny, z kosztem powiązywalności podanym na ekranie
Darowizny — z nazwanym kosztem

Kasa nabija pozycje albo przyjmuje wpisaną sumę, wylicza podatek od sprzedaży dla swojego regionu i pokazuje jeden kod; rachunek pojawia się na telefonie klienta w chwili zeskanowania, a paragon wraca, gdy klient zapłaci. Rachunek w barze zgłasza klientowi każdy napój i zamyka się jedną fakturą. Kiosk oddaje telefon w całości klientowi, z panelem obsługi za PIN-em. Skarbonka daje obie drogi: kod DUCAT, który otwiera rozmowę i odsyła paragon, gdy tylko pieniądze dotrą, oraz stały adres, na który może wpłacić każdy portfel Monero — z kosztem powiązywalności podanym na ekranie, a nie w regulaminie.

Przejazd, którego nikt nie rozdziela

Wpisz, dokąd jedziesz. Twój telefon zamienia pozycję GPS w geokomórkę — publiczną tablicę ogłoszeń, której adresem jest samo miejsce — i wystawia wezwanie: jednorazową wizytówkę, przybliżony obszar i ofertę wyliczoną z rzeczywistej trasy. Na tablicę nie trafia żadne imię — ani na wizytówkę, ani do wpisu, który za nią stoi. Kierowcy obserwują swoją komórkę i sąsiednie i podejmują je; to DHT rozstrzyga wyścig, a żaden pośrednik nie istnieje.

Zielona linia jest sednem: stawki DUCAT-a leżą około 15% poniżej tego, co platforma liczy pasażerowi, a kierowca zatrzymuje całość — nieobecna prowizja platformy, oddana im obojgu. Akceptacja przychodzi z twarzą: imię, samochód, kolor, rejestracja, czas przyjazdu — zapieczętowane do pasażera, nigdy pokazane na tablicy. Twoje własne imię i brama, pod którą stoisz, jadą w tej samej chwili w drugą stronę, do tego jednego kierowcy, który wezwanie podjął.

Jedno ustępstwo, powiedziane wprost na ekranie: wyszukiwanie adresów, wyznaczanie trasy i kafelki mapy odpytują OpenStreetMap — to jedyne miejsce, w którym DUCAT wysyła lokalizację poza urządzenie. Same tablice nigdy nie niosą dokładności lepszej niż ~1,2 km.

Wezwanie przejazdu: trasa, dystans, czas i stawka wobec tego, co policzyłaby platforma
Wezwanie, zestawione z platformą
Taksometr: stawka wpisana raz, kod odbioru, warunki trafiające na czat przy starcie
Taksometr, z warunkami w wątku

Sprzedaj to, wynajmij, albo zaoferuj godzinę swojego czasu

Ta sama mechanika tablic niesie więcej niż przejazdy. Ogłoszenie na targowisku, wynajem albo godzina fachowej pomocy trafiają na tablicę adresowaną dzielnicą, a obcy człowiek w pobliżu czyta je, i nikt z was nie dotyka żadnej platformy.

Ogłoszenia siedzą na grubszych tablicach niż wezwania — około pięciu kilometrów w poprzek, bo po pęk kluczy ludzie pojadą. Wyszukiwanie czyta twoją tablicę i pierścień wokół niej, rysując wyniki w miarę, jak przychodzą, więc coś zaparkowanego blisko ciebie jest na ekranie w mniej niż sześć sekund, podczas gdy „nic tu nie wystawiono” zajmuje jakieś czterdzieści i po drodze odhacza kolejne obszary.

Przeglądanie targowiska: ogłoszenie znalezione na tablicy, z ceną, zabezpieczeniami i przyciskiem, by zapytać
Targowisko
Przeglądanie pomocy: umiejętność oferowana w pobliżu, wyceniona na godzinę
Wynajmij pomoc
Wystawianie pojazdu do wynajęcia: publiczna połowa, która idzie na tablicę
Połowa publiczna — to, co tablica może przeczytać
Tylko dla tego, kto zarezerwuje: adres i szczegóły przekazania nigdy nie trafiają na tablicę
Połowa prywatna — nigdy na tablicy
Znajdowanie sprzętu w pobliżu: aktywne ogłoszenie z ceną za dzień i zabezpieczeniem
Znalezienie — cena, zabezpieczenie i sposób, by zapytać

Formularz ogłoszenia jest przecięty na pół, a aplikacja mówi ci, która połowa jest którą: wszystko z pierwszej części trafia na publiczną tablicę, którą może przeczytać każdy w pobliżu, a adres, miejsce, gdzie są klucze, i numer rejestracyjny idą do drugiej, która nie opuszcza twojego telefonu, dopóki rezerwacja nie jest prawdziwa.

Dom, kanał
i własna półka

Wpisy, które niosą rachunek, równie dobrze niosą stronę. Twój klucz już jest adresem, więc to, co piszesz, ma gdzie mieszkać, nie prosząc nikogo o miejsce.

Kanał: wpisy ludzi, których trzymasz, i twój własny dom
Kanał — wpisy ludzi, których trzymasz
Biblioteka: numery ułożone według wydawcy, zapisywane na zewnątrz zamiast otwierane
Biblioteka — numery ułożone według wydawcy
Cały świat: publikacje na tablicach tematycznych, gdzie „Wszystko” czyta każdą półkę naraz
Cały świat — tablice tematyczne, wszystkie półki naraz
Otwarte ogłoszenie: zdjęcia z jego pakietu, opis sprzedającego, wpisana cena obok dzisiejszego przelicznika
Otwarte ogłoszenie — jego zdjęcia i wpisana cena

Dom persony stoi pod adresem, który nazywa jej własny klucz, a kanał to oś czasu ludzi, których trzymasz — wpis może nieść obraz i plik, a serca wracają. Strony serwuje z własnego dysku ten, kto je opublikował, i otwierają się w zapieczętowanym pokoju, więc czytanie jednej nie pobiera niczego skądinąd.

Publikacje — gazeta, cykl, kawałek oprogramowania — sprzedaje się na całym świecie na tablicach tematycznych, a nie według dzielnicy: wpis ląduje na tablicy tematu i na tablicy swojego języka, a „Wszystko” czyta wszystkie sześć półek obok siebie. Ogłoszenie pobiera swój pakiet z telefonu sprzedającego — do 24 fotografii w pełnym rozmiarze, opis, dane techniczne i załączone pliki — odrzucany w całości przy każdym kluczu, którego nie nazywa, żeby zły dokument nie mógł ukryć dobrych zdjęć.

Oboje wpłacacie zabezpieczenie.
Doprowadzenie do końca je zwraca.

Nie ma żadnej firmy pośrodku, która mogłaby stanąć po czyjejś stronie, więc DUCAT robi coś prostszego. Pieniądze leżą pod adresem, który możecie otworzyć tylko we dwoje, a zwolnienie oddaje każdej stronie jej własne zabezpieczenie, imiennie. Nikt nie może zabrać zabezpieczenia — my również, bo nie ma żadnego nas, komu trzeba by płacić.

~10% przejazd krótki, małe ryzyko szkody
~20% nocleg klucze do czyjegoś domu
~30% pojazd szkoda może przekroczyć cenę

Te liczby są uzasadnione, a nie zgadnięte — model 2-z-2 bez powiernika z Bisq to najbliższy działający precedens, a literatura o podwójnym depozycie dowodzi, że w równowadze układ jest odporny na oszustwo. Wynikają z tego dwie granice: zabezpieczenie warte mniej niż opłata za jego zwrot staje się zerem, a nie ozdobą, i żadne nie przekracza połowy ceny. Strona bardziej narażona wpłaca jako druga, żeby jej pieniądze nigdy nie leżały same pod wspólnym adresem.

⅔

Depozyt bez żadnej firmy za nim

Gdy transakcja wymaga więcej niż kaucji: pasażer, kierowca i wzajemnie zaufany kontakt rozjemcy przeprowadzają po zapieczętowanym wątku rozproszone generowanie kluczy — trzy urządzenia wyprowadzają jeden adres Monero, każde trzyma tylko udział, dowolne dwa mogą podpisać, nigdzie żadnego rozdającego. Szczęśliwa ścieżka to dwa dotknięcia.

Wszystko inne to ugoda: jedna strona proponuje podział, druga podpisuje albo składa kontrpropozycję. Kto utknie, pyta rozjemcę, którego współpodpis jest rozstrzygnięciem — przejęty rozjemca może w najgorszym razie wybrać między wymienionymi stronami, nigdy zapłacić samemu sobie. Udowodnione na łańcuchu, na stagenecie, w każdej postaci, łącznie ze zwolnieniem FROST z dwoma wejściami.

∅

Ile kosztowała nazwa

Zanim dojdzie do jakiejkolwiek transakcji, jest obcy człowiek, a pytanie brzmi: ile kosztowała go jego nazwa. Persona może spalić Monero — wysłać je pod adres, do którego nikt nie ma kluczy, wyprowadzony ze skrótu, który każdy może sam przeliczyć — i nieść przy tym własny dowód zapłaty Monero. Twój klient sprawdza ten dowód na własnym węźle, pyta drugi węzeł, czy transakcja jest w bloku, i od tej pory pokazuje personę słowami wszędzie tam, gdzie o czymś decydujesz: spalono 0,01 XMR, od bloku N. Nigdy punktacja. Reguła, która się liczy, to ostrzeżenie: gdy to, czym masz zaryzykować, jest warte więcej niż to, co spalili, aplikacja to mówi, bo nazwa, która nic nie kosztowała, nic nie traci, znikając.

Po zamkniętej transakcji każda ze stron może podpisać oceniony paragon, a każdy, kogo spotkałeś osobiście, może podpisać poręczenie. Oba jadą zapieczętowanym wątkiem i oba waży wyłącznie ten, kto je czyta — jeden głos na podpisującego, licząc tylko tych podpisujących, których własne spalenie sprawdziłeś, i licząc poręczenie tylko od ludzi, których już masz w swoich kontaktach. Jeden skok, żadnego grafu, nic nigdzie nie publikowane. Reputacja, która kosztuje pieniądze zamiast prywatności.

I zachowuje się jak aplikacja

Narzędzie do prywatności, którego używa się nieprzyjemnie, zostaje użyte raz. To nazywa, ile rzeczy cię kosztują, mówi dwudziestoma językami i ma ciemny motyw, który nie jest dodatkiem po fakcie.

Profil: koszt powiązywalności przy pozwoleniu kontaktom płacić bezpośrednio, podany tam, gdzie się wybiera
Koszty nazwane w chwili wyboru
Ten sam ekran główny w ciemnym motywie Mocha
Mocha — ciemny motyw, zrobiony porządnie
Ten sam ekran główny po arabsku: pełne odbicie od prawej do lewej, z cyframi wschodnioarabskimi
Arabski — pełne odbicie od prawej do lewej
Biznesowa połowa ustawień: region stawek, stawka podatku, prywatność, kopia zapasowa
Biznesowa połowa ustawień

Wygoda ma w systemie prywatności swoją cenę, a aplikacja nazywa ją w chwili, gdy wybierasz, a nie w regulaminie, którego nikt nie czyta. Pozwolenie kontaktom płacić ci bezpośrednio oznacza ponowne użycie jednego adresu — więc mówi, że każdy, kto obserwuje łańcuch, może zobaczyć, że za każdym razem płacono tej samej osobie, łącznie z ludźmi, którzy zapłacili ci tylko raz, i wskazuje alternatywę. Ten sam nawyk przewija się wszędzie: zauważenie w mempoolu pokazywane jest jako widziane, nigdy rozliczone; profil zawsze przedstawiany jest jako twierdzenie, którym jest.

Mówi dwudziestoma językami — każdy ekran czyta z zasobów, liczby mnogie są składane, a nie sklejane, a arabski i perski dowodzą odbicia. Paragony są zapisami, nie wiadomościami: każdy paragon żyje we własnym magazynie, przeżywa usunięcie wątku i kontaktu, i jedzie w zaszyfrowanej kopii zapasowej — która niesie ludzi tak samo jak pieniądze.

Ta sama aplikacja na biurku

Natywne okno nad tym samym Rustem, który działa na telefonie — dzięki czemu kasa sklepikarza, kiosk, sala prasowa, targowisko i kanał to jedna implementacja, a nie port.

Strona Czatu na biurku: grupy na tablicach nad wątkami dwustronnymi, z panelem rozmowy
Czat — grupy na tablicach, nad wątkami dwustronnymi
Kasa na biurku: nabita sprzedaż i rachunki w barze
Kasa — nabita sprzedaż i rachunki w barze
Strona Targowiska na biurku: ogłoszenia blisko komórki wraz z miniaturami
Targowisko — ogłoszenia blisko komórki, z miniaturami
Strona Stanu na biurku: węzeł, jego tablica tras, Połącz ponownie, dziennik
Stan — węzeł, jego tablica tras, Połącz ponownie

Mówi dwudziestoma językami telefonu z tych samych zasobów i jest sprawdzona wobec telefonu w każdym obrzędzie: czat, grupy na tablicach, rachunki i paragony, zamówienie z kiosku opłacone z telefonu, który nigdy wcześniej nie spotkał biurka, pliki i strony serwowane i pobierane, oraz rozmowy z prawdziwym dźwiękiem.

Co jest udowodnione, a co nie

README prowadzi rejestr tego, co naprawdę przeszło od końca do końca w prawdziwej sieci i na prawdziwym stagenecie — i wymienia braki, zamiast je zakopywać.

Pokazane od końca do końca
  • Dwa pełne rozdzielone przejazdy telefon↔komputer — od wezwania przez geokomórkę do rozliczenia w łańcuchu, napiwek i paragon — a przejazd z zabezpieczeniem doprowadzony już do końca także na dwóch telefonach
  • Pełny łuk depozytu — dwa telefony i rozjemca przy biurku niezależnie wyprowadziły jeden adres 2-z-3; wpłata → zwolnienie → kierowca opłacony
  • Rezerwacja — właściciel i gość wpłacają każdy swoje zabezpieczenie, pula potwierdzona własnym skanem gościa, podział zaproponowany, podpisany, obie strony całe; wznowiła się zamiast zaczynać od nowa, gdy w połowie biegu węzeł Monero przekroczył czas oczekiwania
  • Rachunek w barze z telefonu na komputer, od rachunku do paragonu; dziesięć ataków odrzuconych
  • Telefon wyczyszczony do zera przeszedł konfigurację: pierwsza wizytówka, pierwsza płatność, sprzedaż w kiosku opłacona od początku do końca — a potem znów wyczyszczony i odtworzony z własnej kopii
  • Każdy tor depozytu przez interfejs w jeden dzień — sprzedaż na targowisku, wezwanie z ulicy z pozycją na żywo przechodzącą między telefonami, wynajem sprzętu i zlecenie pomocy, którego pierwszy przebieg wydobył i naprawił prawdziwy wyścig
  • Warstwa zaufania pokazana w działaniu, nie w argumentach — spalenie udowodnione i sprawdzone na własnym węźle obcego w 12 s, oceniony paragon poprawnie zważony na zero, cztery komputery dochodzące do wniosku „2 z twoich kontaktów ich zna”, i bezimienna wizytówka wezwania, której imię nadały dane udostępnione zaraz potem
Powiedziane, nie zakopane
  • Brak przeglądu przez kogokolwiek spoza projektu — §2.5 to argument, dlaczego to ma znaczenie; wewnętrzne przejście po pięciu powierzchniach ataku znalazło czterdzieści parę rzeczy i naprawiło większość, co jest mniejszą rzeczą
  • Brak wdrożeniowca, który nigdy nie czytał core/
  • NFC zweryfikowane przy kompilacji, nigdy nieprzetestowane w terenie między dwoma telefonami — a samo zbliżenie nigdy niezmierzone na telefonie
  • Opóźnienia mierzone na komputerze z podłączonym węzłem, nie na telefonie na baterii
  • Dwa radia, dwie baterie, dwa niezależne zegary — dzień w terenie wciąż zaległy
  • Komputer nie ma drugiego składnika — ani blokady urządzenia, ani własnego sekretu, więc pytanie, które telefon stawia przed każdym wydatkiem, nie może tam działać
!

Pre-alfa. Stagenet. Nie na prawdziwe pieniądze.

Każdy build jest podpisany w trybie debug i rozlicza się na stagenecie Monero — monety bez wartości, z założenia. Specyfikacja to szkic 1.1.0-dev13 i mówi o sobie: nic tu nie jest ostateczne, a §14 to prawdziwy program. Wypróbuj ją, złam ją, przeczytaj — tylko jej nie finansuj.

Specyfikacja jest produktem.
Cała reszta trzyma ją w ryzach.

ducat-protocol.md to główny artefakt — pięć części, dziennik zmian na początku i zestaw zgodności, który przechodzi druga implementacja, żeby dokument nie mógł po cichu odejść od kodu.

★ ducat-protocol.md   specyfikacja — szkic 1.1.0-dev13, zmiany na początku
  core/               implementacja referencyjna (Rust)
  vectors/            406 przypadków zgodności + schemat
  conformance/        cztery kontrolery, przy każdym pushu
  harness/            od końca do końca po prawdziwych trasach Veilida
  sim/                symulator offline, scenariusze rynkowe
  applications/       android/ + desktop/ (te same źródła)
  mobile/             most Rusta: portfel · skrzynka · węzeł
  research/           dowody, nie produkt

Cztery kontrolery, przy każdym pushu

  • Każdy wektor sprawdzony względem schema.json
  • Druga implementacja przechodzi wszystkie 406 i musi się zgadzać
  • Dokument porównany z kodem — to wychwyciło sekcję normatywną wskazywaną trzykrotnie i nigdy nienapisaną, zakres wartości, którego rejestr nie zadeklarował, oraz sześć rodzajów wektorów, których dokument nigdy nie nazwał
  • Nic zaimportowanego nie zostaje niezadeklarowane

Odpowiedzialność jest normatywna, nie życzeniowa: §18.7 czyni etykę Veilida wymogiem zgodności — żadnych opłat protokołu, żadnej zapłaty dla węzłów, nigdy. Buduj z tego kodu, co chcesz, ale klient, który zarabia na przenoszeniu, nie jest DUCAT-em.

Weź go na telefon
albo na biurko

Nic nie trzeba instalować wcześniej — każdy build niesie własną bibliotekę Rusta i JVM. Android na telefonie, a ta sama aplikacja jako natywne okno w Linuksie, Windowsie i macOS-ie. Nie ma buildu na iOS; dostanie katalog, kiedy sobie na niego zasłuży.

🤖 Android

Przeglądarka w telefonie, najnowszy build, żadnej strony wydań do przechodzenia. armeabi-v7a tylko dla telefonów starszych niż mniej więcej 2016; x86_64 jest dla emulatorów.

🐧 Linux

.deb i .rpm instalują się jako pakiety; AppImage po prostu się uruchamia.

🪟 Windows

Niepodpisane — Windows ostrzeże przy pierwszym otwarciu.

🍎 macOS

Buildy dla Apple Silicon i Intela. Niepodpisane — macOS ostrzeże przy pierwszym otwarciu.

Podpisane w trybie debug, tylko stagenet — nie na prawdziwe pieniądze.