Monedero web alojado basado en el núcleo de bitcoin: enfoque para el manejo de claves

Estoy creando un sitio web para mi cliente, que es esencialmente una billetera alojada basada en la web.

Voy a usar el núcleo de bitcoin y hablaré con él a través de su API para manejar las transacciones.

Entiendo que puedo permitir a los usuarios exportar sus claves privadas e importarlas usando

dumpprivkey

y

importprivkey

La pregunta es: después de que varios miles de usuarios creen sus billeteras, el archivo wallet.dat del servidor será realmente enorme. ¿Eso haría que el servidor de bitcoin fuera lento?

Estoy pensando en poner en cola todas las solicitudes en el servidor de bitcoin y almacenar allí solo una clave a la vez. Pero eso requeriría reiniciar el servidor cada vez, y básicamente haría que cada solicitud llevara mucho tiempo.

¿Cuál es el enfoque correcto para esto?

Gracias

Respuestas (1)

La pregunta es: después de que varios miles de usuarios creen sus billeteras, el archivo wallet.dat del servidor será realmente enorme. ¿Eso haría que el servidor de bitcoin fuera lento?

Sí, se sabe que cuando el archivo wallet.dat es muy grande, se ralentiza notablemente Bitcoin Core. Sin embargo, esto solo sucede cuando hay millones de claves almacenadas en la billetera.

En lugar de tener todas las claves privadas en un solo archivo, puede usar la función de billetera múltiple de Bitcoin Core. Esta característica le permite tener varios archivos de billetera cargados en Bitcoin Core, por lo que debería evitar el problema de tener un archivo de billetera demasiado grande. También permitirá que cada usuario tenga su propio archivo de billetera, por lo que solo se mueven las monedas de un usuario cuando gasta dinero. El único inconveniente de esto es que cargar y descargar una billetera requiere reiniciar. Una vez que PR 10740 se fusione, podrá cargar y descargar billeteras dinámicamente. Tenga en cuenta que tener muchas billeteras cargadas al mismo tiempo también puede ser problemático.

Gracias Andrew por señalar la dirección correcta. Voy a investigar este tiempo cercano