每個地址的比特幣密碼
我需要一個系統,我需要在其中創建
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-cli sendfrom
) 並為此,為什麼?你為什麼不直接在網站上改變他們的餘額,然後把硬幣留在那兒呢?無需進行將代幣轉移給您的實際交易,只需在內部進行更改即可。
我們需要
unlock the wallet by walletpassphrase
先做事務。所以,會有only 1 password which is assigned to the wallet but not every address
.不,這不是比特幣核心、地址或賬戶的工作方式。賬戶不是錢包。所有賬戶的所有地址都屬於同一個錢包。除非您使用的是 Bitcoin Core 0.15+ 並啟用了多錢包,否則您在 Bitcoin Core 中僅使用一個錢包。因此,只有一個密碼可以使用
walletpassphrase
,它可以解鎖整個錢包,其中包括您在網站上提供的所有地址。這是正確的方法嗎?
不它不是。
正確的方法是維護一個包含使用者帳戶、關聯地址和帳戶餘額的單獨數據庫。當您在內部轉移硬幣(即從一個使用者到另一個使用者或從一個使用者到您)時,更新該數據庫中的餘額而不是進行比特幣交易。當您想向外部發送硬幣(即使用者取款)時,您可以從比特幣核心錢包發送並更新您自己的數據庫。發送時,只需使用
sendtoaddress
. 不要使用 Bitcoin Core 的賬戶系統,也不要試圖讓它從某些地址發送。如果使用者需要輸入他的
custom password
然後處理交易,這可能嗎?不,正如我上面解釋的那樣,這不是它的工作原理。