This document describes the file-structure of the repository, and what roles various files play.
rfcs/This directory contains all accepted RFCs (or "requests for comments") made according to the RFC processdocs/Documentation for the code and processes for contributing are here.src/All code, both application and library code, is in this directory.*.opamThese files are needed for ourdunebuild system. There must be one for each library inlib. When you create a librarylib/foo_libwith adunefile giving the library's name asfoo_lib, you must create afoo_lib.opamfile.config.mlhThis file defines some constants for theocamlpreprocessor we use.external/- Local copies of external libraries which we've had to make some tweaks to.
lib/Libraries powering coda. The libraries here basically fall into two categories.- General purpose data-types and functionality. This includes
snarky,fold_lib,vrf_lib,sgn, and others. - Application specific functionality, structured as a library. This includes
syncable_ledger,staged_ledger,transaction_snark, and others.
- General purpose data-types and functionality. This includes
app/Applications live here.cli/This is the coda client/daemon. It is what you use to run a staker, a snarker, or a simple client for sending and receiving transactions.website/The Coda Protocol website.reformat/This program runsocamlformaton most of the files in the source tree, with a few exceptions.logproc/This utility reads fromstdinand can filter and pretty print the log messages emitted by the coda daemon.kademlia-haskell/This is a simple wrapper around a Haskell implementation of the kademlia DHT.