译文/Translated:
最近,用户对处理能力和带宽需求激增,用尽了系统流量,导致EOSIO用来向用户分配资源(CPU/NET)的资源交易所(REX)在公链上无法提供服务。服务中断期间,想要接入这些资源的租借方无法获得服务。
REX中EOS公链的资源供给问题凸显资源分配模式的一个普遍问题:尽管需求很大,但是网络的大部分资源都没有被使用。REX管理着网络总CPU/NET量的30%,但还是没有资源能够分配给新的租赁者。同时,网络资源剩下的70%资源只有很小一部分有被实际利用,其证据是区块链总性能中不到50%是被使用了。
面对这样的情况,我们提出要对现在的REX系统运行的方式进行一些可能的调整,建立一个资源租赁市场。在新的系统中,用户会通过智能合约支付一笔资源租金,保证获得未来30天相应的CPU/NET资源。30天后,用户必须续租,且价格会根据CPU/NET资源需求状况变化,基于市场的机制自动进行调整。
这个资源模型下,用户依然可以抵押代币。但是,用户不再按抵押额获得CPU/NET资源,而是从域名拍卖、RAM费用和CPU/NET租金收益中获得一定的费用。
我们之所以会提议要用租赁模型逐步取代资源权利模型,其目的是要消除投机市场对资源定价的影响。租赁市场中价格是基于整体资源利用率的,引入这样的市场会让资源分配更有可预见性、对社区也更可靠。
CPU/NET的定价会基于总供给中的CPU/NET资源:CPU/NET资源越少,租赁资源的价格就越高;反之,CPU/NET资源多,价格也就低。实时CPU/NET利用率在图1中标记为 Instant Utilization (实时利用率)。资源定价则是基于Adjusted Utilization(调整后的利用率)。资源利用激增的时候,Adjusted Utilization和Instant Utilization 上升的速度相同,实时价格也随之增加,防止CPU/NET供给耗尽。随着资源利用下降,Adjusted Utilization 也随着时间的推移减少,Adjusted Utilization 不会实时降低,这样才能防止大租赁方获得不当租赁收益。
图2向我们展示了价格怎么随着网络利用率增长而增长,本例中是基于调整后的利用率。当资源充裕的时候,CPU/NET价格会保持相对低廉;但是,随着利用率不断增大,价格也会快速上涨。
价格确定的方法是租赁购买前的网络利用率与基于租赁规模的新的资源利用率之间的差值。比如说,用户希望能够获得30天的5%CPU/NET供应,他需要支付的费用等于:
MAX(P(InstantUtilization+5%),P(AdjustedUtilization+5%))) – MAX(P(InstantUtilization),P(AdjustedUtilization)))
该公式体现了现在的利用率和提交租赁订单后的利用率水平之间的差值如何被用来计算价格。比如,图2中,现在的利用率是点1,租赁之后的利用率是点2。两点之间的差就是租户需要支付的费用。
从REX转移到租赁市场
为了实现从现有的REX系统转移到提议的租赁市场,现有模型分配的CPU/NET的比例应该要慢慢转移。我们要注意转移的时候不应该增加整体代币供给,而是要调整分配到每个账户的CPU/NET比例的参数。
本文提出的变化目的是最终能够稳定CPU/NET市场,让它能够更准确地反映资源的供给情况。我们希望,整个生态能逐步转移到新提议的租赁市场,而不是继续使用现在的抵押获得资源模型,因为这么做成本更低,新的市场上也会有更多的供给。渐渐地,REX上的CPU/NET供给会减少,而我们提出的租赁市场的CPU/NET供给会逐渐增加。
为了能够顺利进行,EOSIO应用开发者和用户都需要有一个稳定的方法获得可预见价格的资源。我们建议对REX系统进行这个修改,实现足够的CPU/NET满足网络不断增长的需求,这样才能减少系统浪费、提高规模化,
获得关于EOSIO资源分配系统变化的更多信息,请参考EOSIO GitHub存储库中的提议。本次pull request(申请代码审核)还包括最近刚发布的eosio.contracts v.1.8.4-rc1。
联系我们
我们在不断优化该模型的过程中也感谢社区给我们的反馈。如果您想提供反馈、和我们团队合作共同为开发者改进EOSIO,您可以邮件联系我们的开发者关系团队developers@block.one。
我们也不断更新邮件订阅内容,其中包括未来的各种通知和发布信息。请在我们新的EOSIO 网站订阅邮件。
. . .
重要通知:所有提供的材料都遵守该重要通知,请务必熟悉其中的条款。本通知包含重要的信息、关于我们软件的限制和限定、发表、商标、第三方资源和前瞻性文件。您获得我们材料的同时必须接受和同意该通知的条款。
原文/Original:
Recently the EOSIO Resource Exchange (REX) that allocates resources (CPU/NET) to users became unusable on the EOS Public Blockchain after spikes in demand for processing power and bandwidth drained the system of liquidity. During the outage, borrowers who attempted to get access to these resources were denied service.
Resource supply for the EOS Public Blockchain on REX highlights a general issue with the resource allocation model; despite a large demand, most of the network’s resources are going unused. REX was managing around 30% of the network’s total CPU/NET and ran out of resources to allocate to new borrowers. Meanwhile, only a small percentage of the remaining 70% of the network’s resources were actually being utilized, evidenced by the fact that less than half of the blockchain’s total capacity was being used.
In light of this situation, we’re proposing a potential change to the way the current REX system operates that would establish a resource rental market. Under the new proposed system, a user will pay a resource rental fee via a smart contract to be granted 30 days worth of CPU/NET from the total supply. After 30 days the rental must be renewed and pricing is automatically adjusted using a market based mechanism, based on changes in supply and demand for CPU/NET resources.
Users will still be able to stake tokens under this proposed resource model. However, instead of receiving CPU/NET resources in proportion to staked tokens, users who stake their tokens to REX receive certain fees from name auctions, RAM fees, and proceeds from CPU/NET rentals.
The objective of proposing a transition from a resource entitlement model to a leasing or rental model is to remove the influence of speculative markets over resource pricing. Introducing a rental market with pricing based on overall resource utilization will make resource allocation more predictable and reliable for the community.
CPU/NET pricing will be based on the CPU/NET supply available out of the total; the less CPU/NET available, the higher the price to rent the resource, and the more CPU/NET available, the lower the price. The real time CPU/NET utilization is represented as Instant Utilization in Figure 1. Resource pricing is based on Adjusted Utilization. During spikes in resource utilization, Adjusted Utilization follows the same rate of increase as Instant Utilization, and the price increases in real time to prevent the CPU/NET supply from being exhausted. As resource utilization decreases, the Adjusted Utilization rate decays over time, rather than instantly, and prevents large renters from leveraging an undesirable renting advantage.
The example curve shown above in Figure 2 visualises how price increases as network utilization increases, in this case based on Adjusted Utilization. While there is an abundance of resources available the price for CPU/NET remains relatively low, however the price rapidly increases as utilization reaches the maximum.
The price is determined by the difference in the network utilization prior to the rental purchase versus the new utilization of resources based on the size of the rental. For example, a user looking to acquire 5% of the CPU/NET supply for 30 days would pay a price equal to:
MAX(P(InstantUtilization+5%),P(AdjustedUtilization+5%))) – MAX(P(InstantUtilization),P(AdjustedUtilization)))
The formula shows how the difference between the current utilization and the level of utilization as a result of the rental order is used to calculate price. For example, on Figure 2, current utilization is marked as point 1 and utilization after the rental is marked as point 2. The difference between these two points is the fee paid by the renter.
Migrating from REX to Rental Markets
To facilitate the changeover from the current REX system to the proposed rental marketplace, the percent of CPU/NET allocated under the current model would be gradually shifted. It would be done in such a way that doesn’t increase the overall supply of tokens, but instead adjusts the parameters that determine the ratio of CPU/NET that should be allocated to each account.
The proposed changes aim to ultimately stabilize the CPU/NET marketplace in a way that more accurately reflects supply and demand for those resources. It is expected that the ecosystem will eventually migrate to the newly proposed rental market as opposed to continuing to use the current staking for resources model due to a lower cost and greater supply on the new market. Over time, the CPU/NET supply available on REX will diminish as the supply of CPU/NET in the proposed rental market increases.
In order to operate smoothly, EOSIO application developers and users alike need a consistent means of accessing resources with predictable pricing. We are proposing this change to the REX system in order to reduce systemic waste and improve scalability by having enough CPU/NET to meet the growing needs of the network.
For more information about the proposed changes to the EOSIO resource allocation system, refer to the proposal in the EOSIO GitHub repository. This pull request was included with the recent release of eosio.contracts v.1.8.4-rc1.
Stay Connected
We appreciate feedback from the community as we work towards refining this new model. If you would like to provide feedback and work more closely with our team to improve EOSIO for developers, you can send our developer relations team an email at developers@block.one.
We are continuously updating our mailing list with future announcements and release notes. Subscribe today on the new EOSIO website.
. . .
Important Note: All material is provided subject to this important notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources and forward-looking statements. By accessing any of our material, you accept and agree to the terms of the notice.
原文链接/Original URL: