#networking-layer #ouroboros #cardano #cardano-blockchain #protocols #handshake #framework

cardano_ouroboros_network

This crate implements the networking layer for the Ouroboros protocol used by Cardano blockchain

6 releases

0.2.8 Dec 11, 2021
0.2.7 Oct 11, 2021
0.2.6 Jun 7, 2021
0.2.4 May 17, 2021
0.2.2 Mar 16, 2021

#7 in #ouroboros

GPL-3.0 OR LGPL-3.0-only

65KB
1.5K SLoC

Cardano Rust Ouroboros Network

This crate implements the networking layer for the Ouroboros blockchain protocol.

Mini-protocol Implementation Status

Protocol Name Implementation Status
BlockFetch Not Implemented
ChainSync Implemented
Handshake Implemented
KeepAlive Not Implemented
LocalStateQuery Not Implemented
LocalTxMonitor Not Implemented
LocalTxSubmission Not Implemented
TipSample Not Implemented
TxSubmission Partially Implemented
TxSubmission2 Not Implemented

Contributing

Submit Pull Requests

This repository implements a GitHub Action to make sure that the PR name follows Conventional Commits specification. Make sure your PRs follow the referred specification to pass Continuous Integration testing.

Cardano Project Catalyst

We regularly apply for funding from individual funds of Cardano Project Catalyst, below you can see our history of applications for funding:

Closed Funding Rounds

Ouroboros Network Protocol Documenation

There are two documents which describe various levels of the networking layer of the Cardano Node Shelley implementation:

This document explains the technical requirements and key constraints for the networking layer of the Cardano Shelley implementation of Ouroboros Praos. This is a design document.

This document is a technical specification of the networking protocol. It includes serialisation formats, necessary details of multiplexer and technical specifications of mini-protocols used by either node-to-node and node-to-client flavors of the protocol.

Wireshark Plug-in

Emurgo CDDL CodeGen

Codegen serialization logic for CBOR automatically from a CDDL specification.

Instead of hand-writing CBOR code and writing tests to make sure it matches your CDDL spec, it's much faster to just generate the code from the spec! It will save time and make it easier to keep all your code in sync with any changes to your specification.

You can learn more about CDDL here.

Reference implementations

License

This project is licensed under either of the following licenses:

If for some reason you need different license, please open an issue, we will evaluate your request for project-specific licensing.

Dependencies

~8–23MB
~349K SLoC