比特币转账手续费计算方式与步骤
浩宇洗化公司
发表于 2022-12-3 12:46:24
117
0
0
根据转账数额及钱包内的数字货币选择策略,这要有一个计算和算法。
! C8 H5 W" o) C2 _2 p4 b, u1 C
根据转账数额确定最优的转账策略。 p1 q, g; I7 Z T7 V. E T
: b( O9 y. v9 q, J# F! i2 H& |
① 如果存在某UTXO值正好等于发送金额nValue(已包含手续费nFee),则将该UTXO加入目标交易集并返回成功
② 找出账户中UTXO值小于发送金额nValue的UTXO集vValue,并将vValue中所有UTXO值求和为nTotalLower,并找出所有UTXO值大于nValue的最小值nLowestLarger,再分两种情况4 t1 r3 x4 X: g% v) d6 ?/ E
9 C& m4 l5 q; m* O& q6 p; l/ B
a.2.1:nTotalLower小于nValue,如果nLowestLarger存在,则将该值对应的pcoinLowestLarger交易加入目标交易集并返回成功,如果nLowestLarger不存在,则说明“余额”不足,返回失败+ {" ]8 w# Y- w2 Q' ^6 j
b.2.2:nTotalLower大于nValue,则使用随进逼近法(最多1000次)找出UTXO值的和nBest最接近nValue的集合vfBest,看nBest和nLowestLarger(如果存在)谁更接近nValue,则选择谁为相应的目标UTXO集,并返回成功1 H A: |" R$ S
& A- q$ K( i) C4 U
2.根据最优组合策略计算出交易的字节。
计算公式:priority=sum(input_value_in_base_units*input_age)/size_in_bytes,计算结果如果小于0.5762 B* W8 ?# [% f& t/ g% i) L, J" W, Y, { `
如果组合存在两个或以上的操作,则需要把组合内的操作分别计算相加,获得该笔交易的总的字节数量。+ d- E& j* f: [! a, K" Q( D; E
3.根据字节和当前网络最优的手续费比例得出一个默认的手续费。. E8 A9 L$ Y8 i! A1 p
获取网络上的最新的最佳交易费率标准,并以此与2相乘计算当前最优费率:
当前交易字节最佳交易费率=推荐交易手续费。8 a3 k) a& Y! Q8 y$ B1 a# s) Y
4.用户按比例自定义手续费比例。$ f6 k: l$ T9 I1 V, n' i7 D
设定推荐手续费坐标轴位置为0,优先为1,最慢为-1。滑动按钮默认位置在推荐位置。# G" U8 w' e1 x# O
, G- g e$ @) K3 D$ [) B2 O9 S) A
当用户自定义了按钮位置,则按照:5 e; J: R6 t W& Y
- U" T1 b6 Q1 U5 {. d, ^+ C5 I
推荐手续费(1+X)=用户自定义的手续费
成为第一个吐槽的人