Hacer un seguimiento de las direcciones de depósito únicas de Bitcoin por usuario

Estoy tratando de configurar un servicio de bitcoin para mis usuarios. ¿Cómo hacen otros sitios o intercambios para realizar un seguimiento de la dirección de depósito de Bitcoin única de cada usuario? ¿Y cómo alerta la aplicación al administrador/usuario cuando un depósito se realiza correctamente después de 2 confirmaciones?

¿Qué aplicaciones pueden hacer esto? Estaba pensando en usar electrum ya que no requería descargar toda la cadena de bloques. ¿Qué otras aplicaciones hay que puedan hacer algo como administrar usuarios btc?

Respuestas (3)

Simplemente ejecute bitcoind en su servidor y luego conéctese a través de la API, aquí está la referencia: https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)

También hay bibliotecas listas (de código abierto) en varios idiomas, que puede integrar en sus propias aplicaciones.

Algunos ejemplos:

Pero su pregunta es demasiado amplia para darle una respuesta más específica, ya que debe considerar si desea mantener los fondos de los usuarios en una billetera e identificarlos por diferentes direcciones de depósito o una billetera separada con sus propias claves para cada usuario. .

En general: si no sabe exactamente lo que está haciendo, no almacene ninguna clave privada en el servidor, especialmente si desea retener los fondos de alguien.

Según tengo entendido, como proveedor de servicios de Bitcoin, al menos debe mantener un nodo completo "bien conectado", ya que no debe confiar en partes confiables para determinar el estado de la red.

IIRC, los intercambios generan nuevos pares de claves públicas/privadas cada vez para aceptar depósitos entrantes. Luego puede ver la dirección de bitcoin derivada de la clave pública para ver si se ha realizado un depósito.

Cualquier implementación de nodo completo debería poder lograr esto con la interfaz RPC-JSON. Puede especificar la cantidad mínima de confirmación requerida al filtrar los UTXO que controla. Usar un cliente SPV para brindar servicios sería increíblemente inseguro ya que filtraría información a los adversarios (como identificaciones de transacciones que podrían interesarle, etc.)

AFAIK, la mejor práctica es obtener las salidas de transacción no gastadas (UTXO) (debe realizar un seguimiento de toda la cadena de bloques) y agregar todos los valores para conocer el saldo de una dirección, ya que txid no es confiable (están sujetos a la maleabilidad de la transacción ).

Si no desea descargar la cadena de bloques completa, utilice un proveedor de servicios de billetera externa como blockchain.info, BitGo o similar. También proporcionan bibliotecas y API útiles. También te permiten organizar tu billetera con etiquetas, etc. ¡Espero que te ayude!