Transactions
創建安全架構和支付流程
我在這裡研究了很多有價值的問答,但我仍然有一些疑問。
案例 - 簡單的遊戲(冷靜點 - 我不是在這裡看到的創建交換的新手之一),它允許為遊戲付費。遊戲玩法的特點迫使我們為每個玩家創建虛擬平衡,並根據每日/請求創建支出。
做了什麼:
- 編譯的 bitcoind 客戶端正在後台加密錢包上執行
- 提前創建地址池
- 為註冊使用者分配免費地址
- 監聽傳入的交易/確認
- 在第 6 次確認時,我們將交易添加到使用者餘額中
我需要指導/專業建議的地方:
- 從持有私鑰的錢包中剝離我正在執行的 bitcoind 客戶端(我已經閱讀過它,但不知道如何正確實現它)
- 許多指南建議在其他機器上執行 bitcoind 客戶端 - 但是如何設置兩台機器之間的安全通信(vpn?),如果有人可以訪問遊戲伺服器,那麼客戶端的位置並不重要(對嗎?)
- 由於私鑰被儲存起來,我該如何處理付款請求?該領域有已知的做法嗎?我已閱讀<https://bitcoinsecurityproject.org/SecureApplicationArchitecture/>,但無法想像現實世界的範例/過程
最後但同樣重要的是 - 如果使用者將硬幣發送到在一個錢包中創建的私人地址,哪個私鑰應該簽署交易?正如您可能看到的,我在這裡研究後對一些“基礎知識”感到困惑:)
編輯
我找到了離線簽署交易的步驟(<http://people.xiph.org/~greg/signdemo.txt>)在現實世界的應用程序中是不是更好的方式?
如果你需要一個複雜的系統,你會做一些有趣的事情。
簡單的方法
只需將 Bitcoind 與它的
walletnotify
和blocknotify
論點一起使用。看這裡。一旦你得到一個 walletnotify,就將它儲存在一個數據庫中,並確保 txid 是唯一的。Walletnotify在交易的整個生命週期內**多次觸發。**每個區塊檢查數據庫,尋找有 6 個確認的未處理交易。那些應該被標記為“已處理”或從數據庫中刪除。硬核方式
如果您需要描述的功能。考慮使用實現某些比特幣特性和功能的眾多庫之一。查看Bitcoinj (java)、Libbitcoin (C++)、Gocoin (Go) 以及可以通過搜尋找到的許多 python 庫。這些庫可以使執行更精細控制和專用的節點變得更加簡單。