aboutsummaryrefslogtreecommitdiffstats
path: root/notes
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-10-17 10:46:36 -0700
committerBryan Newbold <bnewbold@robocracy.org>2017-10-17 10:46:36 -0700
commit5f79aa1d3b80100e0207507a5d7b499599647918 (patch)
tree4465929744912f12688c7d222535718a5e20f405 /notes
parentb30dcccd4f6e3098e6bba7cc58ee12e4196a54e4 (diff)
downloadgeniza-5f79aa1d3b80100e0207507a5d7b499599647918.tar.gz
geniza-5f79aa1d3b80100e0207507a5d7b499599647918.zip
doc updates
Diffstat (limited to 'notes')
-rw-r--r--notes/register.md38
-rw-r--r--notes/sleep.md2
2 files changed, 31 insertions, 9 deletions
diff --git a/notes/register.md b/notes/register.md
index f036543..1bc7055 100644
--- a/notes/register.md
+++ b/notes/register.md
@@ -1,22 +1,44 @@
-### SLEEP File Types
+### Register File Types
- key
- no header, raw bytes
- tree
+ tree: SLEEP merkel tree
magic: 0x05025702
entry-size: 40 bytes
algorithm name: 'BLAKE2b' (len=7)
entry: 32-byte BLAKE2b node hash + 8-byte Uint64BE length
- data
- no header, raw bytes
- signatures
+ signatures: SLEEP array
magic: 0x05025701
entry-size: 65
algorithm name: 'Ed25519' (len=7)
entry: 64-byte Ed25519 signature
- bitfield
+ bitfield: SLEEP array of bitfields
magic: 0x05025700
entry-size: 3328
algorithm name: '' (len=0)
entry: 1024 bytes data, 2048 bytes tree, 256 bitfield
+ key: public key
+ no header, raw bytes
+ data
+ no header, raw bytes, concatonated
+
+### Register API
+
+ SleepDirectoryRegister struct
+ open(directory, prefix)
+ create(directory, prefix, options)
+
+ file handles for tree, sig, bitfield, data; key is write-once
+
+ has(index) -> bool
+ has_all() -> bool
+ has_range(start, end) -> bool
+ get(index) -> data (arbitrary length)
+ append(entry) -> index written
+ len() -> u64
+ len_bytes() -> u64
+ verify() -> bool (verifies merkel tree against data, and signatures)
+ check() -> bool (quick consistency check of lengths, etc)
+ writable() -> bool
+
+ read_block(start, end) -> read api implementer
+
diff --git a/notes/sleep.md b/notes/sleep.md
index 5fe5d10..600b5c7 100644
--- a/notes/sleep.md
+++ b/notes/sleep.md
@@ -36,6 +36,6 @@ Fixed 32-bytes
get_algorithm() -> &str
read(index) -> &bytes[]
write(index, &bytes[])
- length() -> u64
+ len() -> u64
First time around just do regular file seek() stuff