Skip to content

Conversation

@bkontur
Copy link
Contributor

@bkontur bkontur commented Dec 16, 2025

Relates to: paritytech/polkadot-bulletin-chain#74

This PR adds the required support and features for running Bulletin as a parachain. It is a top-level PR that merges three partial features/PRs, which can also be reviewed/merged separately:

  1. Add transaction_index::HostFunctions with NO-OP impl to the cumulus ParachainSystem validate_block for polkadot-prepare/execute-worker - Add transaction_index::HostFunctions with NO-OP impl to the polkadot-prepare/execute-worker #10370
  2. Add custom inherent provider for pallet-transaction-storage to omni node - polkadot-omni-node-lib: enable tx storage inherent data provider setup #10494
  3. Configurable StoragePeriod feeded to the inherent provider over runtime API - [pallet-transaction-storage] Configurable RetentionPeriod #10656

bkontur and others added 30 commits November 19, 2025 16:34
Signed-off-by: Iulian Barbu <[email protected]>
Signed-off-by: Iulian Barbu <[email protected]>
@bkontur bkontur requested review from bkchr and skunert December 17, 2025 12:11
}

#[async_trait::async_trait]
impl<T: InherentDataProvider> InherentDataProvider for Vec<T> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Iulian is currently OOO until next year.

/// data corresponding to block `N - RetentionPeriod` when producing block `N`.
#[pallet::storage]
pub type StoragePeriod<T: Config> = StorageValue<_, BlockNumberFor<T>, ValueQuery>;
pub type RetentionPeriod<T: Config> = StorageValue<_, BlockNumberFor<T>, ValueQuery>;
Copy link
Contributor

@skunert skunert Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm this will change the key and break solo-bulletin on upgrade without migration right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm this will change the key and break solo-bulletin on upgrade without migration right?

Good point, but no — we’re safe. The Bulletin repo (historically) has its own customized copy of pallet-transaction-storage, where StoragePeriod is just a Config const type and not a storage item:
https://github.com/paritytech/polkadot-bulletin-chain/blob/0f5ff2cb1f6b079a990e623ff67156f169a42a2a/pallets/transaction-storage/src/lib.rs#L201. So no migration is needed for the solo chain.

Also, we don’t want to maintain both pallets long term, so in parallel we’re working on merging them into a single pallet:
paritytech/polkadot-bulletin-chain#86.

Copy link
Contributor

@skunert skunert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

I am a bit paranoid about these NOOP HFs in validate_block, but also double checked and saw that its just writing some DB columns which are not going to the state, so should be fine.

Copy link
Member

@bkchr bkchr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One last nitpick.

@bkchr bkchr enabled auto-merge December 19, 2025 14:20
@paritytech-workflow-stopper
Copy link

All GitHub workflows were cancelled due to failure one of the required jobs.
Failed workflow url: https://github.com/paritytech/polkadot-sdk/actions/runs/20372758803
Failed job name: fmt

@bkchr
Copy link
Member

bkchr commented Dec 19, 2025

/cmd fmt

@bkchr bkchr added this pull request to the merge queue Dec 24, 2025
Merged via the queue into master with commit b2bcb74 Dec 24, 2025
239 of 245 checks passed
@bkchr bkchr deleted the bko-bulletin-support branch December 24, 2025 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T0-node This PR/Issue is related to the topic “node”. T1-FRAME This PR/Issue is related to core FRAME, the framework.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants