Tut der getwork id-Wert irgendetwas?

Beim Senden einer getworkAnfrage fügt man immer einen idWert ein. Hat dieser Wert eine Bedeutung? Wird es Probleme verursachen, wenn mehrere Miner dasselbe verwenden id? Wenn ich zusätzliche Informationen an einen Mining-Pool-Server senden möchte, wäre iddies ein guter Ort, oder sollte ich mein eigenes zusätzliches Feld hinzufügen?

Antworten (1)

Wenn Sie über die Bitcoin-API sprechen, erfordert getwork nur datadas Feld, in dem Sie Ihre Lösung platzieren können.

Ich glaube jedoch, dass Sie über das idFeld eines JSON-RPC-Befehls sprechen . Es wird verwendet, um eine Antwort auf eine bestimmte Anfrage zu identifizieren. Im Allgemeinen ist dies möglicherweise nicht der beste Ort, um zusätzliche Informationen zu platzieren. Es gibt bereits einige Erweiterungen des Getwork-Protokolls , die Sie stattdessen verwenden möchten.

Ich bin etwas verwirrt über den Unterschied zwischen der Bitcoin-API und der JSON-RPC-API. Ich spreche von dem Befehl, den ein Miner an den Pool sendet, um Arbeit zu erhalten (oder einzureichen). Bedeutet dies, dass, wenn zwei Miner beide dasselbe idFeld verwenden und beide ungefähr zur gleichen Zeit gültige Anteile finden, nur der Anteil, der sich aus der neueren getworkAnfrage ergibt, vom Pool akzeptiert wird? Und gibt es ein Problem beim Hinzufügen eines zusätzlichen Felds zum Senden zusätzlicher Informationen (keine Informationen, die von einer aktuellen Erweiterung unterstützt werden), oder verwirrt das die Pool-Server?
@ConstableJoe Der Unterschied zwischen Bitcoin API und JSON RPC ist derselbe wie der Unterschied zwischen HTML und HTTP - eines baut auf dem anderen auf. JSON sagt Ihnen, wie Sie Ihre Daten senden, es ist wie ein Umschlag, den Sie adressieren. Die Bitcoin-API ist wie das Zeug, das Sie in diesen Umschlag stecken – es kann ein Brief sein, aber auch Konfetti, Schnüre oder etwas anderes. Im Allgemeinen möchten Sie nicht mit dem Umschlag herumspielen, wenn Sie mit seinem Inneren herumspielen können.
@ConstableJoe Das idwird verwendet, um die Nachricht zu identifizieren, aber von dem, was ich gefunden habe, setzen die meisten Leute es einfach auf 1 und es funktioniert gut. Dies kann nützlich sein, wenn Sie viele Pakete senden. Dann wüsstest du selbst, was du empfängst und so weiter. Ich denke, es ist hauptsächlich für asynchrone Kommunikation oder so nützlich. Das Hinzufügen zusätzlicher Informationen könnte den Pool verwirren. Im Allgemeinen hat der Pool ein Array von Daten erhalten. Wenn er ein nicht leeres Array sieht, geht er davon aus, dass es sich um eine Lösung handelt, und versucht, es zu lesen. Wenn es nicht so formatiert ist, wird das Ergebnis höchstwahrscheinlich ein Fehler sein.