非官方 Qubic 服务集成指南
通过完整节点、远程节点、存档服务器或 API,将 Qubic 集成到现有服务中,具备不同的控制和复杂性。
Qsilver · 2024 年 2 月 17 日
介绍
将 Qubic 集成到现有服务中可以通过四种主要方式完成,每种方式提供不同级别的控制和复杂性:
- 运行完整节点:直接访问内存中的数据以进行操作。
- 运行远程节点:查询公共完整节点以获取操作所需的数据。
- 运行存档服务器:构建所有 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上关注我们,并将我们的博客加入书签。
← 上一页
下一页 →