summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/design.txt21
1 files changed, 19 insertions, 2 deletions
diff --git a/doc/design.txt b/doc/design.txt
index 9007cb8..c4b5f2a 100644
--- a/doc/design.txt
+++ b/doc/design.txt
@@ -4,8 +4,25 @@ This document describes the design of catlfish, an implementation of a
Certificate Transparency (RFC6962) log.
We have
-
-- a db storing data (persistently) and replicating r/o copies to n
+- a db storing the log (persistently) and replicating r/o copies to n
secondary nodes
- 1 primary node writing the hash tree to the r/w db
- n secondary nodes reading from local r/o db
+
+Nodes reply to the https requests specified in RFC 6962.
+Nodes can operate in one of two modes -- primary or secondary.
+[TODO: A secondary node can become primary. When, how?]
+
+Primary nodes
+- have write access to the ctlog database (Mnesia?) holding the hash
+ tree
+- store submitted cert chains on disk (DETS?)
+- add the stored cert chains to the hash tree and sign the tree
+ periodically (at least every 30-60 minutes or so)
+
+Secondary nodes
+- have read access to the ctlog database
+
+Open questions
+- What's a good MMD? Google seem to use an MMD of well over 1h at the
+ moment (early 2014).