Cardano Rust Ouroboros Network
This crate implements the networking layer for the Ouroboros blockchain protocol.
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.
Sponsorship
You may sponsor this project on Patreon, or it's individual contributors, another way to support this project is to delegate to DOLCA Cardano Stake Pool.
Individual Contributors
- Pavel Šimerda (@pavlix) - Lead Developer
- Cardano (ADA) UTXO: addr1qyaxz80syzp4stauqrde3q23s44tv4qftfm7sh0nl72rkp49pdnz3gaufp4pk4qc6dk6nlpcqkx054fzu2qkzs8tmeqs9s7wa8
- Andrew Westberg (@AndrewWestberg) - Frequent Contributor
- Cardano (ADA) UTXO: addr1q9vmyd99hqde93nu8hvv3ee5ejrdcfex9cy8v6w7r6jrzu0l27sthj42mfetdc7kmyzycssdr2xajau53pxnjqslr63sp7jrau
- Mark Stopka (@mark-stopka) - Project Manager & Primary Source of Funding
- Cardano (ADA) UTXO: addr1q8n9fvnsdtdt5fpgtl5tmcwuffx6p8ghnglvdt9ww29sp2x55ludjw69v2yunl2p8utckd79etn7m3uaw69swxkmanlq4tvnkk
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
- Haskell Cardano Node Ouroboros Network Framework
- Haskell Cardano Node Ouroboros Network
Rust Sub-set of Cardano Node Ouroboros Network Protocols- CNCLI now uses this Rust crate for networking layer
License
This project is licensed under either of the following licenses:
- GNU General Public License v3.0 (LICENSE or https://www.gnu.org/licenses/gpl-3.0-standalone.html)
- GNU Lesser General Public License v3.0 (COPYING.LESSER or https://www.gnu.org/licenses/lgpl-3.0-standalone.html)
If for some reason you need different license, please open an issue, we will evaluate your request for project-specific licensing.