Please note this is not a technical document, but mainly describes quota and quota-related topics. Technical details will be introduced in the yellow paper.
The Definitions of Terms:
- Quota： In Vite system, CPU cycles, storage space and network bandwidth consumed during transactions are paid by quota, instead of transaction fees
- PoW： Proof of Work, representing a certain amount of computational work has been performed
- Stake： Lock up an amount of VITE in the account for quota
- Staking address：The account who starts the staking transaction
- Quota recipient address：The account who receives quota
What is Quota
In Ethereum, in order to have a transaction executed timely, the sender usually has to offer an appealing transaction fee to miner. The higher gas price offered, the sooner transaction executed. In this typical bidding model, the supply of system processing capability and the demand of sending transactions are balanced by gas price automatically. This model works fine in Ethereum, however, from user's perspective it is hard to determine what is the best gas price to offer for a certain time. Either too low or too high price will cause a market failure. Moreover, since gas is associated with individual transactions, it is impossible to measure and allocate computational resources at account level. In Vite, instead of charging transaction fees, a certain amount of quota is consumed when user sends a transaction, such as transfer, deploying new smart contract, calling smart contract, issuing new token, registering SBP, retrieving mining rewards, voting and staking. Vite has implemented a quota model to meet the supply and demand of resources.
Quota can be obtained in two ways:
- Obtain one-time, small-amount quota by computing
PoWwhen sending transactions, or
- Stake VITE for account.
If you just simply need to send a transaction, you can choose
If you need send many transactions during a short period, you should stake VITE to get enough quota.
We recommend staking.
Quota Consumption Rules
Various quota consumptions of different transactions:
|Transaction Type||Quota Consumed||In Unit Transaction||Minimal Staking Amount（Vite）|
|Send a transfer without comment||21000||1||134|
|Receive a transfer||21000||1||134|
|Update SBP registration||62200||2.9619||400|
|Cancel SBP registration||83200||3.9619||534|
|Retrieve mining rewards||68200||3.2476||534|
|Stake for quota||82000||3.9048||534|
|Cancel staking for quota||73000||3.4762||534|
|Stake for quota via delegation||82000||3.9048||534|
|Cancel staking for quota via delegation||73000||3.4762||534|
|Issue new token||104525||4.9774||667|
|Mint additional token||69325||3.3012||534|
|Transfer token ownership||58981||2.8086||400|
|Change token type||63125||3.0060||534|
- Unit Transaction: The minimal transaction unit measured in quota consumption, equivalent to an un-commented transfer transaction
Each character in transaction's comment consumes additional 68 quota.
For example, given hex encoding is used, sending a transfer with a comment of '0x0001' (two characters) will consume
quota, which translates to
Due to implementation of VEP-8, additional 136 quota (2 characters prefix) will be cost if you send a transfer with comment from Vite official wallet. No additional quota will be cost if no comment is attached.
ConfirmTimes is assigned when creating new smart contract, for each response transaction of the contract, an additional quota about
ConfirmTimes * 200 will be charged.
ConfirmTimes defines a waiting number that specifies in how many confirmations the contract will produce a response after the request transaction is snapshotted.
Quotas are calculated in the following formulas:
: Quota obtained through
PoWcalculation. This quota is valid once and can only be used in current transaction
: Quota obtained by staking. This quota is long-time valid and can be accumulated for up to 75 snapshot blocks : Quota cap of one account, related to overall system throughput and total account number : The difficulty of
: The weight obtained through
: The staking amount : The weight obtained by staking : The idle time prior to sending a transaction, equivalent to height difference between the snapshot block that current transaction refers to and an earlier snapshot block that previous transaction refers to
In Vite Network,
= 1000000 = 6.259408129e-10 = 4.201037667e-24
UTPS: Unit transaction per second, referring to how many un-commented transfer transactions can be sent by one account in one second
The available quota of an account depends on basic UTPS and quota consumption during the last 74 snapshot blocks. For example, account A has 1 UTPS' quota via staking and hasn't sent any transaction during last 74 snapshot blocks, then the available quota of account A is 75 UTPS.
The actual available quota of an account upon sending transaction depends on UTPS, quota consumption during last 74 snapshot blocks and
PoW calculation. For example, account B has 1 UTPS' quota via staking and hasn't sent any transaction during last 74 snapshot blocks, while he also calculated a
PoW nonce whose difficulty is entitled to obtain quota about 2 UTPS, then the available quota of account B is 77 UTPS.
For convenience in calculation, it is acceptable to calculate
|UTPS||Maximum Unit Transaction(s) in 75 seconds||Approximately equivalent to how much VITE staked without calculating ||Approximately equivalent to how difficult the |