Zabilješke s terena

Upravljanje flotom kripto ATM-ova: gotovina, kasete, usklađenost

Kripto ATM je bankomat koji radi u oba smjera: kupac ubacuje novčanice i dobija kripto, ili šalje kripto i podiže novčanice. Upravljanje flotom takvih mašina je logistički posao u softverskom ruhu. Ekran daje kotaciju i traži potvrdu, ali teški dijelovi su fizički — gotovina u kasetama, mašine na mjestima na kojima vas nema i razmjena na svakom kabinetu koja se mora uskladiti do posljednjeg centa. Ko kripto ATM smatra aplikacijom, pogledao je samo lakšu polovinu.

Zato je ovo rastavljanje operativne polovine: dva podsistema unutar kabineta, razmjena na staklu, kasete koje niko ne stavlja u demo, problem prognoziranja koji flota postaje i disciplina kontrole i usklađivanja mašina koje ne vidite.

Dvije mašine u jednom kabinetu

Kripto ATM su zapravo dva podsistema spojena zajedno: mašina za rukovanje gotovinom — prihvatnik novčanica, validator, dispenzer ili recikler i kasete u kojima se novčanice drže — i kripto terminal — novčanik, mrežna veza i ekran koji daje kotaciju i traži potvrdu. Kupovina ide od gotovine ka kriptu: kupac ubacuje novčanice, validator ih broji i slaže, a mašina šalje kripto na kupčev novčanik. Prodaja ide od kripta ka gotovini: kupac šalje kripto na adresu mašine i, kad se transfer potvrdi, dispenzer odbroji novčanice iz kasete. Sve teško nalazi se tamo gdje se te dvije polovine susreću, jer su novčanice fizičke i nepovratne kad se jednom slože, a kripto je digitalan i nepovratan kad se jednom potvrdi — i mašina ne smije potvrditi nijednu stranu dok druga nije sigurna.

Razmjena na ekranu

Na svakom uređaju se odvija razmjena, a njome upravlja ista disciplina zaključanog kursa kao na šalterskom terminalu: ekran prikaže kurs, drži ga tokom sesije uz odbrojavanje, a klijent obavlja transakciju po tom kursu ili sesija traži novi. Redoslijed je sigurnosni model. Pri kupovini uređaj oslobađa kripto tek nakon što su novčanice provjerene i složene u stacker, a ne samo ubačene, jer novčanica koja je još u escrow grlu još nije novac. Pri prodaji ne isplaćuje nijednu novčanicu dok dolazni transfer nema dovoljno potvrda, jer se isplaćena novčanica ne može vratiti. Nepovratna radnja uvijek ide posljednja, tek kad je druga strana konačna. Pogriješite li u tom redoslijedu, napravili ste uređaj koji daje kripto za novčanice koje nikad nije zadržao ili gotovinu za transfer koji nikad nije stigao.

Kasete: fizička polovina koju niko ne demonstrira

Gotovina živi u kasetama: izmjenjivim kutijama s novčanicama, tipično po jedna za svaku apoenu, koje se umeću u uređaj. Recikler može isplatiti iste novčanice koje je primio, a jednostavniji dispenser crpi samo iz kaseta koje je operater napunio. Svaka kaseta nosi dva broja: stanje u koje softver vjeruje i stanje koje je fizički tačno. Cijeli posao operatera, sveden na jednu rečenicu, jeste da ta dva broja budu jednaka. Svaka primljena novčanica povećava očekivano stanje, svaka isplaćena ga smanjuje, a obilazak radi preuzimanja gotovine poravnava ga s fizičkim brojanjem. Kad se očekivano i izbrojano stanje na preuzimanju razlikuju, ta razlika je najvažniji broj u upravljanju flotom: to je pogrešno brojanje, zastoj ili nešto gore, a pronalazi se brojanjem, nikad nadanjem.

Nivoi gotovine i zašto je flota problem prognoziranja

Jedan uređaj je obaveza; flota je problem prognoziranja. Dispenser koji ostane prazan odbija klijente, a prihvatnik novčanica kojem se napuni stacker prestaje primati gotovinu. Oba su ispadi i nijedan ne pokazuje grešku koju bi prolaznik primijetio, jer uređaj naprosto ne može završiti transakciju koju je klijent htio. Zato konzola prati nivo gotovine po kaseti i po uređaju te te nivoe pretvara u rute: koji kabineti trebaju punjenje, a koji pražnjenje, prije nego bilo koji udari u zid. Dobro vođena flota je uglavnom raspored transporta gotovine: ko vozi do kojeg kabineta, s koliko novca i kojeg dana. Softver postoji da taj raspored gradi iz stvarnih nivoa umjesto iz nagađanja i panike u petak popodne.

Udaljeno zaključavanje i djelovanje iz konzole

Uređaji stoje na mjestima na kojima operatera nema, u holu, u trgovini, na stanici, pa kontrola mora biti udaljena. Iz konzole operater može trenutno zaključati jedan uređaj ili cijelu flotu, a zaključani uređaj ne završava ništa novo. Zaključavanje je odgovor na zastoj, sumnju na kvar, razliku u gotovini ili uređaj koji treba zamrznuti dok neko vozi do njega. Ključevi i kasete ostaju gdje jesu; uređaj samo prestaje s transakcijama dok ga čovjek ne odblokira. Disciplina je u tome da se opasne radnje izvode iz konzole uz naveden razlog i ostavljaju trag u logu, a ne tako da neko na terenu dodiruje ekran uređaja bez zapisa, pa niko poslije ne može rekonstruisati šta je urađeno i zašto.

Flota kripto ATM-ova nije softverski proizvod s pridodanim hardverom. To je operacija logistike gotovine s ekranom na prednjoj strani, a svaki broj na tom ekranu mora se uskladiti s novčanicom koju možete držati u ruci.
— Protocore · Inženjering plaćanja

Usklađivanje uređaja koji ne vidite

Usklađivanje je svakodnevni dokaz da je flota poštena. Svaka sesija na uređaju ostavlja zapis: novčanice unutra i kripto van, ili kripto unutra i novčanice van, s zaključanim kursom, adresama novčanika i priloženim potvrdama. Saberite sesije uređaja od posljednjeg preuzimanja i dobijate gotovinu koju bi trebao imati; izbrojite kasete pri obilasku i dobijate gotovinu koju ima; ta dva broja moraju se poklopiti. Kripto strana se usklađuje na isti način, prema stanju novčanika uređaja. Flota koja se usklađuje po uređaju i po danu uhvati loš kabinet prvog dana, bilo da je zastoj, skimming ili pogrešno brojanje, umjesto da ga otkrije kao rupu na kraju kvartala koju niko ne može objasniti. Cijela poenta knjige po uređaju jeste da izdrži reviziju upravo zato što joj nikad nije dozvoljeno da odluta.

Usklađenost je posao operatera; softver provodi i bilježi

Operater flote kripto ATM-ova snosi obaveze. Dozvole koje mora imati, provjere identiteta koje mora provoditi i limiti transakcija koje mora poštovati razlikuju se prema mjestu gdje uređaj stoji, a pripadaju operateru, ne uređaju i ne proizvođaču uređaja. Softver radi namjerno mehanički: provodi limite po klijentu i po danu koje operater podesi, traži korak provjere identiteta koji operater zahtijeva na pragu koji operater odredi te bilježi svaku novčanicu, svaki transfer i svaku odluku o limitu, da operater kasnije može odgovarati za flotu. Uređaj ne odlučuje o politici; primjenjuje politiku operatera jednako na svakom kabinetu i zapisuje šta se desilo. Ispravna politika je disciplina operatera. Doprinos softvera je da ta politika bude ujednačena i revizibilna u floti koju nijedna osoba ne može istovremeno pratiti.

Iskrena granica

Jednom uređaju na jednoj lokaciji jedva treba konzola za flotu, dovoljni bi bili tabela i sedmično brojanje. Ovdje se mehanizam isplati na razmjeru flote, gdje brojevi prestaju stati u jednu glavu: nivoi gotovine u mnogo kabineta, stanja kaseta koja se moraju uskladiti po lokaciji, udaljeno zaključavanje za uređaje udaljene satima i knjiga po uređaju koja izdrži reviziju. S jednim kabinetom ovo je suvišan teret; s dvadeset, raspored, usklađivanje i udaljene kontrole razlika su između posla i hrpe kabineta koji polako gube ravnotežu. Konzola za flotu je na /products/atm, a pojmovi (kaseta, recikler, usklađivanje, poravnanje) nalaze se u /glossary.

Imate sistem za izgradnju?

Recite nam problem. Vratit ćemo se s arhitekturom i planom.