Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

polkadot-omni-node: Metadata checks #5565

Closed
kianenigma opened this issue Sep 3, 2024 · 0 comments · Fixed by #6450
Closed

polkadot-omni-node: Metadata checks #5565

kianenigma opened this issue Sep 3, 2024 · 0 comments · Fixed by #6450
Assignees

Comments

@kianenigma
Copy link
Contributor

As we move towards making polkadot-parachain be a true omni-node, independent of the runtime, we should make some checks.

For example, for now we only support a parachain, and therefore parachain_system pallet should be present.

Some startup checks should exist that query the runtime for the metadata, parse it using frame-metadata and/or subxt, and assert the existence of some types.

Further, now we allow the block number type to be configured on the omni-node. One can check frame_system's metadata to ensure the block number in there is the same as the one in the node side.

@kianenigma kianenigma moved this to Milestone 1 in Polkadot Omni Node Sep 3, 2024
github-merge-queue bot pushed a commit that referenced this issue Dec 12, 2024
…6450)

# Description

Get runtime's metadata, parse it and verify pallets list for a pallet
named `ParachainSystem` (for now), and block number to be the same for
both node and runtime. Ideally we'll add other pallets checks too, at
least a small set of pallets we think right away as mandatory for
parachain compatibility.
Closes: #5565 

## Integration

Runtime devs must be made aware that to be fully compatible with Omni
Node, certain naming conventions should be respected when defining
pallets (e.g we verify parachain-system pallet existence by searching
for a pallet with `name` `ParachainSystem` in runtime's metadata). Not
finding such a pallet will not influence the functionality yet, but by
doing these checks we could provide useful feedback for runtimes that
are clearly not implementing what's required for full parachain
compatibility with Omni Node.

## Review Notes

- [x] parachain system check
- [x] check frame_system's metadata to ensure the block number in there
is the same as the one in the node side
- [x] add tests for the previous checking logic
- [x] update omni node polkadot-sdk docs to make these conventions
visible.
- [ ] add more pallets checks?

---------

Signed-off-by: Iulian Barbu <[email protected]>
Co-authored-by: Alexandru Vasile <[email protected]>
Co-authored-by: Michal Kucharczyk <[email protected]>
iulianbarbu added a commit that referenced this issue Dec 13, 2024
…6450)

Get runtime's metadata, parse it and verify pallets list for a pallet
named `ParachainSystem` (for now), and block number to be the same for
both node and runtime. Ideally we'll add other pallets checks too, at
least a small set of pallets we think right away as mandatory for
parachain compatibility.
Closes: #5565

Runtime devs must be made aware that to be fully compatible with Omni
Node, certain naming conventions should be respected when defining
pallets (e.g we verify parachain-system pallet existence by searching
for a pallet with `name` `ParachainSystem` in runtime's metadata). Not
finding such a pallet will not influence the functionality yet, but by
doing these checks we could provide useful feedback for runtimes that
are clearly not implementing what's required for full parachain
compatibility with Omni Node.

- [x] parachain system check
- [x] check frame_system's metadata to ensure the block number in there
is the same as the one in the node side
- [x] add tests for the previous checking logic
- [x] update omni node polkadot-sdk docs to make these conventions
visible.
- [ ] add more pallets checks?

---------

Signed-off-by: Iulian Barbu <[email protected]>
Co-authored-by: Alexandru Vasile <[email protected]>
Co-authored-by: Michal Kucharczyk <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Milestone 1
Development

Successfully merging a pull request may close this issue.

2 participants