JSON-RPC-Aufruf von der Webseite zu Bitcoin Core

Ich möchte von meiner Webseite API-Aufrufe an meine Bitcoin Core-Brieftasche machen, aber wenn ich versuche, eine Verbindung herzustellen, erhalte ich einen internen Serverfehler

Ich verwende easybitcoin.php JSON von Github .

Ich versuche es mit diesem JSON-RPC-Aufruf:

require_once('easybitcoin.php');
    $bitcoin = new Bitcoin('myusername','mypassword','myip','8332');
    $bitcoin->getinfo();

Meine bitcoin.conf-Datei hat:

  • hören=1
  • maximale Verbindungen = 15
  • server=1
  • Dämon=1
  • rpcuser=meinBenutzername
  • rpcpassword=meinpasswort
  • rpclienttimeout=60
  • rpcport=8332
  • rpcallowip=0.0.0.0/0 (Bevor ich meine IP-Adresse hier eingegeben habe, aber es hat sich auch nicht gelöst)

Wenn ich den bitcoin-cli.exe-Client verwende, um Befehle über 127.0.0.1 (localhost) an meinen Bitcoin Core-Server zu senden, funktioniert es perfekt.

Was mache ich falsch?

Hast du etwas dagegen, die Fehlermeldung einzufügen?
Für das, was es wert ist, funktioniert Ihr Code perfekt für mich auf dem bitcoindHost mit myip=localhostoder mit myip=127.0.0.1. Es funktioniert auch von einem separaten Host im lokalen Netzwerk aus, myip=192.168.0.xxvorausgesetzt, ich richte meine Linux-Firewall ufwso ein, dass sie eine Verbindung zu Port 8332 auf dem bitcoindHost zulässt, und vorausgesetzt, ich habe rpcallowip=0.0.0.0/0meine bitcoindKonfigurationsdatei (und denke daran, bitcoindnach dem Aktualisieren der Konfigurationsdatei neu zu starten). Ich schlage vor, Sie verwenden, var_dump($bitcoin->getinfo());damit Sie wirklich sehen können, ob es funktioniert (Sie können ausnahmslos Fehler haben, die zurückgegeben werden false) .

Antworten (1)

Stellen Sie mit sicher, dass Ihr 8332-Port geöffnet ist ufw. Einige VPS-Anbieter haben aus Sicherheitsgründen standardmäßig nur sehr wenige geöffnet. Digitalocean zum Beispiel hat es nicht mehr standardmäßig geöffnet.

sudo ufw allow 8332

Die Easybitcoin-Bibliothek verwendet cURL, und sie ist nicht immer standardmäßig aktiviert oder installiert.

Mit PHP 5 können Sie es einfach installieren, indem Sie den apt-get install php5-curlBefehl ausführen. Mit PHP7,sudo apt-get install php-curl

Stellen Sie nach der Installation sicher, dass es aktiviert ist. Suchen Sie Ihre php.iniDatei und kommentieren Sie ;extension=php_curl.dlldiese Zeile aus, indem Sie ;(Semikolon) entfernen.

Führen Sie eine Testseite mit phpinfo();aus und stellen Sie sicher, dass curl installiert und aktiviert ist. Starten Sie Apache neu, sudo service apache2 restart.

Wenn Sie es immer noch nicht zum Laufen bringen können, gehen Sie zurück zu Ihrer php.ini-Datei und schalten Sie alle Fehlerberichte ein und teilen Sie uns mit, was der Fehler ist. Stellen Sie sicher, dass Sie die Fehlermeldungen wieder deaktivieren, bevor Sie live gehen.

Sobald ich es als PHP-Skript im Terminalfenster ausgeführt habe und auch Apache2 ausgeführt habe (mit Standardseite index.html), wie kann ich mein PHP schnell firefoxvon localhost. Ich habe versucht, `<?php echo 'This is php' ?>' in meinen HTML-Code einzufügen, aber anscheinend brauche ich mehr als das. Keine Sorge, wenn die Erklärung zu lang ist, ich werde irgendwann Webprogrammierung studieren.
Verwenden Sie etwas wie XAMPP, wenn Sie PHP lokal auf Ihrem Computer ausführen möchten.
Ich habe Curl auf meinem Webserver Curl installiert, wenn ich eine einfache Curl-Anfrage von meinem Server mache, erhalte ich eine Fehlermeldung wie: (7) Verbindung zu 187.223.xx Port 8332 fehlgeschlagen: Verbindung abgelehnt
Ok, ich konnte dieselbe Fehlermeldung neu erstellen, wenn mein Knoten nicht läuft oder wenn ich den Bitcoin-Core-GUI-Client ausführe. Es funktioniert gut, wenn ich Bitcoin ausführe. Ich nehme an, Sie verwenden Bitcoin?
Ich verwende Bitcoin Core mit daemon=1Angabe in meiner bitcoin.conf-Datei. Und funktioniert auch gut mit localhost.