Размещенный веб-кошелек на основе биткойн-ядра — подход к работе с ключами

Я создаю веб-сайт для своего клиента, который по сути представляет собой размещенный в Интернете кошелек.

Я собираюсь использовать биткойн-ядро и общаться с ним через его API для обработки транзакций.

Я понимаю, что могу разрешить пользователям экспортировать свои закрытые ключи и импортировать их с помощью

dumpprivkey

и

импортприватный ключ

Вопрос в том, что после того, как несколько тысяч пользователей создадут свои кошельки, файл wallet.dat на сервере станет действительно огромным. Не замедлит ли это биткойн-сервер?

Я думаю о том, чтобы поставить в очередь все запросы к биткойн-серверу и хранить там только один ключ за раз. Но это потребовало бы перезапуска сервера каждый раз и в основном делало бы каждый запрос трудоемким?

Каков правильный подход к этому?

Спасибо

Ответы (1)

Вопрос в том, что после того, как несколько тысяч пользователей создадут свои кошельки, файл wallet.dat на сервере станет действительно огромным. Не замедлит ли это биткойн-сервер?

Да, известно, что когда файл wallet.dat очень большой, это заметно замедляет работу Bitcoin Core. Однако это происходит только тогда, когда в кошельке хранятся миллионы ключей.

Вместо того, чтобы хранить все закрытые ключи в одном файле, вы можете использовать функцию мультикошелька Bitcoin Core. Эта функция позволяет вам загружать несколько файлов кошелька в Bitcoin Core, чтобы избежать проблемы со слишком большим файлом кошелька. Это также позволит каждому пользователю иметь свой собственный файл кошелька, поэтому монеты только одного пользователя фактически перемещаются при трате денег. Единственным недостатком этого является то, что для загрузки и выгрузки кошелька требуется перезапуск. После объединения PR 10740 вы сможете динамически загружать и выгружать кошельки. Обратите внимание, что одновременная загрузка многих кошельков также может быть проблематичной.

Спасибо, Андрей, за то, что указали правильное направление. Я рассмотрю это ближайшее время