From c6816044c3ea9c12b01926f200700db41a48c35d Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Tue, 13 Feb 2024 16:02:28 +0100 Subject: [PATCH] Doc update --- doc/Messages-SP-Specs.md | 405 +++++++++++++++++++++++++++++++------- doc/Specs-Datamodel.md | 64 +++--- doc/Specs-References.md | 14 +- src/models/shared_peer.rs | 8 + 4 files changed, 393 insertions(+), 98 deletions(-) diff --git a/doc/Messages-SP-Specs.md b/doc/Messages-SP-Specs.md index 1fcf1d6..e400b94 100644 --- a/doc/Messages-SP-Specs.md +++ b/doc/Messages-SP-Specs.md @@ -2,20 +2,46 @@ * 1. [Objectif](#Objectif) * 2. [Portée](#Porte) * 3. [3. Documents de référence](#Documentsderfrence) -* 4. [Taille des données](#Tailledesdonnes) -* 5. [Preuve de travail](#Preuvedetravail) -* 6. [Récupération et choix des relais](#Rcuprationetchoixdesrelais) -* 7. [Récupération des UTXO pour les adresses Silent Payment (SP) depuis le faucet des wallets des relais](#RcuprationdesUTXOpourlesadressesSilentPaymentSPdepuislefaucetdeswalletsdesrelais) -* 8. [Connexion au réseau de relais via les messages de type `MessageConnect`](#ConnexionaurseauderelaisvialesmessagesdetypeMessageConnect) -* 9. [Broadcast des messages de type `MessageConnect` vers les relais](#BroadcastdesmessagesdetypeMessageConnectverslesrelais) -* 10. [Envoi de PCD sur les relais via les messages de type `Message`](#EnvoidePCDsurlesrelaisvialesmessagesdetypeMessage) -* 11. [Envoi de PRD sur les relais via les messages de type `Message`](#EnvoidePRDsurlesrelaisvialesmessagesdetypeMessage) -* 12. [Broadcast des messages de type `Message` vers les relais](#BroadcastdesmessagesdetypeMessageverslesrelais) -* 13. [Broadcast des messages de type `Message` vers les clients connectés](#BroadcastdesmessagesdetypeMessageverslesclientsconnects) -* 14. [Horodatage et ancrage des blocs de la side chain sur Bitcoin](#HorodatageetancragedesblocsdelasidechainsurBitcoin) -* 15. [Remboursement des frais d'horodatage et ancrage des blocs de la side chain sur Bitcoin](#RemboursementdesfraisdhorodatageetancragedesblocsdelasidechainsurBitcoin) -* 16. [Génération des adresses SP](#GnrationdesadressesSP) -* 17. [Exemples de Code](#ExemplesdeCode) +* 4. [Variable `SharedPeerList` du SDK (Wasm)](#VariableSharedPeerListduSDKWasm) +* 5. [Structure du stockage en cache](#Structuredustockageencache) + * 5.1. [Relais](#Relais) + * 5.2. [5. Process](#Process) + * 5.3. [Liste des hashs des messages reçus](#Listedeshashsdesmessagesreus) + * 5.4. [Liste des sockets ouverts](#Listedessocketsouverts) +* 6. [Caractéristiques générales des messages de type `Message` et de type `MessageConnect`](#CaractristiquesgnralesdesmessagesdetypeMessageetdetypeMessageConnect) + * 6.1. [SharedPeerList](#SharedPeerList) + * 6.2. [SharedProcessList](#SharedProcessList) + * 6.3. [Taille des données](#Tailledesdonnes) + * 6.4. [Preuve de travail](#Preuvedetravail) + * 6.5. [Adresse SP de faucet](#AdresseSPdefaucet) +* 7. [Traitments par les clients](#Traitmentsparlesclients) + * 7.1. [Connexion d'un client à sa liste relais via les messages de type `MessageConnect`](#ConnexiondunclientsalisterelaisvialesmessagesdetypeMessageConnect) + * 7.1.1. [Récupération et choix des relais](#Rcuprationetchoixdesrelais) + * 7.1.2. [Envoi du message de type `MessageConnect` à chaque relais](#EnvoidumessagedetypeMessageConnectchaquerelais) + * 7.2. [Envoi de PCD sur les relais via les messages de type `Message`](#EnvoidePCDsurlesrelaisvialesmessagesdetypeMessage) + * 7.3. [Envoi de PRD sur les relais via les messages de type `Message`](#EnvoidePRDsurlesrelaisvialesmessagesdetypeMessage) + * 7.4. [Traitement des messages de type `Message` par les clients](#TraitementdesmessagesdetypeMessageparlesclients) +* 8. [Traitements par les relais](#Traitementsparlesrelais) + * 8.1. [Traitement des messages de type `MessageConnect` par les relais](#TraitementdesmessagesdetypeMessageConnectparlesrelais) + * 8.2. [Connexion au réseau de relais via les messages de type `MessageConnect` par les relais](#ConnexionaurseauderelaisvialesmessagesdetypeMessageConnectparlesrelais) +* 9. [Traitement des messages de type `Message` par les relais](#TraitementdesmessagesdetypeMessageparlesrelais) + * 9.1. [Broadcast des messages de type `Message` vers les relais](#BroadcastdesmessagesdetypeMessageverslesrelais) + * 9.2. [Broadcast des messages de type `Message` vers les clients connectés](#BroadcastdesmessagesdetypeMessageverslesclientsconnects) +* 10. [Connexions aux réseaux de noeuds de bitcoin de réseaux side chain ou mainnet](#Connexionsauxrseauxdenoeudsdebitcoinderseauxsidechainoumainnet) + * 10.1. [Protocole de Découverte des Pairs](#ProtocoledeDcouvertedesPairs) + * 10.2. [Protocole de Transmission des Transactions](#ProtocoledeTransmissiondesTransactions) + * 10.3. [Protocole de Partage des Blocs](#ProtocoledePartagedesBlocs) + * 10.4. [Validation et relais](#Validationetrelais) + * 10.5. [Gestion des Forks](#GestiondesForks) + * 10.6. [Connexion au réseau de nodes de side chain](#Connexionaurseaudenodesdesidechain) + * 10.6.1. [Clients](#Clients) + * 10.6.2. [Relais](#Relais-1) + * 10.7. [Connexion au réseau de nodes de layer 1](#Connexionaurseaudenodesdelayer1) + * 10.8. [Horodatage et ancrage des PRD via les transactions Silent Payment (SP)](#HorodatageetancragedesPRDvialestransactionsSilentPaymentSP) +* 11. [Transactions mainnet Bitcoin](#TransactionsmainnetBitcoin) + * 11.1. [Horodatage et ancrage des blocs de la side chain sur Bitcoin](#HorodatageetancragedesblocsdelasidechainsurBitcoin) + * 11.2. [Remboursement des frais d'horodatage et ancrage des blocs de la side chain sur Bitcoin](#RemboursementdesfraisdhorodatageetancragedesblocsdelasidechainsurBitcoin) +* 12. [Exemples de Code](#ExemplesdeCode)