ledger entries get an expirationLedger entry that represents when the entry will be considered in "default".
Bumping the expiration time of a ledger entry
• should not be restricted in any way: it should be possible for users of a "shared contract" to bump that contract if they find it useful.
In the context of this CAP, the only thing that matters is that "gas" represents an arbitrary base unit for "execution time".
Reads are logically performed before transaction execution.
Writes are performed after transaction execution
The number of bytes to write is the number of bytes associated with bucket entries referenced by the readWrite footprint.
The number of ledger entry to write is the size of the read/write footprint.
--
You received this message because you are subscribed to the Google Groups "Stellar Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to stellar-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/99b5571c-457a-4631-8adc-1f46cd2ace8cn%40googlegroups.com.
Here is my initial proposal on fees & tx set nomination. The focus is on simplicity for the users and adaptability during the ramp up process.
Base fees
Our goals here are to price different ‘market’ resources against each other and to prevent spam similarly to classic.
For every ‘market’ resource (i.e. gas, bandwidth, ledger data access) define a base fee per unit as a network parameter
Validators upgrade the base fees on a relatively short schedule (at least initially), e.g. once per week
Rough idea for adjustment process: define a transaction-level base fee for a maximum capacity transaction as an additional stable network parameter (e.g. 1 XLM). Then adjust per-resource fees proportionally to historical contention during the adjustment period (e.g. if 90% of the time contention was due to gas only, 10% of the time due to network and no contention on ledger data access, then we would set gas base fee to (~0.9 XLM / gas units), network fee to (~0.1 XLM / network units) and ledger data access to some minimum reserve fee, so that everything adds up to 1 XLM)
This idea is purely based on the network usage patterns. Alternatively, we could try to figure out market rates for dimensions, but that would require more complex bidding (see below) and the benefit is not immediately apparent.
Bidding
Use a single fee bid per for all the ‘market’ resources (‘flat rate’ resources can either be priced implicitly based on their usage)
The fee bid effectively declares how much is the user willing to overpay compared to the base cost, with every resource having the same overpayment rate
While on paper individual per-dimension fees give more flexibility to the users, it’s both tricky for the user to come up with the right bidding strategy, as well as trickier for Core to build transaction sets using greedy algorithms.
We can leave an extension point here and implement this given demand/justification
Surge pricing
Every ‘market’ resource is surge-priced separately in CAP-5 style (i.e. if the resource is close to capacity in the transaction set, surge pricing is applied)
We could explicitly include the resource base fee in transaction set in CAP-42 style, but that makes transaction set comparison tricky
Transaction set nomination
The first criterion to compare transaction sets is simply sum(fee bid) across all the smart contract transactions. This reflects both having highest bidding transactions and highest capacity utilization.
The second criterion can be min/average resource utilization.
Transaction set building is out of scope of the CAP, but with the basic greedy methods (e.g. ranking by fee rate or resource tuples) reasonable results can be achieved.
To view this discussion on the web visit https://groups.google.com/d/msgid/stellar-dev/00473157-a214-4a22-a8ee-93080970ec64n%40googlegroups.com.