Actualmente ofrecemos retiros y depósitos de Bitcoin en nuestro sitio web. La API Blockchain se utiliza para manejar todas las operaciones.
El único problema es el límite de brecha de 20 direcciones de Blockchain Receive API, como se menciona aquí: http://bitcoinx.io/news/articles/blockchain-info-updates-receive-payments-api-version-to-address-edge-cases/
Ahora tenemos muchos usuarios curiosos que hacen clic en el botón de depósito de Bitcoin y se comprometen sin enviar ninguna transacción, lo que genera fácilmente hasta 20 direcciones. ¿Cuáles son algunas formas de eliminar esta limitación? Tengo pocas ideas, pero son bastante voluminosas y algunas requieren una reescritura completa del código y el reemplazo de la API Blockchain. ¿Pueden ustedes ofrecer alguna idea y/o consejo? ¿Cómo se puede resolver este problema de manera elegante y eficiente?
Sí, la brecha es un problema con la billetera HD. Blockchain hizo una publicación de blog sobre cómo trabajar con este problema. Consulte aquí: https://blog.blockchain.com/2016/06/15/receive-payments-api-update-address-gap-limits/#more-9024
Digamos que le pagan a la primera dirección, la dirección 1: la billetera buscará entre 2 y 21 direcciones para ver si hay fondos adicionales o historial de transacciones en esas direcciones. Si no encuentra nada, dejará de buscar. Entonces, si le pagan a la dirección 22, el software de la billetera no verá los fondos porque se detuvo en la 21. Sin embargo, si le pagan a la dirección 2, el software de la billetera buscará las direcciones 3-22, verá los fondos que fueron enviado a la dirección 22, y luego busque 20 adicionales más adelante (direcciones 23 - 43).
A partir del 1 de agosto de 2016, responderemos a las solicitudes de API que lo empujarían más allá del límite de brecha de 20 direcciones con un error HTTP, y no generaremos ninguna dirección nueva para su xpub hasta que detectemos un pago que cerraría la brecha por debajo de ese límite. Esto garantiza que nunca tendrá fondos inalcanzables mediante el uso de Receive Payments API V2, pero podría provocar que no genere direcciones cuando los usuarios las soliciten.
Puede llamar a la API checkgap a través del siguiente punto final:
https://api.blockchain.info/v2/receive/checkgap?xpub= {xpub}&key={apikey}
Obtendrá una respuesta JSON que se ve así:
{ "gap": 1 }
Este valor de brecha representa la diferencia entre el índice de la dirección pagada más reciente y la dirección solicitada más recientemente. Si ese valor es 20 o más, será difícil acceder a los fondos pagados a cualquier otra dirección creada hasta que las direcciones anteriores reciban los fondos.
Antes de que ocurrieran los nuevos límites de API, una forma adecuada de manejar los pagos de Bitcoin era
Después de que la nueva API introdujo límites en el número total de direcciones solicitadas, se volvió inútil desde mi punto de vista. Al menos no puedo ver cómo manejar los pagos de múltiples cuentas de usuario de manera "confiable" simultáneamente.
codificador morse
codificador morse