Bitcoin Forum
November 16, 2024, 05:19:55 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Ayuda Bitcoin y php  (Read 783 times)
xaxuke (OP)
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
October 30, 2013, 06:37:46 PM
 #1

Hola, quiero hace una aplicación web que pueda recibir y guardar las transacciones recibidas a una cuenta de bitcoin.

De momento y en local, he implementado bitcoind y comunico con el servidor mediante la librerica json-rpc (jsonRPCClient.php).

He conseguido comunicar bien con el servidor y recibir información de bloques, nodos, etc.

En lo que ando perdido es, qué comandos puedo enviar a bitcoind para que me diga las transferencias recibidas a mi cuenta de bitcoin con todos sus datos (monedas, hora envio, etc) para poder guardarlas en mi aplicación?

Otra pregunta que me saldrá más adelante, en mi monedero, puedo tener más de una cuenta para trabajar con ellas?

Gracias por vuestra ayuda.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
October 30, 2013, 07:28:21 PM
 #2

En lo que ando perdido es, qué comandos puedo enviar a bitcoind para que me diga las transferencias recibidas a mi cuenta de bitcoin con todos sus datos (monedas, hora envio, etc) para poder guardarlas en mi aplicación?

Mírate el comando listsinceblock. Te muestra las transferencias relativas a tu wallet que han ocurrido desde el bloque que le indicas. Ojo, le tienes que pasar el hash del bloque, por lo que antes necesitas hacer un getblockhash. Deberías testear esto ante reorganizaciones de bloques y todo eso (transacciones que desaparecen, o que pasan a tener menos confirmaciones de las que tenían…).

En bitcoin la "hora" de la transacción es la hora del bloque en la que aparece. Lo tienes en la misma salida de listsinceblock, en el campo "blocktime". También hay un campo "time" pero supongo que ese lo guarda el cliente por su cuenta, ya no es información que esté en la cadena de bloques. Podrías usar este campo, simplemente asegúrate de guardar backups del wallet no sólo por los fondos Wink.


Otra pregunta que me saldrá más adelante, en mi monedero, puedo tener más de una cuenta para trabajar con ellas?

Hay varios comandos para gestionar cuentas (getaccount, getaccountaddress, getaddressesbyaccount, listaccounts…) pero antes mírate bien qué es una cuenta en bitcoin porque puede no ser lo que necesitas. En el wiki hay información.
xaxuke (OP)
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
November 04, 2013, 08:46:35 AM
 #3

Muchas gracias por la información y me ha ayudado bastante.

Tengo otra consulta respecto de bitcoin.

Revisando documentación no he encontrado la forma de saber qué dirección te ha enviado el dinero.
En varia documentación pone que no se puede saber.
Si ésto es así, cómo funciona satoshidice.com?
Se supone que tú envias una transferencia, la máquina juega y te devuelve el importe que hayas ganado.
¿Cómo sabe satoshidice la dirección de envio?

Muchas Gracias.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 04, 2013, 08:58:35 AM
 #4

Si ésto es así, cómo funciona satoshidice.com?
Se supone que tú envias una transferencia, la máquina juega y te devuelve el importe que hayas ganado.
¿Cómo sabe satoshidice la dirección de envio?

Se puede saber la dirección de destino de la transacción anterior. No es que las coins vayan "de A a B" sino que unas coins que inicialmente habían ido a A, ahora van a B. Si en este ejemplo satoshidice es B, los premios los devuelve a A pero no porque A sea "el origen" de la transacción, sino porque en la cadena de bloques se ve que esas coins que están llegando a B, antes habían llegado a A.

Ten en cuenta que en muchos casos, una transacción que recibes toma más de una transacción anterior como entrada, y normalmente hoy por hoy podemos asumir que todas esas transacciones anteriores tienen como destinatario el mismo monedero, pero este no tiene por qué ser el caso e inicialivas como CoinJoin intentan echar por tierra ese principio. Por tanto tú como destinatario no deberías asumir que las direcciones anteriores pertenecen a la misma persona, y a la hora de devolver dinero deberías preguntar por una dirección nueva, no usar una de las anteriores.
xaxuke (OP)
Sr. Member
****
Offline Offline

Activity: 285
Merit: 250


View Profile
November 04, 2013, 07:14:36 PM
Last edit: November 04, 2013, 07:28:38 PM by xaxuke
 #5

Gracias por la info.

Pero entonces, ¿Cómo hace Satoshidice para ingresar el dinero a la misma cuenta que se lo envió? ¿Cómo sabe desde qué cuenta se le ha enviado, si no se puede saber seguro?

Es posible que cada vez que entres y pongas tu cuenta bitcoin, el sistema genere n cuentas asociadas a tu usuario? Así si recibo en esa cuenta, sólo puede ser de un único usuario, no?

Gracias
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
November 04, 2013, 07:28:41 PM
 #6

Pero entonces, ¿Cómo hace Satoshidice para ingresar el dinero a la misma cuenta que se lo envió? ¿Cómo sabe desde qué cuenta se le ha enviado, si no se puede saber seguro?

SD envía los premios a alguna de las direcciones de la transacción anterior. Si tú no haces cosas raras como CoinJoin y no envías desde un wallet online, el premio te llega seguro. De hecho ellos mismos te avisan:

Quote
Important Notice

Only use wallets that allow you to receive Bitcoin from the same address you sent from. If you're not sure, test by sending a bet for the minimum amount. If you get nothing back, then your wallet is not compatible. Note that some bets may require one confirmation before the win/loss value is sent back.

Ya sé que dicen "from" pero está mal dicho (decirlo bien queda pedante y "no vende").
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!