交易被堵?试试这几种办法

12月初的时候,比特币价格爆涨,我并没有打算卖出,而且把币转到冷钱包,准备领BTG糖果给自己发个年终奖。行情太好也很烦人,比特币的交易费也是高得让人无法接受,转到冷钱包的交易就花了我0.0027 BTC,为了安全地领取糖果,这几百元也就忍了。

但另外一件发币的事情就有点让人发狂了,因为以前说起过《金炜搞了一件大事》,现在联合挖矿的规模不断扩大,每10天要给200多人发币,工作量可不轻。金老板整天要处理场地、机器、供电等事务,不堪重负,把发币的重任交给我来办。

我写的C#发币程序已经更新到了2.2版本,基本原理并不复杂,就是用BitcoinLib调用Bitcoin Core的RPC接口,根据每人参与的份额把所有的发币操作放在一笔交易中,这样不仅发币效率大大提高(1分钟之内搞定),还节省了大笔的手续费。

以这笔交易为例(txid为7ae1fd5dc58bbeb7680d2d31931a15408cfb1e2898fca4b6eaf348e5d830a8b2),同时给100多人发币,手续费只用了0.0003 BTC,平均每人手续费为0.000003 BTC,还不到1元钱。

不过这种幸福的日子没过多久,比特币的区块链严重拥堵,12月16日发出的这笔交易(txid为d7028391bbb41415ed1c837a1eb8e03b3583cbd22486529dc2d1890327bb903f)仍按往常一样将手续费设为0.0003 BTC,所有的矿池都拒绝受理,至今仍为零确认。

这笔交易不仅堵在比特币网络里,更是堵在我的心头,不除之不快。

交易加速的几种方法

这种事情当然不能用X度了,我直接用google,关键词用“transaction stuck”,最权威的一篇贴子在bitcointalk.org上,请科学上网访问这个网址:

https://bitcointalk.org/index.php?topic=1802212.0

交易被堵住的最主要原因就是手续费设置得太低,矿池是逐利的,优先挑选高额手续费的交易打包,而行情火爆,你的交易可能永远排在队伍的最末尾,也就是永远无法被打包。

1)等待

如果你不会一些高级操作,就只能等待了,如果运气特别好,几天后可能会被确认。或者,过了很久,让整个比特币网络忘记了你的这笔交易,你可以重新发起一笔新的交易。不过,我的那笔交易等了10多天,没看到任何被确认的迹象,也没看到被清除的可能性。

2)找矿池加速

有些矿池提供交易加速的服务,比如 https://pool.viabtc.com/tools/txaccelerator,但免费加速的名额非常有限,收费服务大概按每KB支付0.01 BTC计算,像我们的5000字节的交易,大概要花0.05 BTC,不知道最近加速服务的行情是不是也上涨了?

3)Replace-By-Fee (RBF)

这种办法实际上是一种双重支付(Double-Spend),后面发起的交易可以提高手续费,在Bitcoin Core 0.15版本中提供了界面可以进行这种操作,但前提是发起交易时要加上Replace-By-Fee选项。

我转币到冷钱包的那笔交易就是用的这种办法,但在调用RPC接口的程序中并没有用这个选项,这种办法也不成。

4)发起Child-Pays-For-Parent 交易

这种交易的意思是,被堵的交易作为父交易,里面的输出项是0确认的,但你有私钥可以控制,这样你可以发起一个子交易,用父交易中的一个未确认的输出当作新交易的输入,而交易费必须给足,让矿池愿意打包,打包子交易时会一起把父交易打包。

我最后采用的就是这个办法,父交易为5400字节(txid为7b02b4066ab66fc965a897a5f72414f886a8fd150245f8acf0ab1cafcb414ca4),我又发起了一个子交易为8000字节(txid为756d5afa45c5ef9a9ce2725de54f8538f4993e8156576ddeb9be34e6c45f2819),总共约13 KB,按当时交易费行情大概为0.004 BTC/KB,我应该设置手续费为0.052才是安全的。

我最后采用了0.056的手续费,再加上父交易的0.0015,总共为0.0575 BTC,看来找矿池加速也就这个价。不过,我在加速交易的同时,还完成了给200多人发币的任务。

堵了几天的交易终于被清除了,今天终于可以睡个安稳觉了。

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-12-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2102
来自专栏落花落雨不落叶

canvas画简单电路图

57811
来自专栏hbbliyong

WPF Trigger for IsSelected in a DataTemplate for ListBox items

<DataTemplate DataType="{x:Type vm:HeaderSlugViewModel}"> <vw:HeaderSlug...

4044
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3035
来自专栏杨龙飞前端

scrollto 到指定位置

2474
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6518
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4788
来自专栏码匠的流水账

聊聊NettyConnector的start及shutdown

reactor-netty-0.7.6.RELEASE-sources.jar!/reactor/ipc/netty/NettyConnector.java

841
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2496
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7

扫码关注云+社区