Sécurité, infrastructure et disponibilité
Un moteur ne vaut que ce qui le maintient en vie.
Quant construit les moteurs. Systems tient le sol sur lequel ils se dressent : une porte, une tour de garde, une main sur l'interrupteur. Ci-dessous, l'architecture elle-même — pas une brochure à son sujet.
Quatre étapes et une seule main. Chaque flèche est une décision ; chaque décision est enregistrée.
Quatre chiffres du système sur lequel vous lisez ceci.
Trois missions. Rien d'autre n'est promis, et ces trois-là ne se partagent pas.
Aucun compte n'est cru parce qu'il s'est présenté. Identité, clé et origine sont vérifiées ensemble, à chaque requête, et une clé qui dérive de son adresse cesse de fonctionner.
Disponibilité, latence, drawdown et intrusion sur un seul tableau, dans votre propre heure. Vous apprenez un événement par nous — pas par vos clients, et pas par un rapport mensuel.
En cas de brèche, le moteur s'arrête avant de perdre de l'argent, la voie est scellée, et l'état est reconstruit depuis le dernier état propre. La reprise est une procédure, pas une improvisation.
La totalité de ce que nous plaçons à côté de votre moteur — chaque ligne, sans dépendances et sans appels cachés. Lisez-la avant de la laisser approcher votre argent. La salle des machines reste fermée de notre côté ; ce qui tourne dans votre maison est à vous d'auditer.
# 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)
Pas des fonctionnalités que nous avons choisies. La forme même de la maison.
Rien de tout cela n'est une liste de fonctionnalités, et c'est exactement pourquoi cela ne peut pas être sous-coté. Une entreprise avec une équipe commerciale ne peut pas vous donner son ingénieur. Une entreprise qui doit faire grossir sa facture chaque année ne peut pas en retirer quoi que ce soit. Une entreprise qui ne fait qu'observer ne peut pas réparer. Elles ne sont pas derrière nous — elles sont construites différemment, et elles ne peuvent pas passer de l'autre côté sans cesser d'être elles-mêmes.
C'est aussi pourquoi il n'y a pas de grille tarifaire sur cette page. Nous mesurons d'abord l'opération, puis nous chiffrons ce que nous avons mesuré.
Deux lignes suffisent. Nous les lisons nous-mêmes et répondons nous-mêmes — il n'y a aucune file derrière cette fenêtre.
C'est déjà sur un écran à Zurich — pas dans une file, pas dans un ticket. L'ingénieur qui construirait ceci le lit, et répond lui-même.
·