Skip to content

Protocol Documentation

David Vorick requested to merge testing into master

The protocol is nearing a final state, and the consensus documentation now reflects that. I tried to make Consensus.md comprehensive (and proper markdown), but there are 4 things left to document:

  1. The specification for encoding structs into strings (that get hashed)
  2. The specification for deriving block id + merkle root, miner output id, siacoin output id, contract id, storage proof output id, siafund output id, siafund claim output id.
  3. Specify which crypto is in use (hash algo, signature algo)
  4. Pick a timestamp for the genesis block.

Everything else should be specified, although not perfectly followed by the codebase yet. The codebase does not follow rules for:

  • siacoins having 128bits
  • siafunds are not followed at all
  • outputs that can't be spent for 100 blocks
  • limitations on storage proof transactions

Other than that, we're pretty much done with the protocol, and it's fairly polished.

Merge request reports