-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
T1-FRAMEThis PR/Issue is related to core FRAME, the framework.This PR/Issue is related to core FRAME, the framework.
Description
Need to update all instances of Vec in the runtime storage to BoundedVec, which will allow us to start generating worse case scenario PoV sizes.
- Validators / Session Stuff: Bounded Validators / Authorities in New Sessions substrate#8640
- Aura
- Authority Discovery
- Babe
- Grandpa
- Im-Online
- Session
- Authorship @koute Remove
without_storage_infofor the authorship pallet substrate#11610 - Beefy @KiChjang Implement MaxEncodedLen on pallet-beefy substrate#11584
- Collective pallet - remove
without_storage_info#167 - ConvictionVoting @gavofyork MEL: Origin, Referenda, ConvictionVoting substrate#11631
- Democracy @gavofyork Bound uses of
Callsubstrate#11649 -
ElectionProviderMultiPhase - ElectionsPhragmen @Szegoo Bound elections-phragmen pallet substrate#12549
- (Examples)
- Lottery pallet-lottery: add generate_storage_info substrate#10594
- Membership @skunert Remove
without_storage_infofor membership pallet substrate#11591 - Multisig @shawntabrizi Make Multisig Pallet Bounded substrate#12457
- NodeAuthorization @koute Remove
without_storage_infofor thenode-authorizationpallet substrate#11621 - Offences @ggwpez Bound pallet-offences substrate#11585
- Preimage @gavofyork Bound uses of
Callsubstrate#11649 - RankedCollective @shawntabrizi https://github.com/paritytech/substrate/pull/11602/files
- Referenda @gavofyork MEL: Origin, Referenda, ConvictionVoting substrate#11631
- Remark @KiChjang Remove
#[pallet::without_storage_info]for pallet-remark substrate#11590 - Scheduler @gavofyork Bound uses of
Callsubstrate#11649 - ScoredPool @hbulgarini Removing without_storage_info from scored-pool pallet. substrate#11996
- Society @gavofyork Society v2 substrate#11324
- Staking
- StateTrieMigration @ggwpez MEL bound
state-trie-migrationsubstrate#11639 - Sudo @shawntabrizi Bounded for Sudo Test and Tips substrate#11596 Done in Use
#[pallet::unbounded]tag in FRAME System substrate#11946 - System @gavofyork Blocked on (Infra 3).
- Tips @shawntabrizi Bounded for Sudo Test and Tips substrate#11596
- TransactionStorage @skunert Remove
without_storage_infofrom pallettransaction-storagesubstrate#11668 - Treasury Add BoundedVec to Treasury Pallet substrate#8665
Polkadot:
- Pallet XCM
- XCM in general.
Infra stuff:
-
PalletsOrigin@gavofyork MEL: Origin, Referenda, ConvictionVoting substrate#11631 -
Callshould implMaxEncodedLen. Two options:
Any dispatchables whose args do not all implMaxEncodedLenshould be marked#[pallet::call(unbounded)]and will not be included inCall. Introduce an additionalUnboundedCalltype which gets created in parallel toCall, and includes all dispatchables but does not implMaxEncodedLen.Introduce a new Signed ExtensionAuxData, from Preimages pallet. This places one or more blobs of data in a non-persistent storage item of Preimages pallet, indexed by its hash. It can be a map which is cleared aton_finalizebut would ideally use Transient storage runtime host function #359. The data can be retrieved through the usual Preimages API in exactly the same manner as the persistent preimages. Large arguments forCalls dispatched immediately in a transaction would be encoded and placed in thisAuxDataSigned Extension and referenced through hash. If such aCallwere expected to execution autonomously on-chain then the preimage would need to be registered as usual.note_preimagewould useAuxData,set_codewould use (via the trait interface) Preimages pallet.Callneed not impl MEL, instead we can just avoid storing it directly but do so through a preimage. Bound uses ofCallsubstrate#11649
-
#[pallet::storage(write_only)]for items which cannot/must not be read. the MEL is allowed to be undefined. in this case, and if a newproductionfeature is enabled, then there should be no storage API to read the item (this is a larger refactoring and will need additional changes to storage macros). this together with marking the low-level storage accesses as unsafe APIs will give build-time safety for PoV size. -
#[derive(MaxEncodedLen)should respect#[codec(skip)].
Before any pallet is checked off above, the final step in this process would be do remove the without_storage_info macro:
#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
#[pallet::without_storage_info] <--- here
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
This tells us that all the storage item in the pallet are compatible with the storage info trait.
wischli, weichweich, ggwpez, muharem, kianenigma and 1 more
Metadata
Metadata
Assignees
Labels
T1-FRAMEThis PR/Issue is related to core FRAME, the framework.This PR/Issue is related to core FRAME, the framework.
Type
Projects
Status
Draft
Status
In Progress