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

let STF access metadata for all parentchains #1568

Open
brenzi opened this issue Jan 10, 2024 · 0 comments
Open

let STF access metadata for all parentchains #1568

brenzi opened this issue Jan 10, 2024 · 0 comments

Comments

@brenzi
Copy link
Collaborator

brenzi commented Jan 10, 2024

needed if we want to implement i.e. bridges

Problem:

in the current implementation, sidechain block production uses an StfExecutor which only knows Integritee metadata. This prevents the STF from sending extrinsics (i.e.unshielding) to TargetA/B if metadata call indices are not compatible.

Two more problems are related, to keep in mind:

  • metadata is fundamentally mutable, so it can change over time (runtime upgrades) and we may not want to hard-cycle all service instances to update
  • A bridge OCW STF between TargetA and TargetB will need the indirect executor of TargetA to trigger STF functionality which sends extrinsics to TargetB and vice versa.

Complexity:
Our Architecture currently has one StfExecutor per parentchain which only knows metadata for own scope.

For SCV, the application dev has to decide on one parentchain's StfExecutor for block proposals which restricts the STF to a single parentchain as extrinsic target

Shortcut:
for Incognitee, we can just route sidechain proposer StfExecutor to TargetA in get_stf_executor_from_solo_or_parachain
better: use the parentchain specified by --shielding-target

Questions

  • should NodeMetadataRepo be mutable?
    • then we could link all 3 metadata repos after initialzation so every executor knows all metadata
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant