90 Commits

Author SHA1 Message Date
polka.dom 072e255c1a Allow Voting While Delegating (#150)
[Rendered](https://github.com/PolkadotDom/RFCs/blob/dom/voting-while-delegating/text/0150-voting-while-delegating.md)


[WIP](https://github.com/PolkadotDom/polkadot-sdk/tree/dom/vote-while-delegating/substrate/frame/conviction-voting/src)
(STF + Unit Tests Complete)

[Draft PR](https://github.com/paritytech/polkadot-sdk/pull/9026)
2025-12-01 00:10:50 +00:00
jonasW3F 85ca3ff275 Revisit Market Design of Coretime Sales (#17)
In this RFC, I aim to present several suggestions for fostering a closer
integration of the different Coretime markets and for enabling a more
systematic alignment with market forces.

---------

Co-authored-by: Dónal Murray <donalm@seadanda.dev>
2025-06-29 19:40:01 +00:00
jonasW3F 54bcee1caa Deflationary Transaction Fee Model for Relay- and System Chains (#146)
This RFC proposes burning 80% of transaction fees on the Relay Chain and
System Chains, adding to the existing deflationary capacity.
2025-06-26 09:18:02 +00:00
eskimor 67a774143e Renewal adjustments to RFC-1 (#149)
Proposal to fix the issues we are seeing with Agile Coretime in
production right now.

---------

Co-authored-by: Robert <robert@gonimo.com>
2025-06-11 16:47:21 +00:00
s0me0ne-unkn0wn 91b31618c4 Standardize compressed blob prefixes (#135)
[Rendered](https://github.com/s0me0ne-unkn0wn/RFCs/blob/s0me0ne/compressed-blob-prefixes/text/0135-compressed-blob-prefixes.md)
2025-05-05 08:03:35 +00:00
ordian 2cd41e19df RFC-139: Faster Erasure Coding (#139)
[Rendered](https://github.com/ordian/RFCs/blob/main/text/0139-faster-erasure-coding.md)
2025-05-05 01:31:22 +00:00
Jiyuan Zheng 54c8225d25 Introduce PVQ (#126)
Looking for feedback.

## Summary
This proposal introduces PVQ (PolkaVM Query), which aims to serve as an
intermediary layer between different chain runtime implementations and
tools/UIs, to provide a unified interface for cross-chain queries.

## Related Discussions
https://forum.polkadot.network/t/wasm-view-functions/1045

## PoC implementations
https://github.com/open-web3-stack/XCQ
2025-04-13 22:48:55 +00:00
Bastian Köcher 7f673a4f6a RFC-0123: Introduce :pending_code as intermediate storage key for the runtime code (#123) 2025-03-18 12:57:19 +00:00
Daniel Shiposha f346983cbd XCM Asset Metadata (#125)
This is a refined version of the XCM Asset Metadata RFC.

This PR supersedes the
[PR](https://github.com/polkadot-fellows/xcm-format/pull/50) opened in
the xcm-format repository following the migration of XCM RFCs to the
Fellowship RFCs.

## Summary

This RFC proposes a metadata format for XCM-identifiable assets (i.e.,
for fungible/non-fungible collections and non-fungible tokens) and a set
of instructions to communicate it across chains.

---------

Co-authored-by: Adrian Catangiu <adrian@parity.io>
2025-01-24 08:26:55 +00:00
Pierre Krieger 73c98535fc Improved light client requests networking protocol (#9)
[Rendered](https://github.com/tomaka/RFCs-1/blob/rfc-9/text/0009-improved-net-light-client-requests.md)

This is a continuation of https://github.com/w3f/PPPs/pull/10

Compared to https://github.com/w3f/PPPs/pull/10, I've changed my mind
about truncated proofs. I think that it's better if the client can fully
verify the proofs that are returned even when the response size limit
would be exceeded. This also means that the proof no longer needs to be
deterministic, and I've removed the paragraph about this.

cc @cheme
2024-12-10 21:33:48 +00:00
Adrian Catangiu d39ca4b893 Asset transfers can alias XCM origin on destination to original origin (#122)
XCM programs generated by the `InitiateAssetTransfer` instruction shall
have the option to carry over the original origin all the way to the
final destination. They shall do so by internally making use of
`AliasOrigin` or `ClearOrigin` depending on given parameters.

This allows asset transfers to retain their original origin even across
multiple hops.


[Rendered](https://github.com/acatangiu/RFCs/blob/alias-origin-on-asset-transfers/text/0122-alias-origin-on-asset-transfers.md)

---------

Signed-off-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com>
2024-10-15 13:17:21 +00:00
Andrei Sandu fe8db0ffa3 Constrain parachain block validity on a specific core (#103)
Following the discussion on
https://github.com/polkadot-fellows/RFCs/issues/92, this is a proposal
to introduce the required core index commitments to make elastic scaling
work securely with open collator sets.

---------

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
2024-09-09 15:38:42 +00:00
Francisco Aguirre db260ea2f9 [XCM]: Improved fee mechanism (#105)
Moved from https://github.com/polkadot-fellows/xcm-format/pull/53.

The idea is to extend the current XCM fee mechanism to support in
principle delivery fees, but potentially other types of fees as well.
This is accomplished by having two additions:
- `PayFees` instruction
- A `fees` register, where fees go and stay there until the end of
execution. Crucially, separate from the `holding` register

---------

Co-authored-by: Adrian Catangiu <adrian@parity.io>
2024-09-03 15:26:04 +00:00
Francisco Aguirre e4dbd1aa7d [XCM]: Execution hints mechanism (#107)
Moved from https://github.com/polkadot-fellows/xcm-format/pull/59.

This RFC proposes a framework for specifying "execution hints", much
like [window hints in
GLFW](https://www.glfw.org/docs/3.3/window_guide.html#window_hints).
The first one is `AssetClaimer`, that allows the user to specify who can
claim trapped assets resulting from that program execution. That was an
instruction already approved and targeted at XCMv5. This RFC proposes to
move it to this hints mechanism.

Another potential hint is `LeftoverAssetsDestination`, which, when set,
would send all leftover assets to a particular location instead of
trapping. This additional hint is not covered by the RFC. It could be
proposed in a new one.
2024-08-26 14:19:29 +00:00
Adrian Catangiu 89a79fc99f Introduce new XCM instruction: InitiateAssetsTransfer for complex asset transfers (#100)
This is a continuation of
https://github.com/polkadot-fellows/xcm-format/pull/63 following the
migration of XCM RFCs to this repo.

# Summary

This RFC proposes a new instruction that provides a way to initiate
asset transfers which transfer multiple types (teleports, local-reserve,
destination-reserve) of assets, on remote chains using XCM alone.

The currently existing instructions are too opinionated and force each
XCM asset transfer to a single transfer type (teleport, local-reserve,
destination-reserve). This results in inability to combine different
types of transfers in single transfer which results in overall poor UX
when trying to move assets across chains.

# Example usage

```rust
    // pay remote fees with ROCs
    let remote_fees = Some(
        AssetTransferFilter::ReserveWithdraw(
            AssetFilter::Wild(AllOf { id: rocs_id.into(), fun: WildFungibility::Fungible })
        )
    );
    // XCM to be executed locally
    let xcm = Xcm::<penpal_runtime::RuntimeCall>(vec![
        // Withdraw both ROCs and PENs from origin account
        WithdrawAsset(assets.clone().into()),
        // Execute the transfers while paying remote fees with ROCs
        InitiateAssetsTransfer {
            dest: local_asset_hub,
            assets: vec![
                // ROCs are reserve-withdrawn on AHR
                ReserveWithdraw(rocs.into()),
                // PENs are teleported to AHR
                Teleport(pens.into()),
            ],
            remote_fees,
            remote_xcm: xcm_on_ahr,
        },
    ]);
```

I also have a [proof-of-concept
implementation](https://github.com/acatangiu/polkadot-sdk/blob/1738f8eebd33d87c9c09c7a6bcd7c42fc1a8aa9e/polkadot/xcm/xcm-executor/src/lib.rs#L717C4-L831C6)
and a [proof-of-concept asset transfer
test](https://github.com/acatangiu/polkadot-sdk/blob/1738f8eebd33d87c9c09c7a6bcd7c42fc1a8aa9e/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/asset_transfers.rs#L484C1-L489C60),
transferring 2 different types of assets across 3 chains.
2024-08-26 14:18:25 +00:00
jonasW3F f6ec2f8a8b Unbonding queue (#97)
We are proposing an unbonding queue for Relay Chain tokens to
significantly reduce the expected unbonding time. The queue would still
maintain sufficient stake accountability to mitigate the profitability
of LRAs.

---------

Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com>
Co-authored-by: ordian <write@reusable.software>
2024-08-12 18:27:46 +00:00
Adrian Catangiu ab53bd3b75 Remove require_weight_at_most from XCM Transact (#101)
This is a continuation of
https://github.com/polkadot-fellows/xcm-format/pull/55 following the
migration of XCM RFCs to this repo.

# Summary

Remove the `require_weight_at_most: Weight` parameter of the Transact
instruction.

# Motivation

The UX of using Transact is not great, and one part of the problem is
guesstimating this require_weight_at_most.
We've seen multiple Transacts on-chain failures caused by the
"incorrect" use or the parameter. In practice, this parameter only adds
UX overhead. Use cases fall in one of two categories:

1. Unpaid execution of Transacts - in these cases the
require_weight_at_most is not really useful, caller doesn't have to pay
for it, and on the call site it either fits the block or not;
2. Paid execution of single Transact - the weight to be spent by the
Transact is already covered by the BuyExecution weight limit parameter.

We've had multiple OpenGov root/whitelisted_caller proposals initiated
by core-devs, completely or partially fail because of incorrect
configuration of `require_weight_at_most` parameter. This is a strong
indication that the instruction in its current form is hard to use.

---------

Signed-off-by: Adrian Catangiu <adrian@parity.io>
2024-08-05 23:10:38 +00:00
Francisco Aguirre 094dceaef7 [XCM]: Remove NetworkIds for testnets (#108)
Testnets are not stable and shouldn't be included in the XCM language.
They should be able to be specified with `NetworkId::ByGenesis`.
2024-08-05 12:32:35 +00:00
Bastian Köcher 091d8d9f8e Merkleized Metadata: Bring some clarification for the extrinsic inclusion (#90)
This augments the `RFC78` with some clarification on the front of how to
include the data into the extrinsic.
2024-07-25 13:49:02 +02:00
Bastian Köcher e26c3d6ba9 Introduce a transaction extension version (#99)
This RFC proposes to introduce a transaction extensions version. It is
proposed to piggyback on
[RFC84](https://github.com/paritytech/polkadot-sdk/issues/2415) to not
require a new extrinsic format version. With this RFC it will be
possible to change the transaction extensions without breaking the
extrinsic format of a chain and thus, staying backwards compatible.

---------

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2024-07-23 15:50:01 +00:00
Alexandru Gheorghe 65cf83ee72 Add creation time for DHT authority discovery records (#91)
This adds a new creation time for authority discovery records stored in
the DHT.

This RFC has already an implementation in polkadot-sdk here:
https://github.com/paritytech/polkadot-sdk/pull/3786

---------

Signed-off-by: Alexandru Gheorghe <alexandru.gheorghe@parity.io>
2024-07-15 09:33:47 +00:00
Davide Galassi 7410f5fc80 Sassafras Consensus (#26)
This RFC outlines the core components and procedures of Sassafras
consensus protocol.

---

This RFC does not cover the following topics:

- Implementation details necessary for interoperability: structure of
the on-chain storage, host functions and runtime API.
- Deployment strategies, especially in the context of already existing
blockchain networks
- Parameters required for the zk-SNARK (SRS).
- Networking protocol to deliver tickets to relayers.

These (and probably other) topics are fairly complex and somewhat
independent of the core protocol. They should be the subject of
separate, dedicated RFCs for proper exploration and discussion.

---


[Rendered](https://github.com/davxy/polkadot-fellows-rfcs/blob/sassafras-consensus-rfc/text/0026-sassafras-consensus.md)

Reference implementation tracking issue:
https://github.com/paritytech/polkadot-sdk/issues/41
2024-06-25 09:09:17 +00:00
Bastian Köcher 4d0a344326 Generate ownership proof for SessionKeys (#48)
This RFC changes the `SessionKeys` runtime api to support generating a
proof of ownership of the generated session keys.
2024-05-07 20:14:35 +00:00
georgepisaltu bf3fcd9d50 General transactions in extrinsic format (#84)
Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
2024-04-14 17:33:50 +00:00
Oliver Tale-Yazdi 049a0351b3 Prepare Core runtime API for MBMs (#13)
This RFC aims to ratify the proposed changes to the `Core` runtime API. 

Implementation is being conducted in
https://github.com/paritytech/polkadot-sdk/pull/1781.
Status: RFC has been slimmed down and the controversial change to
`BlockBuilder` removed by finding an alternative.

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2024-03-17 12:18:03 +00:00
Bastian Köcher 56aab07c38 Merkleized metadata (#78)
Co-authored-by: Josep M Sobrepere <jm.sobrepere@gmail.com>
Co-authored-by: Santi Balaguer <santiago.balaguer@gmail.com>
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
2024-03-15 06:21:33 +00:00
Aurora Poppyseed e9bf2137c2 Lowering Deposit Requirements on Polkadot and Kusama Asset Hub (#45)
RFC-00xx-assethub, proposes lowering deposit requirements for NFT
collection creation on Polkadot and Kusama Asset Hub to make it more
accessible for artists. It draws upon the discussion in the [Polkadot
Forum](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262).
While there are concerns about state bloat, the RFC also considers
future governance models to dynamically adjust deposit requirements.

---------

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: Viki Val <viktorko99@gmail.com>
Co-authored-by: joepetrowski <joe@parity.io>
2024-03-14 12:14:56 +00:00
Pierre Krieger 7bfe4be75a Add a discovery mechanism for nodes based on their capabilities (#59)
[Rendered](https://github.com/tomaka/RFCs-1/blob/rfc57/text/0059-nodes-capabilities-discovery.md)

---------

Co-authored-by: Xiliang Chen <xlchen1291@gmail.com>
2024-02-14 08:21:59 +00:00
jonasW3F 1985ecacbc Burn Revenue from Coretime Sales (#10)
With this RFC I want to start a discussion whether to burn the revenues
from Coretime sales or to send them to Treasury. I give some arguments
why burning might be favorable.
2024-02-12 20:59:08 +00:00
Vedhavyas Singareddi 94f434e07b Introduce System version to RuntimeVersion object (#42)
This RFC proposes adding `system_version` and remove `state_version`
from `RuntimeVersion` object. This makes it possible to use
`StateVersion::V1` for both Storage and Extrinsic root derivations
2024-02-12 07:50:20 +00:00
Sebastian Kunert eb7679a401 Introduce storage_proof_size Host Function for Improved Parachain Block Utilization (#43)
https://github.com/paritytech/polkadot-sdk/pull/1462 has been open for a
while and is now well-reviewed. Opening an RFC since it introduces a new
host function that is relevant for parachains and light-clients.
2024-02-02 18:17:57 +00:00
Alin Dima efc6b7a126 Assignment of availability-chunk indices to validators (#47)
[Rendered](https://github.com/alindima/RFCs/blob/av-chunk-indices/text/0047-assignment-of-availability-chunks.md)

This RFC proposes a way of permuting the availability chunk indices
assigned to validators for a given core and relay chain block, in the
context of [recovering available data from systematic
chunks](https://github.com/paritytech/polkadot-sdk/issues/598).

---------

Signed-off-by: alindima <alin@parity.io>
2024-01-25 07:55:01 +00:00
Pierre Krieger 6b4262b55c Enforce one transaction per notification in the networking (#56)
[Rendered](https://github.com/tomaka/RFCs-1/blob/one-tx-per-notif/text/0056-one-transaction-per-notification.md)

This RFC is pretty small, and I expect it to be pretty uncontroversial.
Just because something is currently designed a certain way doesn't mean
that it is so for a good reason, and sometimes, like in this RFC, things
just need to be cleaned up.
2023-12-26 20:35:04 +01:00
joe petrowski df69e9c8e5 Fellowship Salaries (#50)
The Fellowship Manifesto states that members should receive a monthly
allowance on par with gross income in OECD countries. This RFC proposes
concrete amounts.
2023-12-18 09:59:34 +00:00
joe petrowski 1c447a6da1 Process for Adding New System Collectives (#12)
This RFC proposes a means for Polkadot stakeholders to ratify a new
collective. The Fellowship should agree to add new collectives to the
Collectives parachain runtime that pass the given process.
2023-11-11 17:57:28 +00:00
Pierre Krieger 7adef292b6 Store parachain bootnodes in relay chain DHT (#8)
[Rendered](https://github.com/tomaka/RFCs-1/blob/rfc-8/text/0008-parachain-bootnodes-dht.md).

---------

Co-authored-by: asynchronous rob <rphmeier@gmail.com>
2023-10-24 12:30:26 +00:00
joe petrowski 6f24026cca Proposal for Minimal Relay (#32)
* create file

* add body of rfc

* update rfc number

* rename file

* remove old

* make file

* first draft

* tweaks

* pubsub

* migration text tweak

* add discussions on identity, governance, and staking

* nits

* commit more to balances on staking para

* add RFC number

* review changes

* add architecture, resource allocation, and kusama's role
2023-10-22 16:16:18 +00:00
brenzi 6be0336665 Adopt Encointer Runtime (#22)
* init new RFC

* first version written

* add more detail

* Update text/0022-adopt-encointer-runtime.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update text/0022-adopt-encointer-runtime.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update text/0022-adopt-encointer-runtime.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update text/0022-adopt-encointer-runtime.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update text/0022-adopt-encointer-runtime.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update text/0022-adopt-encointer-runtime.md

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* add legal entity with author

* More precise stakeholder description for fellowship

* extend description about updates, reviews and audits

* Typo

* crates must be on crates.io

---------

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-10-09 11:32:20 +00:00
joe petrowski cc9a16f713 System Collator Set Selection (#7)
* create file

* add body of rfc

* update rfc number

* rename file

* remove old
2023-09-13 14:20:26 +00:00
Bastian Köcher c368187e2b Merge pull request #14 from xlc/rfc14
Improve locking mechanism for parachains
2023-08-17 10:27:33 +02:00
Gavin Wood c782a92a68 Merge pull request #1 from polkadot-fellows/gav-agile-coretime
Agile Coretime
2023-08-11 16:48:10 -07:00
Gav 6f29561a47 Rephrase according to comment 2023-08-02 00:45:39 +01:00
Gav 095884e206 Add reference 2023-08-02 00:43:40 +01:00
Gav b756283d40 Typo 2023-07-31 17:03:26 +01:00
Gav 28aed6947b Typo 2023-07-31 17:01:41 +01:00
Gav c9ae9290e7 Better wording 2023-07-31 16:56:23 +01:00
Gav b39e7f8e91 Better wording 2023-07-31 16:50:53 +01:00
Gav 1b01ee64ef Merge branch 'gav-agile-coretime' of https://github.com/polkadot-fellows/RFCs into gav-agile-coretime 2023-07-31 16:45:56 +01:00
Gav e50e717a0d Renewal price is only a cap 2023-07-31 16:45:30 +01:00
Gavin Wood 13166eaa82 Update text/0001-agile-coretime.md 2023-07-31 16:30:51 +01:00