Llamada JSON-RPC al error de bitcoind, 403 no pudo abrir la secuencia

Estoy tratando de hacer una llamada json a un servidor VPS que aloja mi billetera y falla con el siguiente mensaje de error:

Warning:  fopen(http://user:pass@ip:port): failed to open stream: HTTP request           failed! HTTP/1.1 403 Forbidden
in C:\Users\Owner\Desktop\USBWebServer\root\php\jsonRPCClient.php on line 132

Fatal error:  Uncaught exception 'Exception' with message 'Unable to connect to     http://user:pass@ip:port' in     C:\Users\Owner\Desktop\USBWebServer\root\php\jsonRPCClient.php:140
Stack trace:
#0 C:\Users\Owner\Desktop\USBWebServer\root\php\testrpc.php(15): jsonRPCClient- >__call('getinfo', Array)
#1 C:\Users\Owner\Desktop\USBWebServer\root\php\testrpc.php(15): jsonRPCClient-   >getinfo()
#2 C:\Users\Owner\Desktop\USBWebServer\root\index.php(154): include('C:\Users\Owner\...')
#3 {main}
thrown in C:\Users\Owner\Desktop\USBWebServer\root\php\jsonRPCClient.php on line 140 

Obtuve mi archivo JsonRPCClinet.php de aquí http://jsonrpcphp.org/code.php?file=jsonRPCClient

mi archivo bitcoin.conf es el siguiente:

server=1 
daemon=1
listen=1
rpcuser=user
rpcpassword=pass    
rpctimeout=16
rpcallowip=0.0.0.0
rpcport=8332

Soy consciente de que 0.0.0.0 es peligroso, lo cambiaré una vez que pueda hacer que todo funcione

estoy llamando a json-rpc usando este código php

<?php
  require_once 'jsonRPCClient.php';

  /* Configuration variables for the JSON-RPC server */
    $rpc_host = 'ip';
    $rpc_port = '8332';
    $rpc_user = 'user';
    $rpc_pass = 'pass';

    $btc = new jsonRPCClient('http://' . $rpc_user . ':' . $rpc_pass . '@' . $rpc_host . ':' . $rpc_port);

  echo "<pre>\n";
  print_r($btc->getinfo()); echo "\n";
  echo "Received: ".$btc->getreceivedbylabel("BEkpbpYLpwacchSQFRCL7ZSWw3VwB8k7WN")."\n";
  echo "</pre>";
?> 

además he abierto el puerto 8332 en mi VPS

¿alguien puede ver alguna razón por la que este error está ocurriendo, agradecería mucho la ayuda

¿Quizás su host está bloqueando las solicitudes salientes a puertos "no estándar", como 8332? Pruebe 8080 o 443, si no están reservados por otro servicio. Pruebe también rpcallowip=*en lugar de 0.0.0.0.
@GeorgeKimionis No es eso, está fallando con un error 403, lo que significa que logró conectarse
@GeorgeKimionis Vaya, debería aclarar. Quiero decir que la primera sugerencia no lo es. El autor de la pregunta definitivamente debería probar el segundo.
@NickODell no sabemos realmente si se conectó a bitcoind, podría ser un proxy o incluso un firewall que devuelve esto 403si se filtran los paquetes.

Respuestas (1)

Acabo de leer el código que maneja rpcallowip y puedo decirte que rpcallowip=0.0.0.0no funcionará.

Si desea permitir desde todas las direcciones, debe usar

rpcallowip=0.0.0.0/0

(Extrañamente, no puedo encontrar ningún código que maneje comodines. Voy a abrir un problema en github al respecto. Parece que la documentación o el código son incorrectos).

Editar: resulta que se eliminó la compatibilidad con comodines.

así que probé 0.0.0.0/0 y *, y obtengo exactamente el mismo error, también probé una dirección IP aleatoria y obtuve un error diferente (no 403 pero aún no pude conectarme)? ¿eso ayuda de alguna manera?
Huh, eso es extraño. Intente configurar $btc->debug = trueen su programa; a ver si aparece algo esclarecedor.
si lo coloco después de esta línea: $btc = new jsonRPCClient('ht... eso me da esto: "Error fatal: no se puede acceder a la propiedad privada jsonRPCClient::$debug en C:\Users\Owner\Desktop\USBWebServer\root \php\testrpc.php en la línea 11" Si cambio la depuración a verdadero en el archivo jsonRPCCLient.php, muestra el mismo error que la publicación original :(
@cfxlegion Ah, leí mal el código. Deberías hacernew jsonRPCClient("http://...", true)
entiendo esto, pastebin.com/GGN9WpSK
@cfxlegion Por 'http://...' quise decir poner su URL real allí.
lo hice, eso es justo lo que me dio el error lol, para el pastebin solo reemplacé "usuario" "contraseña" e "ip"
Ponga la cita antes de la coma, no después de la verdadera. Mira el ejemplo que puse arriba.
@cfxlegion Es mejor no publicar ese tipo de información :). Entonces, definitivamente es un error relacionado con rpcallowip, y el cambio de configuración que publiqué debería haberlo solucionado. ¿Reinició su cliente bitcoin después de cambiar la configuración?
gracias por el aviso, no me di cuenta de que no lo había eliminado, :) está bien, tienes razón, parece ser una especie de rpcallowip, acabo de poner la IP pública de mi computadora en la lista de permitidos y obtuve un El resultado de "getinfo" también obtuvo algunos errores, pero lo resolveré, pero también significa que ni "0.0.0.0/0" ni "0.0.0.0" ni "*" hicieron lo que se suponía que debían hacer. mmm
algo muy importante perdido fácilmente horas pasadas
¡Gracias! ¡Ya estaba usando esta propiedad, pero por alguna razón nada funcionaba con mi ip ipv6 hasta que lo configuré en esto!