非官方的 Qubic 服務整合指南
通過完整節點、遠程節點、存檔伺服器或 API,將 Qubic 整合到現有服務中,擁有不同的控制和複雜性。
Qsilver · 2024 年 2 月 17 日
介紹
將 Qubic 整合到現有服務中可以通過四種主要方式完成,每種方式提供不同程度的控制和複雜性:
- 運行完整節點:直接訪問內存數據以進行操作。
- 運行遠程節點:查詢公共完整節點以獲取所需的操作數據。
- 運行存檔伺服器:建立本地完整存檔以進行操作。
- 介面與 Qubic API 伺服器:最簡單的方法,但對數據可用性的控制較少。
數字越小,工作量越大,但您對數據可用性的控制越多。無論您選擇哪個層級,了解 Qubic 的關鍵差異都是至關重要的。
關於 Qubic 的重要差異
對於涉及貨幣價值的服務,Qubic 的兩個最重要的差異是:
- 即使 txid 已包含在已驗證的 tick 中,它可能沒有任何效果。
- 地址餘額可以在沒有特定交易從 A 傳輸到 B 的情況下改變,例如通過智能合約操作。
由於這些差異,Qubic 處理應基於地址餘額變化,確保智能合約的變化不會混淆邏輯。
存款處理
為了簡化存款處理,建議使用正常交易。使用智能合約進行的存款可以忽略或手動處理(需要額外收費以支付成本)。
- 遍歷每個 tick 中的所有交易,並識別屬於客戶的目標地址。
- 標記這些地址以進行餘額檢查。
- 獲取標記地址的實體信息,查看哪些地址收到了新資金。
- 更新收到新資金的地址的當前實體信息。
由於 txid 失敗或智能合約存款,餘額變化可能與交易金額不匹配。忽略 SC 存款可確保用戶即使 txid 失敗也能獲得 SC 存款的信用。
基於餘額的存款處理
這種方法可能需要更多的帶寬,但對於中等規模的服務來說是可行的,可以通過遠程節點在網絡上輪詢數十萬個地址。它確保所有存款方法都得到適當的信用,增強了用戶體驗。
- 保持每個用戶地址的最新驗證實體數據。
- 在輪詢循環中,將最新的實體數據與驗證的實體數據進行比較。
- 使用默克爾樹驗證最新的實體數據。
- 如果驗證成功,則更新驗證的實體數據,並根據總存款的差異生成存款事件。
提款處理
小量
- 獲取發送地址的驗證實體數據。
- 根據目標和金額排隊提款交易。
- 為 outgoingAmount 生成預期的實體數據及當前 outgoingAmount + 提款金額。
- 通過創建和廣播提款交易來處理隊列。
- 在指定的 tick 之後,檢查實體數據 outgoingAmount 是否已更改為預期金額。
- 如果是,則標記提款為完成,將其從隊列中移除,並更新驗證的實體數據。如果不是,則重試該過程。
中量
- 使用 SENDMANY SC 命令在單個交易中批量處理最多 25 筆提款。
- 應用與小量相同的邏輯,使用 SENDMANY 代替簡單的發送交易。
- 使用 SENDMANY 的單一地址每分鐘可實現約 100 筆提款。
大量
- 使用 sendmany 應用程序最多可發送 15,625 筆付款,約在 20 個 tick 中完成(每分鐘約 8000 筆提款)。
- sendmany 應用程序在三層扇出中使用 SENDMANY SC。付款在 .csv 文件中指定,處理以計算總金額,然後發送到特定地址。
- 一旦資金到達,它們將在三代中分發(25 x 25 x 25 筆付款)。
sendmany 存儲庫
有關 sendmany 程式的詳細資訊,請造訪存儲庫:
結論
將 Qubic 整合到現有服務中需要仔細考慮數據處理,尤其是對於貨幣交易。通過選擇適當的整合方法並了解 Qubic 的獨特方面,服務可以有效地管理不同規模的存款和提款。
閱讀 Qsilver 的「非官方」系列
要獲取最新更新,加入 Valis Discord、在 X 上關注我們,並將我們的部落格加入書籤。
← 上一頁
下一頁 →