nsi:tds:cryptographie:blockchain
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:tds:cryptographie:blockchain [2023/04/11 19:32] – goupillwiki | nsi:tds:cryptographie:blockchain [2023/05/08 01:14] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 117: | Ligne 117: | ||
| * Paul veut donner 5 unité à Judith. On crée le texte '' | * Paul veut donner 5 unité à Judith. On crée le texte '' | ||
| * on encode le texte et on hache. On utilise pour cela '' | * on encode le texte et on hache. On utilise pour cela '' | ||
| - | * on calcule la signature '' | + | * on calcule la signature '' |
| + | * '' | ||
| * la transaction est alors complétée : '' | * la transaction est alors complétée : '' | ||
| - | Dans l' | + | Dans l' |
| <code python> | <code python> | ||
| - | b" | + | '12d1cc8b27164fdc440bde8190347fe0484489bf9e04e71f2cd6edf182910dd493c02c68bf01fa752a297fa34c358d6a451deffc77df39b3' |
| </ | </ | ||
| Ligne 130: | Ligne 131: | ||
| * comme dans ce qui précède, on produit le texte '' | * comme dans ce qui précède, on produit le texte '' | ||
| * on hache ce texte : '' | * on hache ce texte : '' | ||
| - | * on déchiffre | + | * on cherche la version '' |
| + | * on déchiffre '' | ||
| * on compare si '' | * on compare si '' | ||
| Ligne 258: | Ligne 260: | ||
| # le fichier doit contenir le contenu de __str__ | # le fichier doit contenir le contenu de __str__ | ||
| # si le fichier existe déjà, il ne faut rien faire | # si le fichier existe déjà, il ne faut rien faire | ||
| + | | ||
| + | def next_filename(self) -> str: | ||
| + | """ | ||
| + | renvoie le nom de fichier du bloc suivant | ||
| + | """ | ||
| + | return self.FOLDER + self.empreinte() + self.EXT | ||
| Ligne 265: | Ligne 273: | ||
| lance la procédure de chargement pour construire la blockchain | lance la procédure de chargement pour construire la blockchain | ||
| """ | """ | ||
| + | self.blocs = [] | ||
| + | self.keys = {} | ||
| + | self.credits = {} | ||
| self.load() | self.load() | ||
| Ligne 278: | Ligne 289: | ||
| # | # | ||
| # créer le bloc0 avec les infos du fichier mettre bloc0 dans self.blocs | # créer le bloc0 avec les infos du fichier mettre bloc0 dans self.blocs | ||
| - | # créer un self.comptes | + | # créer un self.keys = { identifiant: |
| - | # les infos sur les comptes | + | # créer un self.credits = { identifiant: |
| # à partir de là, tant que l' | # à partir de là, tant que l' | ||
| # charger le fichier, lire la transaction, | # charger le fichier, lire la transaction, | ||
| Ligne 308: | Ligne 319: | ||
| id_cible: identifiant cible | id_cible: identifiant cible | ||
| value: quantité | value: quantité | ||
| - | renvoie l' | + | renvoie l' |
| """ | """ | ||
| # fabrique le texte formé de la façon id_source; | # fabrique le texte formé de la façon id_source; | ||
| - | # encode, hash, | + | # encode, hash |
| - | # renvoie digest() | + | # renvoie digest |
| - | def compte(self, identifiant: | + | def credit(self, identifiant: |
| """ | """ | ||
| - | renvoie la valeur de compte | + | renvoie la valeur de crédit |
| """ | """ | ||
| </ | </ | ||
| Ligne 370: | Ligne 381: | ||
| judith = Client(" | judith = Client(" | ||
| - | print(f" | + | print(f" |
| - | print(f" | + | print(f" |
| t = paul.transaction(" | t = paul.transaction(" | ||
| success = b.add_transaction(*t) # * pour ventiler les morceaux du tuple t dans les arguments | success = b.add_transaction(*t) # * pour ventiler les morceaux du tuple t dans les arguments | ||
nsi/tds/cryptographie/blockchain.1681234345.txt.gz · Dernière modification : de goupillwiki
