Мне нужна система, где мне нужно создать new address for every user
(личный кабинет), где они будут transfer some bitcoins
к нему и buy some products
с моего сайта.
Итак, я начал bitcoind
и через bitcoin-cli
, я сгенерировал новый адрес( bitcoin-cli getnewaddress "USEREMAILID"
) и назначил его пользователям.
Теперь пользователи будут покупать некоторые продукты на моем веб-сайте (т.е. переводить сумму со своего счета на счет компании), а затем происходит перевод, и на основе подтверждений продукт будет куплен.
Теперь мой вопрос: всякий раз, когда пользователь начинает покупать продукт, он выполняет команду ( bitcoin-cli sendfrom
), и для этого нам нужно сначала, unlock the wallet by walletpassphrase
а затем выполнить транзакцию. так, было бы only 1 password which is assigned to the wallet but not every address
.
Это правильный путь?
Если пользователю нужно ввести его custom password
, а затем обработать транзакцию, возможно ли это?
Итак, я начал
bitcoind
и черезbitcoin-cli
, я сгенерировал новый адрес(bitcoin-cli getnewaddress "USEREMAILID"
) и назначил его пользователям.
Пожалуйста, не делайте этого. Вы используете систему учетных записей в Bitcoin Core, которая устарела, немного ненадежна/имеет странное поведение и будет удалена в будущем.
Поддерживайте свою собственную систему учета вне Bitcoin Core. Просто есть база данных с адресами и связанными с ними пользователями.
Теперь мой вопрос: всякий раз, когда пользователь начинает покупать продукт, он выполняет команду (
bitcoin-cli sendfrom
), и для этого
Почему? Почему бы вам просто не изменить их баланс на сайте и оставить монеты там? Нет необходимости совершать фактические транзакции, которые перемещают монеты к вам, просто измените их внутри.
нам нужно сначала
unlock the wallet by walletpassphrase
, а затем сделать транзакцию. так, было быonly 1 password which is assigned to the wallet but not every address
.
Нет, это не то, как работает Bitcoin Core, адреса или учетные записи. Аккаунты — это не кошельки. Все адреса для всех учетных записей принадлежат одному и тому же кошельку. Если вы не используете Bitcoin Core 0.15+ и не включили использование мультикошелька, вы используете только один кошелек в Bitcoin Core. Таким образом, можно использовать только одну кодовую фразу, walletpassphrase
и она разблокирует весь кошелек, включая все адреса, которые вы указали на своем веб-сайте.
Это правильный путь?
Нет это не так.
Правильный способ — поддерживать отдельную базу данных с учетными записями пользователей, связанными адресами и балансом учетной записи. Когда вы переводите монеты внутри страны (т. е. от одного пользователя к другому или от одного пользователя к вам), обновляйте балансы в этой базе данных вместо совершения биткойн-транзакции. Если вы хотите отправить монеты извне (т.е. пользователь выводит средства), вы отправляете их из кошелька Bitcoin Core и обновляете свою собственную базу данных. Когда вы отправляете, просто используйте sendtoaddress
. Не используйте систему учетных записей Bitcoin Core и не пытайтесь сделать так, чтобы вы отправляли с определенных адресов.
Если пользователю нужно ввести его
custom password
, а затем обработать транзакцию, возможно ли это?
Нет, как я объяснил выше, это не так.