Transactions

創建安全架構和支付流程

  • February 2, 2014

我在這裡研究了很多有價值的問答,但我仍然有一些疑問。

案例 - 簡單的遊戲(冷靜點 - 我不是在這裡看到的創建交換的新手之一),它允許為遊戲付費。遊戲玩法的特點迫使我們為每個玩家創建虛擬平衡,並根據每日/請求創建支出。

做了什麼:

  • 編譯的 bitcoind 客戶端正在後台加密錢包上執行
  • 提前創建地址池
  • 為註冊使用者分配免費地址
  • 監聽傳入的交易/確認
  • 在第 6 次確認時,我們將交易添加到使用者餘額中

我需要指導/專業建議的地方:

  • 從持有私鑰的錢包中剝離我正在執行的 bitcoind 客戶端(我已經閱讀過它,但不知道如何正確實現它)
  • 許多指南建議在其他機器上執行 bitcoind 客戶端 - 但是如何設置兩台機器之間的安全通信(vpn?),如果有人可以訪問遊戲伺服器,那麼客戶端的位置並不重要(對嗎?)
  • 由於私鑰被儲存起來,我該如何處理付款請求?該領域有已知的做法嗎?我已閱讀<https://bitcoinsecurityproject.org/SecureApplicationArchitecture/>,但無法想像現實世界的範例/過程

最後但同樣重要的是 - 如果使用者將硬幣發送到在一個錢包中創建的私人地址,哪個私鑰應該簽署交易?正如您可能看到的,我在這裡研究後對一些“基礎知識”感到困惑:)

編輯

我找到了離線簽署交易的步驟(<http://people.xiph.org/~greg/signdemo.txt>)在現實世界的應用程序中是不是更好的方式?

如果你需要一個複雜的系統,你會做一些有趣的事情。

簡單的方法

只需將 Bitcoind 與它的walletnotifyblocknotify論點一起使用。看這裡。一旦你得到一個 walletnotify,就將它儲存在一個數據庫中,並確保 txid 是唯一的。Walletnotify在交易的整個生命週期內**多次觸發。**每個區塊檢查數據庫,尋找有 6 個確認的未處理交易。那些應該被標記為“已處理”或從數據庫中刪除。

硬核方式

如果您需要描述的功能。考慮使用實現某些比特幣特性和功能的眾多庫之一。查看Bitcoinj (java)、Libbitcoin (C++)、Gocoin (Go) 以及可以通過搜尋找到的許多 python 庫。這些庫可以使執行更精細控制和專用的節點變得更加簡單。

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