Fill out a README and reference the whitepaper in docs

This commit is contained in:
Jeremy Wall 2022-08-05 14:17:45 -04:00
parent e52034ad4a
commit ff4af672b1
2 changed files with 26 additions and 0 deletions

23
README.md Normal file
View File

@ -0,0 +1,23 @@
<!--
Copyright 2022 Jeremy Wall (Jeremy@marzhilsltudios.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# A generic implementation of a Merkle DAG
This is an exploration of the paper [merkle-crdts](https://arxiv.org/pdf/2004.00107.pdf) as well,
if I'm honest, as an excuse to use [proptests](https://crates.io/crate/proptest).
The proptest assertions are hidden behind the `proptest` feature since they can take longer to run than
the standard tests. To run them: `cargo test --features proptest`

View File

@ -70,6 +70,9 @@ where
/// Add a new payload with a required set of dependency_ids. This method will construct a new node
/// and add it to the DAG with the given payload item and dependency id set. It is idempotent for any
/// given set of inputs.
///
/// One result of not constructing/adding nodes in this way is that we ensure that we always satisfy
/// the implementation rule in the merkel-crdt's whitepaper.
pub fn add_node<'a>(
&'a mut self,
item: N,