用 dfuse `transaction_lifecycle` 端点跟踪任何交易,包括延期交易

用 dfuse  端点跟踪任何交易,包括延期交易.png

Source

跟踪交易的生命周期对于任何应用程序来说都非常重要,确保将任何状态更改提交到区块链。 dfuse 是唯一提供如此强大生命周期的平台,包括跟踪延期交易的整个生命周期的能力,是 dfuse 独有的功能。

点击查看视频



文字转录:

哇!那是我的头发。好像自从主网上线以来,它就像… >
今天的视频是关于我们提供的生命周期端点。这个很了不起,也是一个让 dfuse 独特的地方。它是一个能给你交易的完整生命周期的端点 >
什么意思呢? >
我们在之前的视频中谈到了当您发送交易时,它可以入块,变成了不可逆的,或者它可以因某种因素不入块。有些情况使它不会被落实。好,那你会想去知道它怎么回事。当您查询 dfuse 平台的transaction_lifecycle端点时,我们会告诉你交易是否入块。它被执行了吗?还是它失败了?是以哪种形式失败的?softfail 还是 hardfail?我们会给你失败的踪迹。我们提供所有堆栈痕迹。 >
我们还给你控制台输出。合约的开发者以可加上 print 来获取它,dfuse 也是唯一可以给出控制台输出的平台。这样你就可以在 prod 中做调试。 …但不要那样做,先在测试网上做测试 >
但另一个很牛的是它会跟踪延期交易的整个生命周期。这绝对是独一无二的。就是说如果你的延期交易进入区块链,比如它是被推迟了5天…Lifecycle 会标示出来尚未执行的交易。说明它是不是入块了。它可以以某种形式入了块,但还在等待。它在区块链的存储空间中等待执行。但是很多事情都可能发生在这个等待的过程中。它可以被取消,被执行,可以过期。如果它们最终被执行了,那么你需要知道。那就查询生命周期端点,我们会告诉你:"这个交易,在这个块中被延迟,现在这个块中被执行。"但那也可能会改变,记得吗?因为有微分叉。因此,如果你进行多次查询,就可以了解到它的状态。在哪个块中被执行,相关的最新区块, 或者它也会表明哪个是不可逆的,执行是不是可逆的、创建是不是可逆的,因为他是有这两个过程的。 >
还有可能发生别的,它可以被取消。如果你在系统合约上调用 canceldelay 操作,你可取消正在进行中的交易。"正在进行"就是说它被存储在链上等待它的延迟到期然后去执行。那如果你取消了它,你就会收到另一个生命周期事件。你会看到他被创建然后被取消了。因为它被取消了,但是取消也可能是分叉造成的,所以你得有这个信息。如果你正在查询生命周期,同时有个延迟交易被取消了,你会看到交易本身,在什么时候被延期,是否进入过不可逆状态。然后还能看到取消操作和它是否是不可逆的,或者被切换为执行操作。那也是有可能的。 >
因此,通过查询生命周期端点,你会有延迟交易的所有状态,也可以看到普通交易的生命周期,推送和执行,以及不可逆性。最后还能看到过期状态。即使在延迟通过后,比如5秒之后,没有节点运行它(我记得的好像有一个时间限制什么的)10分钟。如果没人运行它,它到期了,那么它将被清除出区块链。这你得知道如果你的交易刚刚过期,没有人接受运行它。大多是情况下是该交易的节点执行失败或主观拒绝了它。 >
那,我觉得这介绍的差不多了。 transaction_lifecycle端点,dfuse平台的独特功能。dfuse 平台是唯一跟踪延期交易的。如果你上 eosq.app,你会发现它显示很多细化的信息。 如果你找一个延迟交易,你可以同时找到上一个创建它的交易还有谁取消了它,谁执行了它, 中间遇到了哪些障碍。eosq 实际上是展示 dfuse 平台有多强大的例子。网址就是 eosq.app,我们的区块浏览器。后端由 dfuse 支持, eosq 只是个前端。 >
如果您有任何疑问,请加入我们的电报群:dfuse API。我们一起度过美好时光,我希望你们都能够起步,并享受在 EOS 上做开发。

发布了76 篇原创文章 · 获赞 2 · 访问量 9860

猜你喜欢

转载自blog.csdn.net/weixin_43891115/article/details/90454666