分类
用技术指标进行交易

固定时间交易交易教程

百度搜索‘翔云宝盒’ 了解更多不为人知的互联网掘金技术!

RTOS相对延时和绝对延时的区别

以实际代码为例说明:一个任务中,添加一个10ms系统延时,然后,在执行任务(耗时1ms左右,例子以延时代替) 。
相对延时代码:
绝对延时代码:
说明: 1. TestDelay这个延时函数仅仅用于测试(延时1ms),用于代替采集、算法、发送等耗时时间。
2. 两个代码唯一区别在于系统延时不同,一个vTaskDelay(10);,一个vTaskDelayUntil(&xLastWakeTime, 10);
固定时间交易交易教程 3. 系统时钟频率为1000,也就是上面系统延时10个滴答,即10ms。
看到代码,你想到了他们输出结果的差异吗? 来看下结果的差异:用PA0这个引脚输出的高低电平,得出延时时间。
相对延时结果:
固定时间交易交易教程 绝对延时结果: 结果为: 相对延时的周期为系统延时10ms + 执行任务1ms的时间,总共11ms时间。绝对延时的周期即为10ms时间.

换一种方式看区别

如果上面的区别还没明白,再来讲一个更容易理解的区别,通过文字 + 任务执行图来说明。
1.相对延时 先看任务执行图,按照上面代码的方式呈现: 这里会牵涉到操作系统任务切换、高优先级任务抢占等一些原理,若不了解,请转移直到了解再回来。
上电,TEST任务进入延时(阻塞)状态,此时系统执行其他就绪任务。FreeRTOS内核会周期性的检查TEST任务的阻塞是否达到,如果阻塞时间达到,则将TEST任务设置为就绪状态,如果就绪任务中TEST任务的优先级最高,则会抢占CPU,再次执行任务主体代码,不断循环。 固定时间交易交易教程
TEST任务每次系统延时都是从调用延时函数vTaskDelay()开始算起的,所以叫相对延时。
从上图可以看出: 如果执行TEST任务的过程中发生中断,或者具有更高优先级的任务抢占了,那么TEST任务执行的周期就会变长,所以使用相对延时函数vTaskDelay(),不能周期性的执行TEST任务。
2.绝对延时 代码中定义的变量xLastWakeTime,其实是用来保存上一次的系统计数器值(方便检测下一个延时时间是否到来)。
和上面相对延时程序执行图比较,可以看出,系统延时的时间包含了程序执行的时间。即时中途有中断,或更高优先级任务打断,不会影响下一次执行的时间(也就是这个周期不会变,当然,打断时间不能超过系统延时值)。
提示: 图片中添加了一段话:一般来说,程序执行时间要小于总间隔时间(10ms)。
如果打断时间太长,回来之后延时都超过了,则会立马执行程序,不会再延时(任务不会再阻塞延时)。

●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号 回复“ 加群 ”按规则加入技术交流群,回复“ 1024 ”查看更多内容。


点击“ 阅读原文 ”查看更多分享。

免责声明: 该内容由专栏作者授权发布或转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点,本站亦不保证或承诺内容真实性等。如若文章内容侵犯您的权益,请及时联系本站删除。侵权投诉联系: [email protected]

a16z:能否公平准确地评估一条链的性能?

PA观察 |2022-08-11 8:17

a16z:能否公平准确地评估一条链的性能?

本文来自 a16z ,原文作者:Joseph Bonneau,由 Odaily 星球日报译者 Katie 辜编译。

性能和可扩展性是加密领域备受讨论的挑战,与 L1 项目和 L2 解决方案有关。然而,我们没有标准化的指标或基准。数据报告的方式往往不一致且不完整,这使得准确比较项目变得困难,并常常模糊了实践中最重要的内容。

可扩展性 vs. 性能

区别很重要:如果定义正确,许多提高性能的方法根本不能提高可扩展性。一个简单的例子是使用更有效的数字签名方案,例如 BLS 签名,其大小大约是 Schnorr 或 ECDSA 签名的一半。如果比特币从 ECDSA 切换到 BLS,每个区块的交易数量可能会增加 20-30%,一夜之间性能就会提高。但我们只能这样做一次——没有比这更节省空间的签名方案可以切换(BLS 签名也可以聚合从而节省更多空间,但这是另一个一次性的技巧)。

理解这种区别还有助于避免在语句中发现的常见类别错误,比如“区块链 X 是高度可扩展的,它每秒可以处理 Y 个交易”。第二种说法可能令人印象深刻,但它是一个性能指标,而不是可扩展性指标,并不是指通过添加资源来提高性能的能力。

可扩展性本质上要求利用并行性。在区块链空间中,L1 扩展似乎需要 分叉 或类似于分叉的东西。分叉的基本概念是将状态分割成块,以便不同的验证器可以独立处理,与可扩展性的定义非常匹配。在 L2 还有更多的选项,允许添加并行处理,包括链下通道、Rollup 服务器和侧链。

延迟 vs. 吞吐量

通常,区块链系统性能是通过两个维度进行评估的,即延迟和吞吐量。延迟度量确认单个交易的速度,而吞吐量度量随着时间的推移交易的总速率。这些轴既适用于 L1 和 L2 系统,也适用于许多其他类型的计算机系统(如数据库查询引擎和 web 服务器)。

测量延迟的挑战

以验证器为中心的方法在实践中忽略了一些重要的事情。首先,它忽略了点对点网络上的延迟(从客户端广播一个交易到大多数节点听到它需要多长时间?)和客户端延迟(在客户端的本地机器上准备一个交易需要多长时间?)客户端延迟可能性非常小,对于签署以太坊支付等简单的交易来说是可以预测的,但对于更复杂的情况,如证明屏蔽的 Zcash 交易是正确的,则可能非常重要。

延迟是一个分布状态,而不是一个数字。

网络研究界早就明白这一点。特别强调的是分布的“长尾”,因为即使 0.1% 的交易(或 web 服务器查询)的高延迟也会严重影响最终用户。

批处理:大多数系统以某种方式将交易批处理,例如,在大多数 L1 系统上将交易批处理到区块中。这将导致可变的延迟,因为一些交易将不得不等待,直到批处理填满。其他人可能会幸运地最后加入。这些交易立即得到确认,并且不会经历任何额外的延迟。

可变拥塞:大多数系统都会出现拥塞,这意味着发布的交易比系统能够立即处理的交易要多。当交易在不可预测的时间进行广播时,或者当新交易在一天或一周内的速度发生变化时,或者在对像热门 NFT 启动这样的外部事件时响应,拥塞的程度会发生变化。

共识层差异:在 L1 确认交易通常需要一组分布式节点来达成对一个区块的共识,这可能会增加可变的延迟,无论拥塞情况如何。工作量证明系统在不可预测的时间找到区块。 PoS 系统还可以添加各种延迟(例如,如果在线节点数量不足,不能在一轮中组成一个委员会,或者如果需要改变观点以应对领导者的崩溃)。

关于延迟的声明应该显示确认时间的分布,而不是像平均值或中位数这样的单个数字。

支付渠道网络(如 闪电网络 )就是一个很好的例子。这是一个经典的L2扩展解决方案,这些网络大多数时候提供非常快的支付确认,但偶尔他们需要通道重置,这可能会增加延迟的数量级。

即使我们对确切的延迟分布有很好的统计,它们也可能会随着系统和系统需求的变化而变化。另外,如何比较相互竞争的系统之间的延迟分布也并不总是很清楚。例如,假设一个系统确认的交易延迟均匀分布在 固定时间交易交易教程 1 到 2 分钟之间(平均和中位数为 90 秒)。如果一个竞争系统在 1 分钟内准确确认 95% 的交易,而在 11 分钟内确认另外5%的交易(平均 90 秒,中位数 60 秒),那么哪个系统更好?答案可能是,有些应用程序更喜欢前者,有些则更喜欢后者。

延迟是复杂的。报告的数据越多越好。理想情况下,应该在不同的拥塞条件下测量完整的延迟分布。将延迟分解为不同的组件(本地、网络、批处理、共识延迟)也是有帮助的。

测量吞吐量的挑战

不是所有的交易都是平等的。

这在以太坊中明显是正确的,在以太坊中,交易可以包括任意代码和任意修改状态。以太坊中的 gas 概念用于量化(并收取费用)交易正在进行的总体工作量,但这与 EVM 执行环境高度相关。没有简单的方法来比较一组 EVM 交易与一组使用 BPF 环境的 Solana 交易所做的工作总量。将两者与一组比特币交易进行比较同样令人担忧。

更简单的执行层,例如只支持支付交易的 Rollup 服务器,避免了量化计算的困难。即使在这种情况下,支付也会因投入和产出的数量而变化。支付通道交易可能因所需的“跳跃次数”而异,这将影响吞吐量。Rollup 服务器吞吐量取决于将一批交易“联网”到更小的汇总更改集的程度。

吞吐量声明需要仔细解释交易工作负载和验证器的数量(它们的数量、实现和网络连接)。在没有任何明确标准的情况下,来自以太坊等流行网络的历史工作量就足够了。

延迟和吞吐量权衡

交易费用

特别是上面的第 3 点和第 4 点是区块链系统设计的基本问题,但是我们对它们都缺乏良好的原则。相对于交易费用,我们对给予矿工以通货膨胀奖励的好处和坏处有一定的了解。然而,尽管有许多关于区块链共识协议的经济分析,我们仍然没有一个被广泛接受的模型来说明需要多少收入给验证器。今天,大多数系统都建立在一个有根据的猜测中,即有多少收入足以让验证器诚实地工作,而不会扼杀系统的实际使用。在简化的模型中,可以看出,安装 51% 攻击的成本与验证程序的回报成正比。

提高攻击成本是一件好事,但我们也不知道多少安全措施才“足够”。想象一下,你正在考虑去两个游乐园。其中一辆声称在车辆维护上比另一辆少花 50% 的钱。去这个公园是个好主意吗?这可能是因为他们更有效率,用更少的钱获得了同等的安全。另一种可能是花费超过所需的费用来保证游乐设施的安全,而没有任何好处。但也可能是第一个公园很危险。区块链系统也类似。一旦剔除吞吐量,费用较低的区块链的费用较低,因为它们对验证者的奖励(因此激励)较少。我们现在没有好的工具来评估这是否可性,或者它是否会使系统容易受到攻击。总而言之:

固定时间交易交易教程

手把手带你交互 NFT 平台 SudoSwap

Sudoswap 是由 0xmons 发布的场外交易平台(OTC),V1版本支持 ERC20、ERC721、ERC1155 等代币任意组合交易,用户可以自定义订单到期时间和指定任意或特定买家进行交易。在V2版本里, sudoswap推出的针对 NFT 的自动做市商

Automated Market Maker, AMM)系统 。SudoAMM 是一种类似于 Uniswap v3 的集中流动性 AMM,流动性提供者可以自由选择一个价格范围来提供NFT流动性,提高了资本效率

2022年最常见赚钱的10大副业介绍!赶紧收藏

百度搜索‘翔云宝盒’ 了解更多不为人知的互联网掘金技术!

百度搜索‘翔云宝盒’ 了解更多不为人知的互联网掘金技术!

翔云宝盒是一款全网资源整合型的软件,里面有每日福利与新手推荐两个适合新手的栏目,里面都是靠谱的任务,每天搞个几十上百很轻松,而且不仅仅能够赚钱,还可以学习网赚知识,比如说建站技巧、SEO优化、虚拟资源、知识付费等等。这个软件是一款任务项目发布类的软件,每个项目的详细操作都是直接发表到软件上的。

百度搜索‘翔云宝盒’ 了解更多不为人知的互联网掘金技术!