Llamada JSON RPC desde la página web a Bitcoin Core

Quiero hacer llamadas API a mi billetera Bitcoin Core desde mi página web, pero cuando intento conectarme, aparece un error interno del servidor.

Estoy usando easybitcoin.php JSON de Github .

Estoy intentando con esta llamada JSON RPC:

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

Mi archivo bitcoin.conf tiene:

  • escuchar = 1
  • conexiones máximas = 15
  • servidor=1
  • demonio=1
  • rpcuser=minombredeusuario
  • rpcpassword=micontraseña
  • rpcclienttimeout=60
  • puertorpc=8332
  • rpcallowip=0.0.0.0/0 (Antes de poner mi dirección IP aquí pero tampoco resolvió)

Cuando uso el cliente bitcoin-cli.exe para enviar comandos a mi servidor Bitcoin Core a través de 127.0.0.1 (localhost), funciona perfectamente.

¿Qué estoy haciendo mal?

¿Te importa pegar el mensaje de error?
Por lo que vale, su código funciona perfectamente para mí en el bitcoindhost con myip=localhosto con myip=127.0.0.1. También funciona desde un host separado en la red local, myip=192.168.0.xxsiempre que configure mi firewall de Linux ufwpara permitir la conexión al puerto 8332 en el bitcoindhost, y siempre que tenga rpcallowip=0.0.0.0/0mi bitcoindarchivo de configuración (y recuerde reiniciar bitcoinddespués de actualizar el archivo de configuración). Le sugiero que lo use var_dump($bitcoin->getinfo());para que realmente pueda ver si está funcionando (es posible que tenga fallas sin que se produzca una excepción false)

Respuestas (1)

Asegúrese de que su puerto 8332 esté abierto usando ufw. Algunos proveedores de VPS solo tienen muy pocos abiertos de forma predeterminada por seguridad. Digitalocean, por ejemplo, ya no lo tiene abierto por defecto.

sudo ufw allow 8332

La biblioteca Easybitcoin usa cURL, y no siempre está habilitada o instalada de manera predeterminada.

Con PHP 5, puede instalarlo fácilmente ejecutando el apt-get install php5-curlcomando. Con PHP7,sudo apt-get install php-curl

Una vez instalado, asegúrese de que esté habilitado. Localice su php.iniarchivo y elimine el comentario ;extension=php_curl.dllde esta línea eliminando ;(punto y coma).

Ejecute una página de prueba phpinfo();y asegúrese de que curl esté instalado y habilitado. Reinicie Apache, sudo service apache2 restart.

Si aún no puede hacer que funcione, vuelva a su archivo php.ini y active todos los informes de errores y háganos saber cuál es el error. Asegúrese de volver a desactivar los mensajes de error antes de empezar a funcionar.

Una vez que lo tengo ejecutándose como script php en la ventana de la terminal, teniendo también apache2 ejecutándose (con la index.htmlpágina predeterminada), ¿cómo puedo hacer que mi php se ejecute rápidamente firefoxdesde localhost. Intenté introducir `<?php echo 'This is php' ?> en mi html pero parece que necesito más que eso. No se preocupe si es demasiado largo para explicar, estudiaré programación web en algún momento.
Use algo como XAMPP, si desea ejecutar PHP localmente en su máquina.
Instalé Curl en mi servidor web curl, cuando realizo una solicitud de curl simple desde mi servidor, me da un error como: (7) No se pudo conectar al puerto 187.223.xx 8332: Conexión rechazada
Ok, pude recrear este mismo mensaje de error cuando mi nodo no se está ejecutando, o cuando ejecuto el cliente GUI de bitcoin core. Funciona bien cuando ejecuto bitcoind. ¿Supongo que estás ejecutando bitcoind?
Estoy ejecutando Bitcoin Core con daemon=1lo especificado en mi archivo bitcoin.conf. Y también funciona bien con localhost.