Управление на флот от крипто ATM: кеш, касети, съответствие
Крипто ATM е банкомат, който работи в двете посоки: клиентът пуска банкноти и получава крипто или изпраща крипто и получава банкноти. Управлението на флот от такива машини е логистичен бизнес с софтуерен интерфейс. Екранът котира и потвърждава, но трудните части са физически — кеш в касети, машини на места, където вас ви няма, и обмен във всеки корпус, който трябва да се равнява до стотинката. Който смята крипто ATM за приложение, е видял лесната половина.
Затова това е разбор на оперативната половина: двете подсистеми в корпуса, обменът пред стъклото, касетите, които никой не показва в демо, проблемът с прогнозирането, в който се превръща един флот, и дисциплината да контролирате и равнявате машини, които не виждате.
Две машини в един корпус
Крипто ATM всъщност са две подсистеми, свързани заедно: машина за работа с кеш — приемник на банкноти, валидатор, диспенсър или рециклатор и касетите, които държат банкнотите — и крипто терминал — портфейл, мрежова връзка и екран, който котира и потвърждава. Покупката върви от кеш към крипто: клиентът пуска банкноти, валидаторът ги преброява и подрежда, а машината изпраща крипто към портфейла на клиента. Продажбата върви от крипто към кеш: клиентът изпраща крипто на адреса на машината и щом преводът се потвърди, диспенсърът отброява банкноти от касета. Всичко трудно се намира там, където двете половини се срещат, защото банкнотите са физически и необратими, щом бъдат подредени, а криптото е дигитално и необратимо, щом бъде потвърдено — и машината не бива да обвързва нито едната страна, докато другата не е сигурна.
Обменът пред стъклото
Във всеки автомат се извършва обмен и той се подчинява на същата дисциплина на заключения курс като при касов терминал: екранът обявява курс, задържа го за цялата сесия с обратно броене, а клиентът сключва сделката по този курс или сесията се котира наново. Редът на действията е моделът на сигурност. При покупка автоматът освобождава крипто едва след като банкнотите са валидирани и прибрани в касетата — а не просто поставени, защото банкнота в гърлото на ескроуто още не е пари. При продажба не изплаща нито една банкнота, докато входящият превод няма достатъчно потвърждения, защото изплатена банкнота не може да се върне. Необратимото действие винаги е последно, едва когато другата страна е окончателна. Объркате ли този ред, ще сте построили автомат, който раздава крипто срещу банкноти, които никога не е задържал, или кеш срещу превод, който така и не е пристигнал.
Касети: физическата половина, която никой не демонстрира
Парите стоят в касети — сменяеми кутии с банкноти, обикновено по една за номинал, които се поставят в автомата. Рециклиращият автомат може да изплаща същите банкноти, които е приел; по-простият диспенсър черпи само от касетите, заредени от оператора. Всяка касета носи две числа: броят, който смята софтуерът, и броят, който е физически верен. Цялата работа на оператора, сведена до едно изречение, е тези две числа да са равни. Всяка приета банкнота увеличава очаквания брой, всяка изплатена го намалява, а посещението за инкасо го сверява с физическо преброяване. Когато очакваният и преброеният брой се разминават при инкасо, тази разлика е най-важното число в управлението на парка — това е грешка в броенето, засядане или нещо по-лошо, и се открива с броене, а не с надежда.
Наличности на кеш и защо паркът от автомати е задача за прогнозиране
Един автомат е досаден ангажимент; паркът е задача за прогнозиране. Диспенсър, който е останал без пари, връща клиентите, а банкнотоприемник с пълен стекер спира да приема кеш — и двете са аварии, но нито една не пали светлина за грешка, която минувач би забелязал, защото автоматът просто не може да завърши транзакцията, която клиентът е искал. Затова конзолата следи наличността по касета и по автомат и я превръща в маршрути: кои шкафове трябва да се заредят и кои да се изпразнят, преди някой да е опрял в стената. Добре управляваният парк е най-вече график за инкасо и превоз на ценности — кой до кой шкаф пътува, с каква сума и в кой ден — а софтуерът е там, за да изгради този график от реални данни, вместо от догадки и паника в петък следобед.
Отдалечено заключване и действия от конзолата
Автоматите стоят на места, където операторът го няма — във фоайе, в търговска зала, на гара — затова контролът трябва да е отдалечен. От конзолата операторът може да заключи един автомат или целия парк мигновено, а заключеният автомат не завършва нищо ново. Заключването е отговорът на засядане, подозиран дефект, касово разминаване или автомат, който трябва да бъде замразен, докато някой пътува до него. Ключовете и касетите остават където са; автоматът просто спира да извършва транзакции, докато човек не го отключи. Дисциплината е опасните действия да се правят от конзолата с посочена причина и да попадат в журнал — а не някой да чука по екрана на самия автомат на място, без следа, така че после никой да не може да възстанови какво е направено и защо.
Паркът от крипто ATM не е софтуерен продукт с добавен хардуер. Това е операция по логистика на пари в брой с екран отпред — и всяко число на този екран трябва да се съгласува с банкнота, която можете да хванете в ръка.
Сверяване на автомат, който не виждате
Сверяването е ежедневното доказателство, че паркът е почтен. Всяка сесия на автомата оставя запис — банкноти навътре и крипто навън, или крипто навътре и банкноти навън, със заключения курс, адресите на портфейлите и потвържденията. Съберете сесиите на автомата от последното инкасо и получавате кеша, който трябва да държи; пребройте касетите при посещението и получавате кеша, който държи; двете трябва да съвпадат. Крипто страната се сверява по същия начин — спрямо баланса на портфейла на автомата. Парк, който се сверява по автомат и по ден, хваща лошия шкаф още в първия ден — засядане, скимиране, грешка в броенето — вместо да го открие като дупка в края на тримесечието, която никой не може да обясни. Смисълът на регистъра по автомат е, че издържа на одит именно защото никога не му е било позволено да се разминава.
Съответствието е работа на оператора; софтуерът налага и записва
Операторът на парк от крипто банкомати носи задълженията. Разрешенията, които трябва да притежава, проверките на самоличност, които трябва да извършва, и лимитите на транзакциите, които трябва да спазва, се различават според мястото на всеки автомат и принадлежат на оператора — не на кутията и не на доставчика ѝ. Софтуерът прави нещо нарочно механично: налага всички лимити на клиент и на ден, които операторът настрои, изисква стъпката за идентификация, която операторът определи, при прага, който операторът зададе, и записва всяка банкнота, всеки превод и всяко решение по лимит, за да може операторът да отговаря за парка впоследствие. Автоматът не определя политика; той прилага политиката на оператора по един и същи начин във всеки шкаф и записва какво се е случило. Правилната политика е дисциплина на оператора. Приносът на софтуера е тази политика да е еднаква и подлежаща на одит в парк, който никой не може да наблюдава сам наведнъж.
Честната граница
Един автомат на едно място почти не се нуждае от конзола за парк — електронна таблица и седмично броене биха свършили работа. Механизмът тук оправдава себе си в мащаб, когато числата вече не се побират в една глава: наличности на кеш в много шкафове, броения на касети, които трябва да се сверяват по обект, отдалечено заключване за автомати на часове път и регистър по автомат, който издържа на одит. С един шкаф това е излишна тежест; с двайсет графикът, сверяването и дистанционните контроли са разликата между бизнес и купчина шкафове, които бавно излизат от баланс. Конзолата за парка е на /products/atm, а термините — касета, рециклатор, сверяване, сетълмент — са в /glossary.
Имате система за изграждане?
Опишете ни проблема. Ще се върнем с архитектура и план.