Enviar bitcoins programáticamente sin ejecutar un nodo [duplicado]

¿Cómo puedo enviar bitcoins en mi aplicación web sin ejecutar el demonio en mi servidor? ¿Hay una manera de hacerlo? ¿Los terceros te permiten enviar a través de ellos?

Respuestas (3)

Sí, esto es completamente posible. Hay servicios que ejecutan API con todas las funciones que proporcionan casi todo lo que el cliente puede hacer.

http://blockchain.info/api

Hay otros procesadores comerciales que tienen una funcionalidad similar dependiendo exactamente de lo que quieras hacer también.

pero estos requieren que guardes tus claves privadas con ellos, ¿no es así?

Si de alguna manera pudiera rastrear los resultados a su disposición (que, por lo tanto, puede enviar en una transacción saliente, de hecho podría crear una transacción, firmarla y enviarla a un demonio bitcoind o blockchain.info (a través de la sendrawtransactionllamada API) para obtenerlo en la red.

El seguimiento de las salidas es la única razón por la que probablemente tenga que ejecutar un demonio. Incluso si crea una salida única para 100 BTC y luego comienza a crear transacciones a partir de esa salida, al dividir pequeñas cantidades y devolver el cambio, hace que las transacciones dependan entre sí. Tan pronto como no se valide una sola transacción (debido a un error, tarifas incompletas o un gasto doble), todas las transacciones siguientes también fallarán.

Es posible gastar bitcoins sin estar conectado a la superposición de la red, pero en algún momento tendrá que sincronizar con la red para asegurarse de que las transacciones hayan sido aceptadas y para llenar el grupo de salida para gastos futuros.

Para enviar bitcoins necesitas:

  • Clave(s) privada(s) para la(s) dirección(es) que se gastan
  • Hash de transacción + índice para cada transacción recibida previamente en aquellas direcciones cuyos fondos se utilizarán para gastar en esta transacción
  • Direcciones de Bitcoin a las que enviar, incluido el cambio de dirección si habrá cambios.

El cliente de Bitcoin.org hace todo esto elegantemente sin que el usuario necesite saber nada excepto qué dirección(es) pagar y el monto. Construir una transacción manualmente significa obtener datos de la cadena de bloques, realizar una firma criptográfica utilizando la clave privada y transmitir esa transacción a los nodos pares.

El artículo de la API Raw Transactions en Bitcoin.it Wiki describe esto con más detalle.

~~Esto se hace usando el código Javascript de Brainwallet.org~~ [Actualización: esto está inactivo, enlace eliminado]:

Ahora, si simplemente necesita enviar desde un nodo que no está en una conexión en vivo (pero tiene una cadena de bloques actual), puede hacerlo usando el cliente Armory:

Además, el cliente Electrum aparentemente se puede usar para proporcionarle la transacción sin procesar que luego podría transmitirse para gastar una moneda. Electrum utiliza un servidor de back-end que hace todo el trabajo que haría el cliente de Bitcoin.org en la construcción de la transacción.

Una vez que tenga una transacción sin procesar para transmitir, puede usar la API PushTx en blockchain.info o BrainWallet.org también le permitirá [transmitir una transacción][3].

brainwallet.org no se resuelve. hay brainwallet.io pero eso parece otra cosa