De-MLS FURPS
Functionality
- A messaging group can use peer scoring to track bad behaviour and remove misbehaving members
- A messaging group can use steward list to elect and function with multiple stewards
- Messaging groups with multiple stewards can deterministically handle multiple commits
- Messaging groups with multiple stewards can trigger and recover from a partial freeze to resolve basic conflicts
- Messaging groups have a recovery mode to deal with more serious unexpected group states
- New joiners can properly setup the group state after being accepted into the group
- Commits can be validated and violations appropriately handled
Usability
- De-MLS protocol with multi-steward support is published in a specification
- The specification describes peer scoring
- The specification describes steward lists and election process
- The specification describes different conflict resolution and recovery mechanisms
- An API spec is published that exposes de-MLS functionality and abstracts consensus
- De-MLS is implemented in Rust
- The De-MLS API is available in Rust and C
- De-MLS is included in the Logos Chat protocol stack specification
- De-MLS is integrated into a working Logos Chat module deployed to Logos Core
Reliability
Performance
- The consensus mechanism is scalable to groups of 10000 members
- The integrated de-MLS protocol is scalable to groups of 10000 members
- Group state can be updated within a reasonable amount of time
Supportability
- Hashgraph-like consensus is separated out into its own library for modularity
Miscellaneous dependencies:
- Dependency on DST for benchmarking of consensus mechanism
- Dependency on DST for benchmarking of de-MLS integrated protocol
- Dependency on ChatSDK to clarify requirements for API