在参加DeFi的过程中,很多朋友都会遇到这种情况。明明看到了投资机会,发起了交易,但交易没有得到确认。当最终确认时,价格并不是下单时的价格。要么高买低卖。简而言之,你不能赔钱。
为什么交易没有被确认
什么是钱包科学中的气体?这个例子也可以解释为什么交易没有被确认。
如果我们把每一笔交易都当作快递,以太坊就是快递。为了赚更多的钱,快递员会优先选择单价较高的快递。如果您的快递单价太低,您只能排队等待出价较高的快递完成。
同样,在以太坊网络中,将同时有许多交易需要确认,而矿工将优先考虑天然气价格较高的交易。如果您将gasprice设置得太低,矿工将优先打包其他人的事务,并且您的事务只能一直排队。
因此,如果您认为要发起的交易很紧急,应尽量选择较高的价格,以避免交易长时间等待打包的情况。至于如何设置gasprice,请回到“钱包科学”什么是煤气?本文是关于以太坊的交易费用。
当然,即使您了解如何设置gasprice,仍然存在交易被阻止的风险。例如,等待打包的交易数量突然激增,或者一个不紧急的交易需要确认。
此时,迫切需要一种根据自身需要和实际情况加快或取消交易的方式。
什么交易受阻
我们所说的“事务阻塞”不仅是指一个事务被延迟确认,而且根据以太坊网络的特点,在事务之后排序的事务也需要等待。
这个特性很容易理解。如果把以太坊账号当成**,一旦**出口被某车堵住,后面的车就无法通过。
与币位采用的utxo系统不同,以太坊网络采用计费系统。
在现实生活中,大部分的金融系统是会计系统
让我们看看帐户系统在现实世界中是如何工作的。假设张三、李四、王武在同一家银行开户,张三存入100元,发起两笔交易,分别给李四传60元和王武传40元。
银行在处理每笔交易时,都会检查张三的账户状态:首先,检查张三的余额是否大于等于60元;如果符合条件,将60元从张三的账户转到李四的账户,第一笔交易完成;再核实张三的余额是否大于或等于40元,符合条件的,将40元从张三的账户转到王武的账户,第二笔交易完成。
如果第一笔交易未完成,银行将无法执行第二笔交易,因为银行无法保证张三的账户状态以及第一笔交易完成后余额是否足以完成第二笔交易。
同样,以太坊网络在处理某个账户的交易时,也需要获取账户的实时状态。以太坊帐户的状态由四部分组成:nonce、balance、storageroot、codehash。
Nonce表示帐户地址发出的事务数,balance表示此地址拥有的ETH(以Wei表示)的数量。另外两个和今天的主题没什么关系,我们暂时忽略它们吧。
继续用张三给李四、王武转账的例子。
张三开户后存100元。此时,张三的账户状态为nonce=0,balance=100;
第一笔交易后,张三的账户状态为nonce=1,余额=40;
第二笔交易后,张三的账户状态为nonce=2,balance=0。
发送事务时,nonce成为事务信息的一部分,表示当前事务是帐户地址发送的事务数。
应该注意,事务中包含的nonce值从0开始。例如,张三发送给李四的交易,作为张三账户地址发起的第一笔交易,其当前值应记为0,而张三发送给王武的交易的当前值记为1。
矿工在处理某个账户地址的交易时,会按照当前值的先后顺序进行处理,不能跳过,即必须先处理当前值为0的交易,然后才能将当前值为1的交易打包。
如果某笔交易长时间未确认,则该账户发出的当前值大于该笔交易,剩余交易无法打包。例如,如果一个nonce等于2的交易没有被确认,那么nonce等于3、4、5,不管油价有多高,你只能排队等待。
图片来自互联网
如何摆脱贸易堵塞
虽然nonce的存在会导致以太坊的事务阻塞,但是我们也可以利用nonce的特性来解决这个问题。
以太坊网络规定一个账户地址中的每一个nonce值都是唯一的,也就是说,一个账户中一个确认交易的nonce值将只有一个nonce值0,1,2,one is x,依此类推。
但是,仅存在一个nonce X的确认事务并不意味着只能启动一个事务。在使用nonce x的事务被确认之前,我们可以使用nonce x启动许多事务。
利用这个特性,我们可以加速或取消一个事务,完美地解决事务阻塞的问题。
如上所述,由于天然气价格太低,交易还没有得到确认,所以不得不一直排队等待。
如果我们发送一个当前值相同的交易,转移金额和收款人是相同的,但是gasprice更高,矿工将选择用更高的gasprice打包新的交易。确认新事务后,原始事务将无效,因为已使用nonce。
上述操作的实质是用相同但较高的天然气价格交易代替长期未确认的原天然气价格交易,相当于加速了原有交易。
如果我们发送一个具有相同nonce值的交易,转移金额为0,收款人是他自己,但是gasprice更高,矿工将选择用更高的gasprice包装新的交易。确认新事务后,原始事务将无效,因为已使用nonce。
在这个操作中,我们将原始事务替换为发送给我们自己的事务0 Wei,这相当于取消原始事务。
但值得注意的是,无论是加速交易还是取消交易,原交易中的交易费均不会因原交易消耗网络资源而被退还。在如此高的交易成本下,建议您在发起交易时选择合理的天然气价格,尽量一步到位,少花冤枉钱。
如何使用viawallet加速/取消交易
Viawallet推出了以太坊交易加速/取消功能。当以太坊网络上的某个事务未被确认时,您可以加速或取消该事务,以减少网络拥塞的负面影响。
交易加速
1打开以太坊钱包,在包裹中找到交易。如果包中有多个交易,请找到序列号**的一个,然后单击[加速交易];
2点击【加速交易】按钮,进入加速交易页面,点击底部的【确认加速】按钮
3在弹出窗口中点击【确定】,输入安全密码,确认交易加速
4交易加速后,交易列表中会出现两条交易记录:原交易转移失败,新交易转移成功
交易取消
1打开以太坊钱包,在包裹中找到交易。如果包中有多个事务处理,请找到序列号**的一个,然后单击[取消事务处理]
2点击〖取消交易〗按钮,进入取消交易页面,点击底部的〖取消加速〗按钮
3在弹出窗口中点击【确定】,输入安全密码,确认取消交易
4交易加速后,交易列表中会出现三条交易记录:原交易转账失败、新交易转账成功、新交易收款成功(取消交易实质上是给自己发送金额为0的交易)
文章标题:【钱包科普】以太坊交易太多?加速交易帮助你摆脱困境
文章链接:https://www.btchangqing.cn/119171.html
更新时间:2020年10月12日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。