polkadot-sdk icon indicating copy to clipboard operation
polkadot-sdk copied to clipboard

Polkadot Node 2026

Open bkchr opened this issue 6 months ago • 13 comments

We want to release a list of new features that require to introduce new host functions or breaking existing behavior in the node. Right now we have the following items:

  • RFC 145 - This moves the allocator from the host side to the runtime side.
  • RFC 123 - This will change the way runtime upgrades are applied, to ensure that the first block after a runtime upgrade is not decoding faulty data
  • BLS signatures: Not yet a RFC, but still needs one. Is about introducing host functions to handle BLS keys and signatures. This will improve the performance of BEEFY.

The list is not yet 100% finished and could still be extended. Because the introduction of new host functions requires that all the nodes in the network are providing these host functions, such an upgrade isn't that easy to coordinate. This also means we will need to have all parachains upgraded to a node that supports these new host functions. To achieve this we will need to backport the host function changes to make it as easy as possible for parachain teams to integrate them into their node. But we should also use this opportunity to move every one that is possible to Omni node or to have them run their parachain nodes with an external relay chain node (--relay-chain-rpc-url).

bkchr avatar Sep 30 '25 09:09 bkchr

For RFC 145, we currently have the following PRS: The RFC itself: https://github.com/polkadot-fellows/RFCs/pull/145 Host functions implementation: https://github.com/paritytech/polkadot-sdk/pull/8641 Host functions integration: https://github.com/paritytech/polkadot-sdk/pull/8866

CC @s0me0ne-unkn0wn

bkchr avatar Sep 30 '25 09:09 bkchr

  • BLS signatures: Not yet a RFC, but still needs one. Is about introducing host functions to handle BLS keys and signatures. This will improve the performance of BEEFY.

@drskalman could you please take care of this?

bkchr avatar Sep 30 '25 09:09 bkchr

RFC 123 is currently implemented in this pull request: https://github.com/paritytech/polkadot-sdk/pull/6029

bkchr avatar Sep 30 '25 09:09 bkchr

After the implementation work is done, we will need to decide on a date in the future and start communicating with the parachain people.

bkchr avatar Sep 30 '25 09:09 bkchr

Thanks for publishing the roadmap! Two points from my side:

  1. #8641 is breaking the FunctionContext interface, which is public. In theory, that means it cannot be backported. We need to determine the actual impact of this breaking change and either try to work around it or decide it's acceptable to make a breaking backport.
  2. The BLS thing interferes with RFC-145, I mean, if we're going to release them together, then the BLS code must be changed to use the runtime allocator.

s0me0ne-unkn0wn avatar Sep 30 '25 09:09 s0me0ne-unkn0wn

  1. is breaking the FunctionContext interface, which is public

Should be fine I think? Although technically public this is pretty much an internal interface.

The BLS thing interferes with RFC-145, I mean, if we're going to release them together, then the BLS code must be changed to use the runtime allocator.

Should be pretty much orthogonal, as long as the new host functions for BLS are designed from the start to not use the host allocator (which, AFAIK, should be possible without any of your changes).

koute avatar Sep 30 '25 11:09 koute

Should be fine I think?

I hope so, just wanted to check with you guys that I'm not missing something.

as long as the new host functions for BLS are designed from the start to not use the host allocator

And currently they are not. I don't say we have any technical difficulties here; it's just organizational. Yes, in principle, we can rewrite BLS functions to allocate for themselves even before introducing the runtime allocator (although in that case, before merging with RFC-145, they will use the host allocator in a sense 🙃), we just need to release both BLS and RFC-145 together if we don't want to create a mess.

s0me0ne-unkn0wn avatar Sep 30 '25 12:09 s0me0ne-unkn0wn

we just need to release both BLS and RFC-145 together if we don't want to create a mess.

I mean this is the entire point of this issue, that we release all these things together :)

bkchr avatar Sep 30 '25 13:09 bkchr

Okay, so we're on the same page 🙂 Do we need any help preparing an RFC for the BLS host functions? I mean, I'm not familiar with the topic, but if the RFC is only about introducing new host functions, I could do that. CC @drskalman @davxy

s0me0ne-unkn0wn avatar Sep 30 '25 14:09 s0me0ne-unkn0wn

Yeah the RFC should be mainly about introducing the new host functions and not more. You can take it if you like.

bkchr avatar Sep 30 '25 14:09 bkchr

Yeah the RFC should be mainly about introducing the new host functions and not more. You can take it if you like.

Published a first draft: https://github.com/polkadot-fellows/RFCs/pull/156

s0me0ne-unkn0wn avatar Oct 15 '25 12:10 s0me0ne-unkn0wn

@seunlanlege this is the issue you need to follow for the BLS integration.

bkchr avatar Oct 17 '25 06:10 bkchr

Draft implementation of BLS host functions: https://github.com/paritytech/polkadot-sdk/pull/10327

s0me0ne-unkn0wn avatar Nov 14 '25 19:11 s0me0ne-unkn0wn