Exécution en monde clos
Fermer le jeu d’instructions n’est qu’une occurrence d’un geste que le noyau répète quatre fois. À chaque fois, l’espace de ce qui peut arriver est énuméré à l’avance, et ce qui tombe en dehors est refusé plutôt que traité.Opérations
Une charge utile qui n’appartient pas à l’ensemble énuméré — rejetée à la validation, pas à l’exécution
Ce qui a réellement été demandé
Vérité
Traiter le jeu de travail du bloc comme faisant autorité. C’est un journal ; la source est l’état du moteur
Ce qui est vrai en ce moment
Entrées
Tout ce qui peut différer d’une machine à l’autre : horloge, entropie, virgule flottante, ordre de hachage
Si un autre nœud obtient les mêmes octets
Causalité
Un changement d’état sans propriétaire. Les effets qui n’appartiennent à aucune transaction passent par un canal système, pas par une dérogation
Pourquoi ce changement précis a eu lieu
Fermé
Refusé
Le registre peut donc répondre
Quatre clôtures, un seul geste : énumérer l’espace à l’avance et refuser ce qui tombe en dehors.
Le jeu d’instructions
Tout ce qu’un participant ou un validateur peut faire relève d’un ensemble fixe d’opérations typées :
Une transaction dont la charge utile n’appartient pas à cet ensemble est rejetée à la validation. L’ensemble ne change que par mise à niveau du protocole, jamais par le déploiement de quelque chose de nouveau.
Exécuter un bloc
L’exécution est une séquence fixe d’étapes. Cet enchaînement n’est pas un détail d’implémentation — c’est lui qui détermine si une liquidation voit le prix qui l’a déclenchée, et si une annulation devance un ordre agressif entrant.Prixfixer les marquages du bloc
Chargementingérer les comptes et ordres du bloc
Financementrégler les flux
Risquelevier vaults → liquidation → ADL
Appariementpré → appariement → post
Finalisationcollecter sorties, purger état mort
Chaque étape en aval raisonne sur un prix par instrument, non sur un prix mouvant
Réglé sur les positions telles que chargées, pas en fin de bloc
Le flux forcé est résolu avant l’admission de tout flux discrétionnaire
S’exécuter après Risque est ce qui empêche de devancer une liquidation dans le même bloc
Positions à zéro et comptes vidés ne persistent pas
Un bloc, six étapes
Ce que la place détermine
Les ordres conditionnels sont balayés dans cette séquence : un déclenchement provoqué par les marquages de ce bloc prend effet dans ce bloc, pas dans le suivant.
C’est parce que la liquidation s’exécute avant l’appariement qu’une liquidation ne peut pas être devancée par un ordre du même bloc. Le flux de liquidation est déjà résolu au moment où les ordres discrétionnaires sont appariés.
Deux sortes d’état
Le noyau maintient une séparation stricte entre ce qui persiste et ce qui est éphémère.pendant l’exécution d’un bloc
État du moteurmarchés · comptes · carnets · positions · chambre de compensationvit entre les blocs
Ensemble de travailmarquages · comptes touchés · exécutions · sortievit le temps d’un bloc
État de la chaîne entérinéversionné · authentifiél’autorité
On confond facilement suivi des modifications et autorité. Ce qui change pendant un bloc construit la sortie déterministe — ce n’est pas là que vit l’état.
l’autorité qui reconstruit le moteur
lecture
application
matérialisation
Pourquoi le résultat est reproductible
Le déterminisme est ici imposé, non espéré. Tout nœud honnête qui exécute le même bloc contre le même état antérieur produit le même résultat, octet pour octet, parce que rien sur le chemin d’exécution ne peut lire quoi que ce soit qui diffère d’un nœud à l’autre :- Arithmétique en virgule fixe partout. Les calculs de règlement se font en virgule fixe entière avec une sémantique d’arrondi explicite — arrondi vers le haut sur les exposants négatifs pour la marge, plancher et plafond pour les frais. Il n’y a pas de virgule flottante sur le chemin de règlement, parce qu’une différence d’arrondi entre deux machines est un fork.
- Aucune horloge murale. Le séquencement à l’intérieur d’un bloc utilise la position canonique entérinée par le consensus et l’horodatage du bloc, jamais l’heure locale.
- Aucun aléa à l’exécution. Tout ce qui exige de l’aléa le dérive de façon déterministe de l’état de la chaîne.
- Itération déterministe. Toute collection dont l’ordre de parcours est observable dans la sortie est triée, et non randomisée par hachage.
Les formules de risque sont pures
Les formules qui décident des exigences de marge, des prix de liquidation, de la sélection pour la réduction du levier, des frais et des limites d’encours sont implémentées comme des fonctions pures et sans état. Elles prennent des valeurs et renvoient des valeurs ; elles ne lisent ni ne modifient l’état du registre. Les changements d’état sont pilotés exclusivement par la chambre de compensation, qui appelle ces fonctions et applique les résultats. Les modules qui détiennent de l’état — comptes, positions, carnets d’ordres — stockent les données et exposent des mutateurs, mais ne pilotent pas eux-mêmes la logique métier. C’est une frontière délibérée. Elle fait qu’un calcul de marge peut être vérifié isolément contre une table d’entrées et de sorties, et qu’il existe exactement un chemin de code par lequel le solde de qui que ce soit peut changer.La sortie
L’exécution produit des écritures d’état et des événements, chacun lié à la transaction qui l’a causé, plus un canal pour les effets de niveau système qui n’appartiennent à aucune transaction utilisateur en particulier — financement, mouvements du fonds d’assurance, compteurs de bloc. Ceux-ci deviennent les sorties de transaction que la couche d’état entérine et que l’indexeur sert. Rien de ce qui se passe à l’intérieur du noyau n’est invisible en aval. Si cela a changé l’état, cela se trouve dans la sortie de quelqu’un ou dans le canal système.Pour aller plus loin
Appariement
Le carnet d’ordres, la priorité prix-temps, et la résolution de la durée de validité et de la prévention de l’auto-exécution.
Chambre de compensation
L’unique chemin par lequel changent les soldes, les positions et la marge.
Modèle d’état
Ce que devient la sortie du noyau une fois entérinée.
IntentionBFT
D’où viennent le séquencement et les prix.