24-NSIJ2AN1-3
-
Le masque
255.255.255.0indique que les trois premiers octets de l'adresse IP correspondent à l'adresse réseau. Alice et Bob sont donc sur le réseau192.168.1.0. Une adresse valide pour Charlie pourrait être192.168.1.3, car elle n'est ni déjà attribuée, ni une adresse réservée, comme l'adresse du réseau (.0) ou l'adresse de diffusion (.255). -
La liste de ces transactions est :
-
Le bloc 0 correspond au tout premier bloc crée, il n'a donc pas de prédécesseur, ainsi son attribut
bloc_precedentestNone. -
L'attribut
bloc_precedentdu bloc 1 doit contenir une référence vers le bloc 0. -
À l'issue du bloc 2, Bob a un solde de 100 + 30 – 20 – 20 = 90 nsicoins.
-
L'adresse de broadcast ou de diffusion générale permet d'envoyer un paquet à l'ensemble du résau local. Il s'agit de la dernière adresse IP du réseau, à savoir ici
192.168.1.255. -
Le code à compléter contient plusieurs erreurs :
- Ligne 2 :
→self.precedentself.bloc_precedent - Ligne 6 :
→bloc.liste_transactionsself.liste_transactions - Ligne 6 : Il manque
:à la fin de la bouclefor
def calculer_solde(self, utilisateur): if self.bloc_precedent is None: # cas de base solde = 0 else: solde = self.bloc_precedent.calculer_solde(utilisateur) for transaction in self.liste_transactions: if transaction.expediteur == utilisateur: solde = solde - transaction.montant elif transaction.destinataire == utilisateur: solde = solde + transaction.montant return solde - Ligne 2 :
-
Suivant la variable
blockchaindéfinit à la question 5, l'expressionblockchain.tete.calculer_solde('Alice')renvoie le solde actuel d'Alice. -
Déterminer une valeur par recherche exhaustive signifie tester toutes les valeurs possibles, une par une, jusqu'à trouver celle qui satisfait une condition donnée (par exemple, ici, un hash commençant par
'00'). -
Puisque le bloc 0 correspond au tout premier bloc crée, son attribut
bloc_precedentvautNone. Son attributhash_bloc_precedentest initialisé par la méthodedonner_hash_precedent, qui lui affecte la valeur'0'. -
Puisque le hash s'écrit sur 256 bits, il existe \(2^{256} \approx 10^{77}\) hashs possibles.