1. BSV中文网 - 最大的比特币BSV新闻资讯网站!首页
  2. BSV新闻资讯

评论5月12日Bitcoin SV网络上的用户压力测试

评论5月12日Bitcoin SV网络上的用户压力测试

背景

从5月12日起,一些用户在Bitcoin SV网络上发起了一个公开的压力测试,并且表示此压力测试将维持一周。在公开压力测试的首日,有大约200万笔低费率交易被广播至Bitcoin SV网络。这些交易中大多数交易的费率都在刚好在0.25聪/字节以上,即超过了转发费率(relay fee)的默认值,这意味着这些交易可以在网络中进行顺利地传播;但是却低于交易接受费率(transaction acceptance fee),或可称为挖矿费率(mining fee)的0.5聪/字节,意味着绝大多数矿工将不会打包这些交易。这导致了交易在交易内存池不断积压,占用了高达1.7GB的内存。在此请注意,Bitcoin SV节点软件的默认内存池上限为1GB,但是许多矿池已经将他们的内存池上限大幅调高了。

yace

这次交易内存池的交易积压事件刚好发生于BTC区块奖励减半后的第一天,减半后有许多BTC矿工转移至了BSV,使得此前的BSV矿工的算力占比被稀释。我们推断出这一点是因为很明显,在5月11日后,BSV网络上出现了许多1MB的区块,说明这些从BTC转移过来的矿工依然使用着BTC挖矿的参数设置。在此情况下,一个我们先前知道的执行0.25聪/字节的交易接受费率的矿池——Mempool由于算力占比下降,在5月11日之后的日子只挖出了不到1%的区块,因此无法凭他们一己之力处理完所有积压的交易。最后,5月12日内存池积压的交易由TAAL清空,并挖出了一个309MB的大型区块,创造了新的世界记录。

网络影响

Bitcoin SV节点团队在主网上运行了许多bitcoind程序实例来监控网络状态。我们在比特币全节点(bitcoin daemons)和许多矿工身上看到的情况十分令人鼓舞。在整个交易积压事件过程中,Bitcoin SV节点软件始终在操作范围内运行性能良好。一些内存池默认为1GB的程序实例没有保留所有的交易,他们也无需这样做,但是可以看到他们在触及1GB上限的时候并没有降速。我们对这一现象并不意外,因为此次事件中出现的交易负载量比BSV扩容测试网(STN)上的每日负载低很多。

究意发生了什么?
——转发费率 VS 交易接受费率

我们必须要了解比特币节点软件中两种不同的可设置费率:

转发费率(relay fee):此费率决定了一个矿工是否接受这个交易进入内存池并向其他矿工广播此交易。在Bitcoin SV节点软件中,转发费率默认设置为0.25聪/字节。

交易接受费率/挖矿费率(transaction acceptance (mining) fee):此费率决定了矿池是否接受这个交易并将其打包进入自己正在挖矿的区块中,交易接受费率默认设置为0.5聪/字节。

设想一下,如果大多数矿工将转发费率和交易接受费率都设置为1聪/字节,这时有一个矿工愿意提供一个更低的费率——0.8聪/字节,矿工当然可以这样做,但是作为想利用这个低费率的比特币用户,你必须要注意以下两点:

由于其他矿工将会忽略这类低费率的交易,他们将无法检测出之后的双花交易,因此你将失去双花保护;

由于你的交易将不会被其他矿工转发(因为0.8聪/字节的转发费率低于其他矿工设置的1聪/字节的转发费率),所以如果要让愿意接受低费率的矿工得到此交易,你就必须得找到这个矿工的节点,并且使用比特币的点对点协议直接把交易发送至这个节点。

将这两种费率区别开并且在它们中间设定一个差额,我们就可以让费率竞争成为可能。与此同时,任何矿工都可以把交易接受费率调至与转发费率一样低,这时交易依然会被完全传播;矿工也可以随时调低转发费率以便抢占市场,但是他们必须知晓这些交易只能由自己打包,而且必须要有一个能够从内存池清空低费率交易的计划,比如打包这些交易进入区块。

但是,如果没有任何一个矿工打包这些低费率交易,将会出现什么情况?会不会这些交易堆积如山直至节点内存不足?

不会的!因为Bitcoin SV节点软件能够优雅地处理这种情况:当交易内存池触及配置的内存上限时,软件将逐出低费率交易,给新的交易腾出空间。这不会使矿工付出多余成本,因此他们可以一直维持这种状态,同时仍然能够接受符合他们费率要求的所有交易。这与BTC上交易拥堵时的情况截然不同,尤其是以下这一关键点:BSV并不会推动交易手续费上升,而是由矿工去设置费率的下限。在真正的比特币世界里,竞争将驱动价格下降,而不是让交易内存池拥堵,而且用户应该始终有把握用已知的费率发出一笔可被网络接受的交易。这可能会创造一个费率市场,鼓励低费率的交易通过CPFP(Child Pays for Parent)来提升他们的交易手续费,但是费率的提升有一个已知上限,这与BTC上的费率市场是具有本质差异的,

内存池具有内存上限值仅仅是因为最好不存在回退选择,但这并不意味着这个上限会被触及。内存上限被触及将是极其罕见的情况,原因如下:

矿工通常会有很大的内存池,目前大多数矿工都将内存池设置为至少8GB,并且在必要的情况下,他们也能相对轻易地实时提升内存容量。

如果你是一个交易发送者,你肯定希望能使用如Merchant API这类矿工服务来确定你发出的交易需要支付多少费用,不然你可能会面临交易卡在交易内存池数天或者数星期的风险,这时你只能使用CPFP支付来把交易费推高超过费率最低标准,除此之外,你对这笔资产将无能为力。一旦“费率发现”的操作普及起来或者可以被自动执行,我们应该就不会再看到此类交易在内存池压积的现象了。届时,低费率的交易一定是用户人为操作试图进行市场测试或用户不在意交易确认时长才会出现,而不是系统错误导致的。

内存池默认对一笔交易最长的保留时间为2周(14天),因此内存池不会持续被交易填满。

在交易内存池过满的情况下,总会出现某个矿工愿意将内存池里的交易清空,就如同TAAL在5月12日挖出创纪录的309MB区块那样。

矿工们永远可以强硬地提高转发费率或拒绝所有低于他们挖矿费率的交易。虽然我们认为矿工并不愿意这样做,但是如果矿工认为有人在试图用大量交易填满他们的内存池以逼他们降低费率,他们就极有可能反其道而行之,通过提高费率来向攻击者示范打包哪些交易完全是矿工的自由。

这一次,为什么矿工要干预?

鉴于Bitcoin SV节点软件终归可以妥善地处理各类事务,你可能会提出疑问:为什么这次矿工不干脆放任内存池积压呢?Mempool应该可以最终将这些交易打包的,因为他们执行着0.25聪/字节的挖矿费率。然而,此次矿工进行干预是因为一些BSV应用服务开始报错,于是TAAL决定将内存池清空。另外,BTC减半使很多BTC矿工开始关注BSV,这时也是一个矿工展示自身实力的好时机。

此外,矿工们也认识到逐渐将转发费率和交易接受费率区分开,并且调整用户行为,将会不可避免地带来“成长之痛”。在比特币用户(尤其是交易量大的用户)能够适应符合中本聪愿景的网络交互模式之前,必然还会发生一些小插曲,而矿工们则不希望比特币网络服务会遭受不必要的中断。随着BSV生态系统进一步专业化,我们期待矿工们都能够依据以下原则更强硬地表明立场:“如果你维护着一个内存池,那么你需要确保自己能够处理好它。虽然我能够做到,但是我没有义务照顾你的内存池。”

【免责声明】本文仅代表作者本人观点,与本站无关。网站对文中关于比特币,BSV,比特币SV,bitcoinsv等观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何保证。请读者仅作参考,特此声明!转载请注明出处:https://www.bsvers.com/3381.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

QR code