18:如何体面的插队?

微信公号:辉光日新i(hgrx2017);

已进行数字签名版权保护;

转载请注明出处。

孙宁辉0026篇原创

当我见到小明时,他已昏睡在桌子上,头上还落着几片花瓣。

喂,醒醒!不是约好今晚陪女朋友看电影吗,还不快准备一下?

小明揉揉眼说道:我从昨天就开始准备了,不但买好了花,还给她转了一些常常念叨的比特币想来个惊喜。

可是你看,小明拿起头上的花瓣说:我等得花儿都谢了也没见确认到账!

我惊讶地问:你转账的时候出矿工费了吗?等多久啦?

小明无力地回道:还要给矿工费啊?都快等一天了,为什么比特币转个账这么慢呀?!

好吧,看来要好好地说道一下了,免得耽误你大事。

关于区块

“区块”就像是一个集装箱,它里面装满了交易记录。你给女朋友转账比特币就是一笔交易记录,也会被永久记录在区块(集装箱)里。

实际上我们平时所说的“区块链”并不是像链条一样延伸开来,而是像由区块堆叠起来的、高度不断增加的高塔。

所谓“块的高度”,就是指这个区块距创世区块(一楼)的高度。

而一个块的深度,则是指这个区块距当前最新区块的距离。

图片来自《精通比特币》

交易信息的优先级

不要以为只要是交易信息就可以一拥而上地挤进区块(集装箱),负责装箱的矿工可是有着一系列的挑选规则。

当交易信息的大军瞬间涌入矿工节点时,会被安排到内存池中等待分配,有点像堆在仓库的包裹等待被挑捡装箱。

负责装箱的矿工节点(实际为程序)会根据设定的优先级来区分先后,以装满一个新区块(集装箱)。

那么这个优先级的标准是什么呢?

优先级=交易金额×排队时间÷交易信息大小。

交易金额,因为比特币可以分割到小数点后八位的特性,所以交易金额可不是1比特币,而是1聪(即1个比特币的1亿分之一)。

金额越大越优先,这个我们都懂的。

排队时间,即交易的“块龄”,就是该交易记录在内存池(仓库)中等待被记录(装箱)所经历过的区块数。

比如,一个交易记录被放到内存池中等待装箱,这时它的块龄为0。

如果眼巴巴看着50个区块(集装箱)都被填装好并放上高塔,这个倒霉蛋还停在原地,那么它的块龄就涨到50了。

交易信息大小,记录交易信息的字节数,单位是byte(比特)。因为每笔交易是不一样的,所以交易信息的大小也就不同。

小明转账给女朋友的交易比较简单,交易信息大概在250bytes;如果是小明的老板用比特币给员工发工资,那这笔交易信息可就大多了。

每笔交易都想成为“较高优先级”,但这需要满足几个条件:

交易金额大于1个比特币(1亿聪);

块龄为144个区块(1天时间);

交易信息在250bytes以上。

为什么大家都愿意争抢“较高优先级”的身份呢?

这是因为在区块(集装箱)中,专门预留了50k字节的空间给“较高优先级”的交易,即便没有矿工费也会被优先处理。

其余的交易信息,会被矿工节点按照“每千字节矿工费”的高低来排序----价高者优待嘛。

假如这个时间段里,区块(集装箱)里还有剩余的空间,才会收纳那些不给矿工费的交易。

之间提到的那个块龄为50的倒霉蛋,就是苦等了50个集装箱都没遇到这样的好事。

一个区块(集装箱)的大小为1M,虽然看着感觉不大,但它可以装下2000多笔交易呢。

当一个区块(集装箱)被装满后,内存池(仓库)中剩下的交易就等候下一个区块(集装箱)来排序装箱。

整个过程就是如此重复着。

矿工费的价值

我看了一眼小明,继续说道:剩下的那些普通的、没有矿工费的交易,很容易被一次次地无视在区块之外。

“哦,原来给不给小费的差距竟然这么大呀!”小明终于明白过来了。

不过如果对交易确认的时间不敏感,也可以多等些时间。

等待时间越长,交易记录的“块龄”也就越大,优先值也随之增加。一旦满足了优先级,就会被免费装进区块里啦。

得了吧,还是女朋友重要!

我这就重新转账,再多出点矿工费,哼!

……咦?原来10分钟前交易已经确认了呀,太好了!

小明兴奋地照了下镜子冲我说:帮我关门啊哥!

随即一阵风地没影了。

我理了一下被吹乱的头发,感叹道:

爱情的力量果然强大!

参考资料:

《精通比特币》Andreas M Antonopoulos

这篇文章的PRESS.one 签名:

一己之谈,仅供参考。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721A1AGCZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券