-
Notifications
You must be signed in to change notification settings - Fork 115
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
Standardise Argus
access policy signals in metadata
#4332
Comments
Ex-post Note: read this issue as well #4557, as it lifts publication dates into runtime for the purposes of making NFT and other native features aware of this, hence the proposal below should be revised in light of this. ProposalWarning: This proposal covers what the user may want influence in terms of access policy, not curators. Recall that content refers to any runtime level object under a channel, so a video, a playlists, and in the future probably many other types of objects (livestreams, articles, etc.) Recall the term insiders which refers to the following group in the context of a given channel
Let
We define a new messages enum ChannelAuthorizationPolicyType {
ALL = 0; // Any gateway user can access direct channel assets, insiders access full channel assets.
ONLY_INSIDERS = 1; // Insiders access full channel assets.
}
// To be used in `create_channel` and `update_channel`extrinsic, wrapping base message
message WithChannelAuthPolicy {
ChannelAuthorizationPolicyType policy_type = 0; // policy
bytes raw_inner_message = 1; // includes primary semantics of action ,like `CreateChannel´, `CreateProfile`, ....
}
---
// "content" is anything published under a channel
enum ContentAuthorizationPolicyType {
ALL = 0; // Any gateway user can access content assets according to monetization auth policy, insiders access content assets.
HIDDEN = 1; // Insiders access content assets.
HIDDEN_UNTIL = 2; // Same as HIDDEN before some premiere time, then same as ALL after. Premiere time is found in message below, no algebraic types :(.
}
enum MonetizedAuthorizationPolicyType {
UNRESTRICTED = 0;
HOLDS_CHANNEL_NFT = 1;
HOLDS_CHANNEL_CRT = 2;
HOLDS_CHANNEL_NFT_OR_CRT = 3;
HOLDS_NFT_OR_UNTIL = 4;
HOLDS_CHANNEL_CRT_OR_UNTIL = 5;
HOLDS_CHANNEL_CRT_OR_NFT_OR_UNTIL = 6;
PAID_PAYWALL = 7;
}
// To be used with `create_video` and `update_video`, wrapping base message
message WithContentAuthorizationPolicy {
ContentAuthorizationPolicyType policy_type = 0;
optional Timestamp premiere_time = 1; // for `HIDDEN_UNTIL` policy
MonetizedAuthorizationPolicyType monetization_type = 2;
optional Timestamp monetization_premier_time = x; // for `HOLDS_NFT_OR_UNTIL`, `HOLDS_CHANNEL_CRT_OR_UNTIL` and `HOLDS_CHANNEL_CRT_OR_NFT_OR_UNTIL`
optional uint64 crt_bar = ; // for `HOLDS_CHANNEL_CRT`, `HOLDS_CHANNEL_CRT_OR_UNTIL` or `HOLDS_CHANNEL_NFT_OR_CRT `
optional uint64 paywall_price = x; // for `PAID_PAYWALL`
raw_inner_message: bytes; // includes primary semantics of action ,like `CreateVideo´, `CreatePlaylist`, ....
} This is a sketch, feel free to clean this up if there is a better representation which roughly allows the same sort of policy space. Critically, this way of wrapping inner messages means that applications can permissionlessly introduce new concepts, like music, books, article or anything else, and Note
|
Isn't the beauty of the Not all apps may discose the meaning of their messages but some might. Then it will be up to DAO participants to find a way to collect known signals (maintained by builders or anyone).
This is not for the DAO to decide in my opinion. Whatever technical solution they come up with may be their competitive advantage. |
There has to be some defined standard for how apps signal what they want this infrastructure to do, otherwise how is this supposed to work at scale? Is each app developer going to go in and ask for favors from individual operators to work this or that way for certain kinds of content? That does not make sense. There has to be a standard which defines the service the infrastructure can model, and this standard can evolve over time. Also, remember, while the blockchain messages are permissionless to write, having the infrastructure behave in a particular way in response to those messages cannot be a free for all. These operators are working in the DAO, paid by the DAO, staking in the DAO and accountable to the DAO, hence the DAO effectively owns the full CDN, of course it decides how it operates. If an app wants to use some other means of distribution, it can, at least unless the runtime content terms restrict this: #4350 |
Got you. So whatever is in stock here for GW to unlock on argus' side we can't know yet. |
Argus
access policy signals in metadata
Obs, be aware that all permissions relating to CRTs, that is
will be blockers, as there is no near term plan or other imperative to implement hte otherwise quite onerous CRT mappings in the QN, which is what powers Argus. So v1 of this probably should just not support these. |
Background
There are already a variety of metadata fields that should impact of
Argus
, such asQuestion
Argus
will not automatically understand these policy signals in these new message formats. Seems the answer here has to partially be to lift out policy stuff into a special layer, sort of like what has been suggested for application actions.: Apps as first-class citizens #4307Its not clear if gateway still should pay in all cases.
The text was updated successfully, but these errors were encountered: