SkillAgentSearch skills...

Manul

Round-based distributed protocols

Install / Use

/learn @entropyxyz/Manul
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Round-based distributed protocols

crate Docs License Build Status Coveralls

The body is round

Goals

  • Sans-I/O API. That is, bring your own async libraries, or don't.
  • Generic over signer/verifier/signature types, so you can use whatever your blockchain uses.
  • Support parallelization where possible, to offload expensive cryptographic operations into spawned tasks (but since it's Sans-I/O, it's up to you to make use of that functionality).
  • Provide tools for unit and integration testing of the protocols.
  • Support generating malicious behavior proofs with bundled signed messages.
  • Support caching messages intended for the next round and then applying them when it starts (since some nodes can finalize a round before others and send out a new batch of messages).

Assumptions

We try to find the balance between supporting the majority of protocols and keeping the API simple. Currently we operate under the following assumptions:

  • A protocol consists of several rounds.
  • A round generates messages to send out without any additional external input, then waits for messages from other parties. When it receives enough messages, it can be finalized.
  • On finalization, a round can return the result, halt with an error, or continue to another round.
  • Each round declares a set of parties it sends messages to. Then it can optionally send a direct message to each party in the set, send a regular broadcast to all parties in the set, or send an echo-broadcast to all parties in the set (that is, a broadcast where it is ensured that all parties received the same thing). Any number of these options can be picked.

Related Skills

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated6mo ago
Forks1

Languages

Rust

Security Score

77/100

Audited on Sep 19, 2025

No findings