¿Qué opciones tengo para evitar el límite de brecha de API? estoy usando claves xpub

Estoy creando una aplicación y el diseño es que la "página de bienvenida" tiene un código qr que permite al usuario comprar una aplicación de un solo uso.

Blockchain.info convenientemente le permite usar xpub para generar direcciones, sin embargo, sus documentos mencionan bip 44 y el "límite de brecha"... Esto es instantáneamente un problema como puedo imaginar, digamos 30 usuarios que van simultáneamente a la aplicación (más De manera realista, 30 usuarios que van a la aplicación por debajo de la cantidad de tiempo que le toma a un solo usuario comprar), a 20 se les presentarán direcciones de bitcoin para comprar, 10 no lo harán debido a los errores de límite de brecha de lanzamiento de API.

¿Qué opciones tengo para sortear esto?

Otros me han sugerido que solo genere manualmente un montón de claves privadas y no use xpub, pero tener que consolidar manualmente todas esas transacciones individuales por dirección suena como una pesadilla absoluta que me gustaría evitar.

ACTUALIZAR

¿Hay alguna forma de reutilizar la misma dirección cada vez, pero adjuntarle un guid para que cuando vea el txn transmitido, pueda vincularlo con la sesión de un usuario determinado? Esto es realmente todo lo que necesito. No necesito xpub. Solo necesito una forma de identificar que el usuario A y el usuario B están viendo la página de bienvenida, el usuario A no paga, el usuario B sí, el usuario B tiene acceso automáticamente, el usuario A no. .

@pebwindkraft lamentablemente esa publicación no ofrece ningún tipo de solución o sugerencia.
¿ Usar github.com/bitcoin/bips/blob/master/… ? ¿Necesitas una implementación?

Respuestas (2)

Problemas relacionados con el límite de brecha como se resumen en esta publicación de blog . Básicamente tienes pocas opciones.

  • Use billeteras como electrum para aumentar la configuración del límite de brecha
  • Envíe automáticamente una pequeña cantidad de fondos a la vigésima dirección no demandada para que todo siga funcionando. Esto lo hacen servicios como blockonomics
  • Siga generando una nueva dirección sin preocuparse por el límite de la brecha. Más tarde, puede generar todas las claves privadas usando xprv y barrer los fondos de todas las claves privadas.
me pueden dar mas informacion sobre la 3ra opcion?

Aquí está mi solución.

Cuando se alcance el límite de brecha, agregue una cantidad de satoshi aleatoria y única a la cantidad total de bitcoin y asóciela con el usuario.

Por ejemplo, si el precio de su producto es BTC 0.001, genere una cantidad como 0.00100001 para el usuario A, 0.00100002 para el usuario B, ambos usando la misma dirección cuando se alcance la brecha.

Ahora, para el usuario A, utiliza la API de recepción de Blockchain.info. En la base de datos, registra el usuario A, el precio y la dirección.

Ahora, en el caso del usuario B, utiliza la API de actualización de saldo. En la base de datos, también registra el usuario B, el precio y la dirección.

Entonces, cuando reciba la notificación, puede verificar qué usuario realizó el pago al verificar el monto pagado.

Esta no es una solución. Puede hacer un desastre. no debe dar una dirección a dos usuarios al mismo tiempo y esperar si uno de ellos envía la cantidad. ¡¿Qué tal una vez que dos de ellos enviaron la cantidad?! Esa no es una pequeña garantía. Ese es un defecto muy grande de este método.
El primer usuario envía dinero y regresa *ok*para que le devuelvan la llamada. El segundo usuario envía dinero y la billetera no devuelve la llamada porque regresó *ok*a esa dirección antes. así que ya no monitorea. ¡Significa que ni siquiera puedes saber que el segundo usuario pagó!
Otra solución mejor para esto, puede usar la notificación "Actualización de saldo".
Esperar más devoluciones de llamada después de que uno pagó es malo. Tal vez reciba la primera devolución de llamada de confirmación para el segundo usuario en las 48 horas. Balance Update no es una solución para el límite de brecha. Parece que las billeteras HD no son para comerciantes. Tienen un gran defecto para las tiendas en línea y no pueden manejar tiendas en línea grandes o incluso pequeñas.
La garantía pequeña o grande no importa. ambos son iguales a un sistema defectuoso.