我只能通过支付0.5元来取消区块链交易吗?这给DApp带来了无穷无尽的麻烦。
在生活中,欺诈很难预防。
诈骗者牢牢抓住受害者的心理活动,假装是公诉法的身份,以突破受害者的心理防线,然后任意随意任意让受害者交出自己的钱。当受害者做出反应时,诈骗者已经逃脱了。 。
作为一种应对策略,各大银行已将第二天的转账交给了账户,期间可以提取的解决方案,给予用户悔恨的余地。这种操作对于中心化银行来说并不困难,但是可以在去中心化的区块链中完成吗?
乍一看,扭转区块链上的交易就像一个幻想,但结果还可以正如鲁迅先生所说:世界上没有道路,还有更多人要去,它将成为一条道路。
事实上许多用户需要撤销区块链上的事务,因此缓慢存在一般的撤销方案,但这为用户带来的便利给DApp和DApp开发人员带来了无穷无尽的麻烦。 。
您开发的DApp是否向用户显示不正确的信息?不要急于否认它,因为它很可能会发生,而且前提是你完全没有意识到它。
自今年年初以来,已有技术团队对主流DApp进行了30多项交易可用性审计,每项审计涉及50多个定制量化指标和定性评估。然而,出乎意料的是,我们还没有遇到哪个DApp可以处理交易被取消的情况。交易是每个DApp的首要任务,但为什么会这样呢?
在我们深入研究取消的影响以及大多数DApps为什么不解决这个问题之前,您需要了解取消的内容。
什么是取消的交易?
在以太坊中,取消交易的行为是为了涵盖将使用新交易处理的交易。应该指出的是,这种取消交易的机制不是以太坊的官方标准,而是一种惯例惯例。
与已取消的交易相比,新交易通常具有以下特征:
为什么这种机制有效?由于矿工优先考虑具有较高燃料成本的交易,矿工将处理在新交易确认后将被取消的交易,即使交易早先进入矿工以存储未处理的交易。交易矿池中的信息。换句话说,取消交易的机制有点像概率游戏。
我该如何取消交易?
大多数(但不是全部)以太坊钱包可以帮助您取消交易。例如,在基于浏览器的插件Ethereum light wallet MetaMask中,您可以取消这样的事务:首先找到待处理的事务,单击以显示事务的详细信息,然后单击“取消事务”“按钮。整个操作如下:
如何在MetaMask中取消事务
PENDING(进行中)表示正在处理交易,单击交易详细信息,取消按钮表示取消交易。弹出的对话框表明取消交易需要0.08美元的燃料成本(约0.5元人民币)。点击此处的取消交易并不能保证您的原始提交交易将被100%取消。但如果取消成功,您需要支付上述燃料费用,您想尝试吗?
虽然取消交易的功能可能看起来有点浪费,但事实证明它是用户使用具有复杂功能的Dogues的必要工具,因为这些DApp中的用户习惯于仔细查看他们的交易。主动管理燃料成本。
(取消交易)这么简单明了吗?
不是这种情况
取消交易时有一个致命的问题:你的DApp。当用户参与您开发和交易的DApp时,用户的取消交易仅发生在用户和他的数字钱包之间,也就是说,您的DApp在此会话中完全不参与。
如何识别已取消的交易?
在了解取消交易的特征后,您能在下面的K线走势图中找到第四和第五笔交易的内容吗?
取消了交易示例
在理想情况下,第五笔交易将涵盖第四笔交易,这意味着第四笔交易将被取消。
第四次和第五次交易的随机数是相同的,第五次交易是:
前三个是取消机制的核心,第四个是DApp和DApp开发人员的棘手问题。
取消的交易将如何影响DApp用户体验?
由于原始事务(取消的事务)和稍后覆盖它的新事务具有不同的哈希值,并且您开发的DApp不参与创建此新事务,因此您的DApp无关。如何与这项新协议取得联系。
通常,您的DApp会认为正在处理原始事务,并始终向用户显示该进程的状态。这有点生硬。让我们用一个例子来说明这是什么。这是我们的团队在审核DApp时最近发现的一个示例:
图片中的第一笔交易已被取消
但是DApp并不知道,或者将其显示为“正在处理中”
实际上,当矿工将第一笔交易添加到交易矿池中时,第二笔交易首先得到解决,覆盖并替换它。
由于DApp无法与第二个事务建立联系,因此DApp永远不会知道第一个事务的状态是已确认还是失败。相反,DApp只会显示第一个事务正在处理中。在。
随着以太坊网络的发展,交易的取消变得越来越普遍。所以在这里我们强烈建议所有DApp开发人员构建可以处理这种情况的前端功能。
如果您正在使用可以很好地处理交易取消的DApp,请在文章末尾告诉我们
来源|黑客noon
编译|玺
编辑|颂歌
制作|区块链大本营(blockchain_camp)