- A+
任何创建交易的比特币服务,包括钱包,交易所,零售应用等,都必须实现动态收费。动态费用可以通过第三方费用估算服务或内置的费用估算算法来实现。如果您不确定,那就从第三方服务开始,如果您希望去除第三方依赖,您应当有设计和部署自己算法的经验。
费用估算算法根据网络能力和“竞争”交易提供的费用计算适当的费用。这些算法的范围从十分简单的(最后一个块中的平均值或中位数)到非常复杂的(统计分析)均有覆盖。他们估计必要的费用(以字节为单位),这将使得交易具有很高的可能性被选择并打包进一定数量的块内。大多数服务为用户提供高、中、低优先费用的选择。
许多钱包应用程序使用第三方服务进行费用计算。一个流行的服务是http://bitcoinfees.21.co,它提供了一个API和一个可视化图表,以satoshi / byte为单位显示了不同优先级的费用。
图表显示了10个satoshi / byte增量的费用的实时估计,以及每个范围的费用交易的预期确认时间(分钟和块数)。 对于每个收费范围(例如,61-70 satoshi /字节),两个水平栏显示过去24小时(102,975)中未确认交易的数量(1405)和交易总数,费用在该范围内。 根据图表,此时推荐的高优先费用为80 satoshi / 字节,这可能导致交易在下一个块(零块延迟)中开采。 据合理判断,一笔常规交易的大小约为226字节,因此单笔交易建议费用为18,080 satoshis(0.00018080 BTC)。
费用估算数据可以通过简单的HTTP REST API(https://bitcoinfees.21.co/api/v1/fees/recommended)来检索。
例如,在命令行中使用curl命令,运用费用估算API
$ curl https://bitcoinfees.21.co/api/v1/fees/recommended
{"fastestFee":12,"halfHourFee":12,"hourFee":8}
API通过费用估算以 satoshi per byte 的方式返回一个 JSON 对象,从而实现”最快确认“ (fastestFee),以及在三个块(halfHourFee)和六个块(hourFee)内确认。