Transactions

每個地址的比特幣密碼

  • September 29, 2017

我需要一個系統,我需要在其中創建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然後處理交易,這可能嗎?

不,正如我上面解釋的那樣,這不是它的工作原理。

引用自:https://bitcoin.stackexchange.com/questions/60092