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

XCM Horizon #925

Open
5 of 30 tasks
gavofyork opened this issue Oct 21, 2021 · 1 comment
Open
5 of 30 tasks

XCM Horizon #925

gavofyork opened this issue Oct 21, 2021 · 1 comment
Labels
I6-meta A specific issue for grouping tasks or bugs of a specific category. T6-XCM This PR/Issue is related to XCM.

Comments

@gavofyork
Copy link
Member

gavofyork commented Oct 21, 2021

Features for v3 lifetime which don't change message format

Version discovery

  • Automatic version discovery once channel is open.
  • Queue outgoing messages which trigger discovery and send them once the version is known.

Trustless replies

Re-evaluate whether the Query system really is enough to get information on the execution of a remote operation back to the sender trustlessly and resistant to forgery attacks.

Origin aliasing

Improved error reporting

  • Simulator should extract XCM execution events and pretty-print
  • Ensure XCM is easily identifiable from source to dest.
  • Introduce ConversionError enum for when conversion between versions fails with TryFrom, and place that as an inner parameter of XcmError::UnsupportedDestination Figure out a good error reporting mechanism for XCM #920

Wish list

Fees

Fees are attributes of remote locations which are essentially opaque, yet it is important to know them if messages are being sent to/through them in order to ensure messages succeed. This is quite similar to XCM versioning. We should utilise the same kind of mechanisms we have for managing XCM versions of remote locations more generally.

  • Instruction and Response to get a fee table from remote locations.
  • Fee-Registrar Pallet to store known remote locations' fee table.
  • Trait hooks to allow Fee-Registrar pallet to be used to determine remote-payable fees.
  • Subscription service to keep data in Fee-Registrar up to date.

Bounds

Assets

Bridging

  • QueryExportPrice instruction.
  • Dynamic route pricing, based on price queries.
  • QueryExportTable instruction and query datatype.
  • Dynamic routing based on QueryExportTable replies from known/trusted bridges.

Checkpoints (v4/v5?)

  • Allow for the possibility of Commit and Rollback instructions which allow for error-resistant atomic operations. Payment for weight can NEVER be reverted, so the BuyExecution barrier would check for a Commit following after it.

Client

  • Get block-builder to provide feedback to the XCM system so that the PoV block doesn't become too big when squeezing in messages in on_idle.
  • paritytech/polkadot#4119

Questionable things/vague ideas/low priority

  • Efficient encodings for MultiAsset. (TODO: #XCMENCODE)
  • Consider removing all BTree stuff and just have a fixed array of MultiAsset registers. This puts the onus on the XCM message author to consider exactly what they're doing, but avoids indeterminate weights coming from sophisticated structures.
  • When executing XCM::Transact, use a call filter to be specified in the Config trait. (TODO: #TRANSACTFILTER)
  • New type of XcmpMessageFormat which gives every Xcm message an ordering flag so that lighter messages are not needlessly blocked by heavier ones preceding them. This will result in a slower overall dispatch function since it will need the page to be rebuilt with any skipped messages and placed back in storage.
@Polkadot-Forum
Copy link

This issue has been mentioned on Polkadot Forum. There might be relevant details there:

https://forum.polkadot.network/t/the-ledger-app-debate-united-we-stand-divided-we-fall/3177/13

@Sophia-Gold Sophia-Gold transferred this issue from paritytech/polkadot Aug 24, 2023
@the-right-joyce the-right-joyce added I6-meta A specific issue for grouping tasks or bugs of a specific category. and removed J1-meta labels Aug 25, 2023
helin6 pushed a commit to boolnetwork/polkadot-sdk that referenced this issue Feb 5, 2024
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.58 to 0.1.59.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.58...0.1.59)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 26, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Mar 27, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 8, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 9, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
serban300 pushed a commit to serban300/polkadot-sdk that referenced this issue Apr 10, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
bkchr pushed a commit that referenced this issue Apr 10, 2024
* Add Wococo primitives crate

* Add more Wococo boilerplate code

* Add CLI support for initializing the Wococo<>Rococo bridge

* Add support for relaying headers between Rococo and Wococo

* Fix test

* RustFmt

* Fix compilation issues related to enum naming

* Bump Rococo `spec_version`

* Remove stray Westend references
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I6-meta A specific issue for grouping tasks or bugs of a specific category. T6-XCM This PR/Issue is related to XCM.
Projects
Status: No status
Development

No branches or pull requests

4 participants