Безопасность, инфраструктура и время безотказной работы
Движок стоит ровно столько, сколько то, что держит его в живых.
Quant строит движки. Systems держит почву, на которой они стоят: одна дверь, одна вышка, одна рука на выключателе. Ниже — сама архитектура, а не брошюра о ней.
Четыре этапа и одна рука. Каждая стрелка — решение; каждое решение фиксируется.
Четыре цифры из той системы, через которую вы это читаете.
Три функции. Больше не обещаем ничего, и эти три ни с кем не делим.
Ни одной учётной записи не верят только потому, что она пришла. Личность, ключ и источник проверяются вместе, при каждом запросе, а ключ, ушедший от своего адреса, перестаёт работать.
Время безотказной работы, задержка, просадка и вторжение — на одной панели, по вашим часам. О событии вы узнаёте от нас, а не от своих клиентов и не из месячного отчёта.
При взломе движок останавливается прежде, чем потеряет деньги, проход перекрывается, а состояние восстанавливается из последнего чистого. Восстановление — это процедура, а не импровизация.
Всё, что мы ставим рядом с вашим движком — каждая его строка, без зависимостей и без скрытых вызовов. Прочтите его прежде, чем подпустите к своим деньгам. Машинное отделение с нашей стороны остаётся закрытым; то, что работает в вашем доме, вы вправе проверять.
# put one engine under guard POST https://api.matchtopalgorithm.ai/v1/guard/engines Authorization: MT-••••-••••-•••• — one key, one operation Content-Type: application/json { "engine": "eurusd-hf-01", "watch": ["uptime", "latency", "drawdown", "intrusion"], "on_breach": { "halt": true, "seal": true, "notify": ["telegram", "email"] }, "window": "24/5", "clock": "Asia/Singapore" — reports arrive in your hour } 202 Accepted { "guard_id": "g_7f3a91c4", "watchtower": "live", "since": "2026-10-24T06:12:09Z" }
"""MatchTop · engine guard — the piece that sits beside your engine. Standard library only. Nothing we did not write runs with these rights.""" import hmac, json, os, time from hashlib import sha256 from urllib.request import Request, urlopen KEY = bytes.fromhex(os.environ["MT_KEY"]) # one key per engine, never on disk EDGE = os.environ["MT_EDGE"] # no address baked into the build GRACE = 3 # one lost beat is the network. three is a decision. def seal(payload: bytes, beat: int) -> str: """Every beat is signed and numbered. A replayed beat is not a beat.""" return hmac.new(KEY, b"%d." % beat + payload, sha256).hexdigest() def read_verdict(answer: dict, beat: int) -> str: """An answer counts only if it comes back signed, for this beat and no other.""" ours = hmac.new(KEY, b"%d.%s" % (beat, answer["verdict"].encode()), sha256).hexdigest() if not hmac.compare_digest(ours, answer.get("seal", "")): # constant time, always return "halt" # unsigned is not trusted return answer["verdict"] def pulse(engine, beat: int) -> str: payload = json.dumps({ "engine": engine.name, "at": time.time_ns(), # UTC nanoseconds. local clocks lie. "alive": engine.alive, "latency": engine.latency_ms, "drawdown": engine.drawdown, }, separators=(",", ":")).encode() call = Request(EDGE, payload, { "Content-Type": "application/json", "X-MT-Beat": str(beat), "X-MT-Seal": seal(payload, beat), }) with urlopen(call, timeout=4) as answer: # we dial out. nothing dials in. return read_verdict(json.load(answer), beat) def guard(engine) -> None: beat, missed = time.time_ns(), 0 while True: beat += 1 try: verdict, missed = pulse(engine, beat), 0 except Exception: missed += 1 verdict = "halt" if missed >= GRACE else "run" # silence is not consent if verdict == "halt": engine.halt() # stop the money first engine.seal() # then close the path return # and stay down until a human says otherwise time.sleep(engine.beat_seconds)
Это не выбранные нами функции. Это форма дома.
Ничто из этого не является списком функций — именно поэтому это нельзя перебить ценой. Фирма с отделом продаж не может выдать вам своего инженера. Фирма, обязанная наращивать счёт каждый год, не может ничего убрать. Фирма, которая только наблюдает, не может ремонтировать. Они не отстают от нас — они устроены иначе и не могут перейти на эту сторону, не перестав быть собой.
По той же причине на этой странице нет прайс-листа. Сначала мы измеряем операцию, а потом называем цену за то, что измерили.
Двух строк достаточно. Мы читаем их сами и отвечаем сами — за этим окном нет очереди.
Это уже на экране в Цюрихе — не в очереди и не в тикете. Инженер, который это построил бы, читает сам и отвечает сам.
·