Skip to content
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

Ouroboros mini-protocols full specification #26

Open
scarmuega opened this issue Oct 4, 2022 · 0 comments
Open

Ouroboros mini-protocols full specification #26

scarmuega opened this issue Oct 4, 2022 · 0 comments

Comments

@scarmuega
Copy link
Contributor

Several tools in the Cardano developer ecosystem rely on direct access to the node using Ouroboros mini-protocols. Most of the wire-format is fully defined by the spec, except for certain messages which are specific to the Cardano ledger implementation.

In particular, ATM, we lack information regarding:

  • the "Local Tx-Submission" mini-protocol specification skips the definitions for the rejection reason message.
  • the "Local State Query" mini-protocol specification skips the definitions for the query and result messages.

Several teams attempted to reverse-engineering the Haskell code or intercept wire data to infer the CBOR structures. This is a complex and error-prone process that doesn't scale. On top of that, each cardano-node version might potentially change / augment these definitions.

This is an example of a community-driven effort to document the local-state-query mini-protocol:
https://arsmagna.xyz/docs/network-lsq/

Having a well-documented and up-to-date spec (message flows, CDDL, etc) would simplify the process of building & maintaining client libraries and tools for low-level interaction with the node.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

1 participant