BTC交易费用计算

交易是比特币系统中最重要的部分,对交易细节的把握可以让你在写代码的过程中避免掉坑。UTXO交易细节说明:

交易构成

开头是一个4字节的版本号,标记这笔交易的结构是什么版本;随后是一个1~9字节的可变长整数,标识这笔交易中输入的个数;后面跟着一个数组,多个交易输入按顺序排列;接着是一个可变长整数,标识交易有多少输出,后面跟着具体的交易输出;最后是一个4字节的nLocktime,标记交易的时间锁。

对于交易输入的结构:

开头是一个32字节的交易哈希和一个4字节的序号,表达交易链条,指示这笔交易输入来自之前哪笔交易的第几个输出;接着是一个可变长整数,表示解锁脚本的长度,后面跟着具体的解锁脚本;最后是4字节的nSequence。对于交易输出的结构:开头是一个8字节整数,表示这笔交易输出(UTXO)的金额;接着是一个可变长整数,表示锁定脚本的长度,后面跟着具体的锁定脚本。这就是一笔交易的结构,很简单,比特币系统中所有的交易都是这个样子。

普通用户能接触到的交易基本都是P2PKH(付款到公钥哈希)交易,作为开发者,操作的交易也基本全是P2PKH。因为确定了交易类型,就等于确定了解锁脚本和锁定脚本的结构。对于P2PKH的交易。解锁脚本分两部分,前面是DER格式的签名,后面跟着公钥。第一个OP_72表示签名的长度,后面的OP_33表示公钥有33字节。锁定脚本的结构也是确定的,有25字节,5个操作码加上20字节的收款方公钥哈希。

所以普通用户能发出来的最小的交易,是只有1个输入和1个输出的P2PKH交易,自下而上,计算出来交易的大小是192字节。

一笔交易,有一个输入,有一个输出,交易的大小是192字节,手续费1聪每字节,最后我支付了192聪的费用,截图里你能看到实际情况确实如此。

节点在收到交易之后,要验证这笔交易,如果交易合法且交易是标准交易,节点才会把它放入自己的内存池(mempool),并向相邻的节点(peers)传播(relay)这笔交易。最早在做压测工具的时候,为了尽可能的省钱,我需要将每笔交易输出设置的尽可能小,那就1聪好了,但是交易被拒绝了。说明:

1. 如果你在花费一笔UTXO时,需要支付的手续费超过了这个UTXO面值的1/3,那么这个UTXO就是dust;

2. 交易输出有34字节,把它作为交易输入花费掉需要148字节;

3. 得出来交易输出最小金额的公式是546乘以最小的手续费单位,手续费最少是1聪每字节,所以说最小的UTXO面值是546。




很多开发者在构造交易时注意不到546的限制,一些底层库在处理交易找零时也没有特别处理。比如说我现在有一个1000聪的UTXO,支付了800聪,找零200聪。这笔交易是合法的交易,但广播后节点会拒绝,也不会relay它,这会给开发者开来困扰。这张图是BitSV库内部的处理方法,你能看到,当交易剩余的找零小于546聪时,它会把这部分输出直接当成矿工费,以避开dust限制。当你在使用其他语言库写代码时,务必要注意这些细节。

UTXO 是构成交易的基本元素,作为开发者,这种数据结构很友好,但普通用户却难以理解它。基于余额的财务系统是非常直观的,转账发生时更新余额字段的值即可,但要注意,更新共享变量需要加锁,否则可能会读到脏数据或计算出负余额,而加锁就意味着对并发并不友好,系统难以水平扩展。

原文链接:https://card.weibo.com/article/m/show/id/2309404460655519334703?_wb_client_=1&object_id=1022%3A2309404460655519334703&extparam=lmid--4460655521998310&luicode=10000011&lfid=231522type%3D1%26t%3D10%26q%3D%23BitCoinSV%23

BTC手续费计算

首先BTC的交易手续费和交易金额是没有关系的。不要误认为交易的金额越大手续费越高;

BTC的手续费每个时间段是不一样的 它取决于你交易产生的字节数大小和当时交易池内的数据量多少;

字节数,字节数代表着你这笔交易打包的大小,单位是byte 

字节数的计算公式是 input*148+34*out+10

以下图为例:

           input的就是输入的地址数量红色部分  input=1

           out就是输出的地址数量蓝色的部分  out=2

字节数大小就是黑色的部分   也就是计算呢公式 : 1*148+34*2+10=226

字节数我们计算出来了但是怎么算手续费呢?

手续费=字节数*  X satoshis / byte

X的取值是我们自己设置的,那到底设置多少合适呢?

这个要根据当时交易池内的交易数量来定了,矿工优先打包字节费给的高的因此我们只要获取当时satoshis / byte是被优先打包的就可以;

下图为例:

红色部分代表satoshis / byte  和多少时间内被确认,我们选择最优的13satoshis / byte 那么我们最有可能的交易下一个区块就会被打包,相对的手续费也会变高;

查看地址:https://bitcoinfees.earn.com/

费率等级数据

API地址 : https://bitcoinfees.earn.com/api/v1/fees/recommended

{“fasterFee”:40,“halfHourFee”:20,“hourFee”:10}

fasterFee :最低费用(每个字节的satoshis),目前将导致最快的交易确认(通常为0到1块延迟)。最快确认

halfHourFee :最低费用(每个字节的satoshis)将在半小时内确认交易(概率为90%)。三个块内确认

hourFee :最低费用(每个字节的satoshis)将在一小时内确认交易(概率为90%)。六个块内确认

手续费 打包费用总结:

              (in*148+34*out+10)* X satoshis / byte

当然计算出来的手续费有时候比实际的差几聪原因应该是有些币币龄比较大,输入的时候我们按照148算的,其实还有些地址是相对较小的一点的,具体是多少我不确定,曾经在一个国外的博客上看到的是144,所以有时候算出来的值会差几聪的。

原文地址:https://blog.csdn.net/servletcome/article/details/81941334

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354