You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This ticket outlines the Hard Rules ruleset. The ruleset should be sufficiently flexible to support a wide range of actual use-cases of rules, without needing to fork the integrity zome.
In order to achieve this, when publishing a Mew, the author must include their chosen Rules for participation. Those rules published in an Entry which must exist on the DHT. Then, upon validation, we do a must_get_ call on the rules Entry, and apply the validation rules specified within it.
Deterministic Rules
Allow list of types of responses: licks, mewmews, quotes, replies
Allow list of AgentPubKeys who can respond
Deny list of AgentPubKeys who cannot respond
Allow list of words / phrases (lowercase comparison) that can be included in a response text
Deny list of words / phrases (lowercase comparison) that cannot be included in a response text
List of "moderator" AgentPubKeys where all signatures are required to to publish a response
List of "moderator" AgentPubKeys where M of N threshold of signatures is required to publish a response
Architecture
structMew{
...
response_ruleset:EntryHash,approval_signatures:Vec<ActionHash>// signed valid actions from the approved_by_agents, where the entry is a MewApproval and the MewApproval's MewContent matches this Mew's content}structResponseRuleSet{name:Option<String>,description:Option<String>,rules:Vec<ResponseRule>// If *any* of theses rules fail validation, the response is invalid}structResponseRule{agents_allowed:Vec<AgentPubKey>,// block list takes precedent over allow list (i.e. if an agent is both allowed & blocked, they are blockedagents_blocked:Vec<AgentPubKey>,response_types_allowed:Vec<MewType>,response_types_blocked:Vec<MewType>,content_allowed:Vec<String>,// both mew content text and content rule are compared as lowercase stringscontent_blocked:Vec<String>,approved_by_agents:Vec<RequireApprovalRule>,// require a signature by these agents "approving" the Mewapproved_by_agents_threshold:Option<u64>,// None means that **all** agents must approve, Some(u64) means that at least that number of agents must approve}structMewApproval{mew_author:AgentPubKey,// author of mew contentmew_content:MewContent,// MewContent that is approvedapproved_by:AgentPubKey// agent authoring this MewApproval}
The text was updated successfully, but these errors were encountered:
It makes sense to split Participation Protocols into a few classes:
This ticket outlines the Hard Rules ruleset. The ruleset should be sufficiently flexible to support a wide range of actual use-cases of rules, without needing to fork the integrity zome.
In order to achieve this, when publishing a Mew, the author must include their chosen Rules for participation. Those rules published in an Entry which must exist on the DHT. Then, upon validation, we do a
must_get_
call on the rules Entry, and apply the validation rules specified within it.Deterministic Rules
Architecture
The text was updated successfully, but these errors were encountered: