All Projects → input-output-hk → cardano-ledger

input-output-hk / cardano-ledger

Licence: Apache-2.0 license
The ledger implementation and specifications of the Cardano blockchain.

Programming Languages

haskell
3896 projects
TeX
3793 projects
Nix
1067 projects
Rich Text Format
576 projects
Makefile
30231 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to cardano-ledger

pallas
Rust-native building blocks for the Cardano blockchain ecosystem
Stars: ✭ 66 (-65.8%)
Mutual labels:  cardano
armada-alliance
Armada Alliance registry + website
Stars: ✭ 45 (-76.68%)
Mutual labels:  cardano
cardano-developer
A Cardano Developer Guide
Stars: ✭ 62 (-67.88%)
Mutual labels:  cardano
cashuwallet
Cashu is a cryptocurrency wallet for smartphones. Be your own bank. Accept payments or spend crypto directly from your phone.
Stars: ✭ 35 (-81.87%)
Mutual labels:  cardano
cardano-py
Python3 lib and cli for operating a Cardano Passive Node and using the API's. (PRE-ALPHA)
Stars: ✭ 17 (-91.19%)
Mutual labels:  cardano
guild-operators
Artifacts and scripts created by Guild operators
Stars: ✭ 263 (+36.27%)
Mutual labels:  cardano
high-assurance-legacy
Legacy code connected to the high-assurance implementation of the Ouroboros protocol family
Stars: ✭ 81 (-58.03%)
Mutual labels:  cardano
cardano-rosetta
An implementation of Rosetta for Cardano
Stars: ✭ 85 (-55.96%)
Mutual labels:  cardano
cardmintano
Graphical user interface for minting native tokens on Cardano
Stars: ✭ 29 (-84.97%)
Mutual labels:  cardano
nessus-cardano
A Cardano playground that explores various build/runtime aspects of the project. Something like an incubation space, before we are propose changes upstream. The initial focus is on "container first" for the Cardano node.
Stars: ✭ 92 (-52.33%)
Mutual labels:  cardano
project-icarus-chrome
Icarus, a reference implementation for a lightweight wallet developed by the IOHK Engineering Team.
Stars: ✭ 32 (-83.42%)
Mutual labels:  cardano
plutus-starter
A starter project for Plutus apps
Stars: ✭ 176 (-8.81%)
Mutual labels:  cardano
plutus-experimental-smart-contracts
Experimental Smart Contracts In Plutus.
Stars: ✭ 34 (-82.38%)
Mutual labels:  cardano
master
This is an Open-Source, community-driven project for the creation of a documentation hub for Raspberry Pi and ARM Cardano Stake Pool Operators.
Stars: ✭ 18 (-90.67%)
Mutual labels:  cardano
Pi-Pool
Cardano Stakepool on Raspberry Pi
Stars: ✭ 204 (+5.7%)
Mutual labels:  cardano
CryptoCurrency
Page to keep track of value & profits of a portfolio of cryptocurrency (based on Coinmarketcap, Bitfinex and Binance)
Stars: ✭ 27 (-86.01%)
Mutual labels:  cardano
scripts
StakePool Operator Scripts. Learn how to create and manage your StakePool with these simple scripts. Hardware-Ledger Support, Token/Asset Sending, Offline-Mode and more...
Stars: ✭ 200 (+3.63%)
Mutual labels:  cardano
detailed-plutus-lecture-notes
Initially started as my own personal lecture notes. Slowly, I'm converting this repo into an extremely detailed set of notes to help future pioneers, Cardano devs and anyone with an academic interest in DLTs and Blockchain Consensus Algorithms.
Stars: ✭ 21 (-89.12%)
Mutual labels:  cardano
cardano-addresses
Addresses and mnemonic manipulation & derivations
Stars: ✭ 118 (-38.86%)
Mutual labels:  cardano
ansible-role-cardano-node
Ansible role for the provisioning of Shelly Cardano binaries from source.
Stars: ✭ 20 (-89.64%)
Mutual labels:  cardano

Cardano Ledger

CEH GitHub Workflow Status (master)

This repository contains the formal specifications, executable models, and implementations of the Cardano Ledger.

The documents are built in our CI and can be readily accessed using the following links:

Era Design Documents Formal Specification CDDL
Byron Chain Spec, Ledger Spec CDDL, PDF
Shelley Design Spec CDDL
Allegra & Mary Multi-Currency, UTXOma Spec CDDL
Alonzo eUTXO Spec CDDL
Babbage batch-verification, CIP-31, CIP-32, CIP-33 Spec CDDL
Conway CIP-1694 Spec (WIP) CDDL

Other Documents:

In addition, there is a formalization of the Ledger Specification in Isabelle/HOL which can be found here.

Some user documentation is published on Read the Docs

Repository structure

The directory structure of this repository is as follows:

Building

It is recommended to use nix for building everything in this repository. Haskell files can be built with cabal inside of a nix shell.

Nix Cache

When using nix it is recommended that you setup the cache, so that it can reuse built artifacts, reducing the compilation times dramatically:

If you are using NixOS add the snippet below to your /etc/nixos/configuration.nix:

nix.settings = {
  experimental-features = [ "nix-command" "flakes" ];
  substituters = [
    "https://cache.nixos.org"
    "https://cache.iog.io"
  ];
  trusted-public-keys = [
    "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
  ];
};

If you are using the nix package manager next to another operating system put the following in /etc/nix/nix.conf:

experimental-features = nix-command flakes
substituters        = https://cache.iog.io https://cache.nixos.org/
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=

Building the LaTeX documents and executable specifications

When using nix the documents and Haskell code can be readily built by running:

nix-build

The LaTeX documents will be places inside directories named result*, e.g.:

result-2/ledger-spec.pdf
result-3/delegation_design_spec.pdf
result-4/non-integer-calculations.pdf
result-5/small-step-semantics.pdf
result-6/ledger-spec.pdf
result/blockchain-spec.pdf

Building individual LaTeX documents

Change to the latex directory where the latex document is (e.g. eras/shelley/formal-spec for the ledger specification corresponding to the Shelley release, or eras/byron/ledger/formal-spec for the ledger specification corresponding to the Byron release). Then, build the latex document by running:

cd <myLaTexDir>
nix-shell --pure --run make

For a continuous compilation of the LaTeX file run:

cd <myLaTexDir>
nix-shell --pure --run "make watch"

Testing

Before running tests with cabal test, the CARDANO_MAINNET_MIRROR environment variable should be set to the path to mainnet epochs on your local storage. Note that this is only needed for the Byron tests.

Submitting an issue

Issues can be filed in the GitHub Issue tracker.

However, note that this is pre-release software, so we will not usually be providing support.

Contributing

See CONTRIBUTING.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].