Feature Description
Details
Some recent use cases have arisen regarding how to describe off-chain content. Currently, Frequency has a single mechanism for posting & describing off-chain content: an Intent/Schema with PayloadLocation::IPFS. Posting to such a schema requires, specifically, an IPFS CID which is used as a resource locator for finding the resource off-chain; the referenced Schema defines how to interpret the off-chain resource.
However, off-chain resources may live in a variety of locations, not just IPFS. We can get around the specific format/locator requirements of add_ipfs_message by posting add_onchain_message with a schema that defines some other resource locator (ie, a URL, AWS S3 bucket locator, etc). However, that message then would need to reference a Schema that defines how the off-chain payload itself is to be interpreted, and for that, none of the existing payload locations of OnChain, IPFS, or the stateful-storage locations Itemized or Paginated accurately describe this.
Suggestion: Expand the PayloadLocation enum with an OffChain variant
This is the minimum change necessary to allow this use case. Future enhancements could explore defining a basic format for posting an off-chain reference, ie, an add_offchain_message extrinsic similar to add_ipfs_message, but more generic. However, for now, expanding the enum at least gives us the ability to create Schema definitions that accurately indicate the general payload location as being off-chain, but not specifically IPFS.
How this would work
In order to announce off-chain content, two Intents would be required:
- An
OnChain Intent whose Schema defines an object locator payload (ie, a URL, content-addressable location, etc) AND the SchemaId of the off-chain payload
- An
OffChain Intent whose Schema defines the shape of the off-chain payload itself
Content could thus be announced using the add_onchain_message extrinsic.
Searched for Related Issues
Feature Description
Details
Some recent use cases have arisen regarding how to describe off-chain content. Currently, Frequency has a single mechanism for posting & describing off-chain content: an Intent/Schema with
PayloadLocation::IPFS. Posting to such a schema requires, specifically, an IPFS CID which is used as a resource locator for finding the resource off-chain; the referenced Schema defines how to interpret the off-chain resource.However, off-chain resources may live in a variety of locations, not just IPFS. We can get around the specific format/locator requirements of
add_ipfs_messageby postingadd_onchain_messagewith a schema that defines some other resource locator (ie, a URL, AWS S3 bucket locator, etc). However, that message then would need to reference a Schema that defines how the off-chain payload itself is to be interpreted, and for that, none of the existing payload locations ofOnChain,IPFS, or the stateful-storage locationsItemizedorPaginatedaccurately describe this.Suggestion: Expand the
PayloadLocationenum with anOffChainvariantThis is the minimum change necessary to allow this use case. Future enhancements could explore defining a basic format for posting an off-chain reference, ie, an
add_offchain_messageextrinsic similar toadd_ipfs_message, but more generic. However, for now, expanding the enum at least gives us the ability to create Schema definitions that accurately indicate the general payload location as being off-chain, but not specifically IPFS.How this would work
In order to announce off-chain content, two Intents would be required:
OnChainIntent whose Schema defines an object locator payload (ie, a URL, content-addressable location, etc) AND theSchemaIdof the off-chain payloadOffChainIntent whose Schema defines the shape of the off-chain payload itselfContent could thus be announced using the
add_onchain_messageextrinsic.Searched for Related Issues