EGLD 集成指南
原文:https://docs.elrond.com/integrators/egld-integration-guide
本节提供了在为用户处理 EGLD 交易的平台中集成Elrond本地硬币 EGLD 的高级技术要求。
概述
为了使平台能够为其用户集成 EGLD 交易,以下是最低要求:
集成工作流
集成可能意味着一个自动系统,当集成者的地址是交易的发送者或接收者时,该系统解析链上的所有交易并执行不同的操作。基于此,它应该能够签署交易或内部更新用户的余额。此外,不同的东西,如热钱包,也可以集成为一个更好的代币管理和更少的 EGLD 花在燃气上。
为了对信息进行总结并将所有信息整合在一起,本节将提供一个集成示例:
1。观察小队跑步
集成者有一个观察小组(每个分片+代理上有一个观察者)在运行和同步。
2。通过 nonce 获取超级块
系统应该总是记住最后处理的随机数。在一个给定的 nonce 处理一个超级块之后,它应该移动到对应于下一个 nonce 的超级块(当可用时,如果还不存在的话)。
为了获取给定 nonce 的超级块,系统应该对<proxy-url>/hyperblock/by-nonce/<nonce>
执行 API 调用。
如果响应包含一个错误,这可能意味着 nonce 还没有在链上处理,应该在一小段等待时间后重试。
提示
区块链中的一轮设置为 6 秒,因此 nonce 应该在至少 6 秒后改变。
随机数改变检测的良好刷新间隔可以是 2 秒。
2.1。后退机制
例如,如果出现服务器问题,并且观察小组陷入困境,则必须将最新处理的随机数保存在某个地方,以便当观察小组重新联机时,系统应该从保存的随机数之后的下一个随机数继续处理。
2.2。例子
例如,当系统启动时,它应该从同一时期的一个 nonce 开始处理。假设该链在时段 5 中,并且该时段中的第一个超块随机数是 900
... -> fetched hyperblock with nonce 900 -> processed hyperblock with nonce 900 -> saved last processed nonce = 900 -> waiting 2 seconds -> fetching hyperblock with nonce 901: API error (nonce not yet processed on chain side), skip -> waiting 2 seconds -> fetching hyperblock with nonce 901: API error (nonce not yet processed on chain side), skip -> waiting 2 seconds -> fetched the hyperblock with nonce 901 -> processed hyperblock with nonce 901 -> saved last processed nonce = 901 -> waiting 2 seconds
...
警告
请记住,超级块不应该被处理两次,因为这可能会导致问题。
确保块处理和保存最后处理的 nonce 应该是原子的。
2.3。查询交易
系统获取响应并迭代每个成功的交易,并确定是否涉及来自集成器的任何地址。
3。交易处理
在步骤 2.3 中识别相关交易后(发送方或接收方是集成商的地址),集成商可以采取行动。
建议集成商在触发内部转账之前执行一些余额检查。
例如,如果接收者是集成者的地址,则集成者可以在内部存储系统上更新其余额。
提及
- 步骤 2 和 3 应该以连续的方式执行,同时总是记录最后处理的随机数,以确保没有交易被跳过。
- 也可以实现其他通常的动作,例如(不时地)将所有地址资金转移到热钱包。
成交/确认笔数
超级块只包括最终交易,因此只需要一次确认。然而,集成商可以灵活地等待任意数量的额外确认。
余额检查
有时,或者出于安全原因,在执行交易之前,集成者会想要检查一些地址的余额。这可以通过获取地址平衡端点来完成。
有用的工具和例子
Elrond SDK 或工具可用于签署交易和执行账户管理。
还有一个与上述工作流相匹配的示例,可以在Elrond的 Go SDK 上找到, erdgo 。
然而,其他 SDK 也可以用于处理帐户管理或交易签名。