Wie kommuniziere ich mit dem BTC-Netzwerk? [abgeschlossen]

Einige Hintergrundinformationen: Ich überlege, meinen eigenen Miner zu bauen. Obwohl es einige Dokumentationen gibt, fällt es mir schwer, auf eine Menge vorhandenen Codes zu verzichten, und während ich das tue, ziehe ich es vor, in eine tatsächliche Referenz zu schauen, um daraus zu lernen.

Und hier ist meine Frage: Mit dem folgenden JSON für GBT (das von hier kopierte JSON ) versuche ich, es an eine P2Pool-IP und einen Port zu senden, wobei ich meine Brieftaschen-ID als Benutzer und ein zufälliges Passwort verwende, wie angewiesen. Hier ist die Locke, die ich verwende:

curl -u [ID:gibbrish] -d '{"id": 0, "method": "getblocktemplate", "params": [{"capabilities": ["coinbasetxn", "workid", "coinbase/append" ]}]}' http://[IP des P2Pool-Knotens:Port]

Das ergibt aber:

{"error": {"message": "Parse error", "code": -32700, "data": null}, "jsonrpc": "2.0", "id": null, "result": null}

Was mache ich falsch?

Danke voraus!

Das klingt ähnlich wie dieses: Ich möchte ein Flugzeug erstellen. Ganz von vorne, ohne irgendetwas zu studieren, ohne zu schauen, wie andere Flugzeuge gebaut werden.
Also, was ist die Frage? Zuerst scheinen Sie zu fragen, wie man Mining-Software erstellen würde, dann sieht es so aus, als ob Sie Hilfe mit JSON benötigen. Bitte klären Sie, was genau Ihre Frage ist, und stellen Sie sie so spezifisch, dass man sie beantworten kann, ohne einen Aufsatz zu schreiben. Weitere Hinweise finden Sie unter Wie man fragt .
@salvador Ich denke, du reagierst viel über. Ich habe den Code gelesen, ich habe die Wikis gelesen, ich habe Foren gegoogelt und nach allem, was ich weiß, habe ich es "richtig" gemacht. Ich denke, es ist nicht die beste Art und Weise formuliert. Was ich suche, ist, wo ich anfangen soll. Wenn ich ein neues Flugzeug bauen möchte, möchte ich nicht auf die Produktion wie bei Boeing schauen, sondern zuerst die Höhenkräfte selbst herausfinden. Ansonsten habe ich keinen Kontext zu diesen Plänen. Das ist meine Frage: Wie fange ich an? Und warum funktioniert mein Grundstart nicht?
@Murch Ich habe meine Frage bearbeitet, bitte sagen Sie mir, ob es jetzt klarer ist.

Antworten (1)

Ich glaube, ich habe es herausgefunden. „curl“ fügt den „Content-Type“-Header nicht hinzu, der für den Pool wichtig zu sein scheint, wenn der JSON-Text analysiert wird. Das Hinzufügen dieses Headers hat es behoben.

Ein funktionierender Curl-Befehl wäre also:

curl -H "Content-Type: application/json" -u [Wallet ID:gibbrish] -d '{"id": 0, "method": "getblocktemplate", "params": [{"capabilities": [" coinbasetxn", "workid", "coinbase/append"]}]}' http://[Pool-IP:Port]