在前几期中,我们介绍了 Eden Network,这一期我们为科学家介绍如何使用 Eden Bundle 来进行交易。
在之前的几期中,我们介绍了 Eden。直接使用 Eden RPC 进行交易有以下几个好处:
对于科学家来说,可以使用 Eden Bundle 进行交易,有以下好处:
Eden Bundle 的代码逻辑和常规的机器人差不多。首先是订阅 RPC 推送新的区块。这样当新的区块产生时,机器人代码会被自动执行。常见的使用 provider.on
或者 while
。
使用 provider.on
消耗的计算资源少,RPC 也用的更少,但是延迟会大概高一倍。如果不是自建 RPC,或者 RPC 调用有次数限制的科学家,推荐使用 provider.on
。while
消耗的资源更多,但是延迟更低。在一些出块快的链,例如 BSC,这两种方法之间可能会差一个区块。
处理好新区块的触发机制后,便是主程序的编写。相信科学家们已经很熟悉 Provider
,Wallet
,Signer
的初始化了。但需要注意的是在 Eden Bundle 中,我们需要提供两个密钥。一个是我们主账户的密钥,所有的交易都发生在这个主账户中。主账户拥用交易所需要的资金。另一个密钥对应的账户负责对交易的担保。
我们前几期介绍过矿工是如何选择交易进行打包的。矿工会倾向于选择手续费更高的交易进行打包。但是根据 Eden Bundle 的特性,矿工是无法得知每个 Bundle 的具体手续费。只有当矿工执行 Bundle 之后,才能知道具体手续费是多少。担保账户的作用就是方便矿工选择 Bundle。如果担保者过去担保的 Bundle 都有很高的手续费,矿工会优先选择这个担保者担保的 Bundle。
在这之后便是大家熟悉的机器人编写环节了。这部分包含合约 ABI,构建合约调用数据,编码合约调用数据,构建交易数据,构建 Bundle,签名 Bundle,模拟运行 Bundle,提交 Bundle 至主网,处理 Bundle 执行状态。
编写完主程序,测试网跑通之后,我们还可以做以下优化来保证 Bundle 被矿工打包: