Utiliser un modèle de bloc pour miner
Je ne sais pas trop comment j'utilise le modèle de bloc. J'ai vu cette question qui m'amène à penser que j'ai peut-être besoin d'appeler cette fonction jusqu'à ce que j'obtienne un hachage qui corresponde à la difficulté. En gros, quels sont les appels de fonction que je dois effectuer pour extraire un modèle de bloc afin que je puisse ensuite appeler submit block.
Désolé si c'est une question vague, je suis juste assez confus.
J'ai également vu cette question, mais encore une fois, elle ne répond pas vraiment à la fonction que je devrais appeler.
Juste pour plus de contexte, j'appelle monero d'un référentiel bazel, donc les choses sont un peu poilues et complexes.
Réponses
Je suis un peu confus quant à la façon dont j'utilise le modèle de bloc ... Fondamentalement, quels sont les appels de fonction que je dois effectuer pour extraire un modèle de bloc afin que je puisse ensuite appeler submit block.
Un modèle de bloc est juste cela, un modèle pour un bloc sur lequel un mineur peut effectuer un travail (hachage répété) pour essayer de trouver une solution (un hachage qui répond à la difficulté du réseau), puis le soumettre au réseau.
Donc d'abord, un mineur obtient un modèle de bloc, généralement en utilisant la méthode du démon get_block_template .
Ensuite, le mineur met à jour l'espace nonce 1 et effectue un hachage 2 (en utilisant la fonction de hachage RandomX). Si / lorsque le hachage résultant (qui n'est qu'un nombre) rencontre la difficulté du réseau, ils peuvent soumettre le bloc au réseau en utilisant la méthode démon submit_block .
Enfin, les nœuds homologues valident que tout hachage de blocs proposé répond à la difficulté du réseau. Si aucun autre mineur ne soumet un bloc valide (ou une chaîne de blocs) avec plus de travail effectué, après 60 blocs, le mineur reçoit la récompense.
1 l'espace nonce peut être n'importe quelle combinaison du champ nonce dans l'en-tête de bloc ou dans n'importe quel espace réservé de la transaction du mineur.
2 ce qui est en fait haché est un blob de hachage de bloc, qui est une concaténation de l'en-tête du bloc, un hachage racine merkle des transactions de blocs et une variable du nombre de txs ( src ). Un mineur peut soit utiliser directement le blob de hachage de bloc retourné à partir de, get_block_template
soit construire lui-même l'objet de hachage de bloc en utilisant le blob de modèle de bloc. Ce dernier est requis si le mineur modifie l'espace réservé du mineur tx.