Browse Source

Added a README with a rough project overview.

Matthew Carr 3 years ago
commit
8b2e279fd9
1 changed files with 63 additions and 0 deletions
  1. 63 0
      README.md

+ 63 - 0
README.md

@@ -0,0 +1,63 @@
+### Outline of paper
+
+*Overview
+  Cover major features of the system and describe how it uses
+  and improves traditional web technologies.
+
+*Data Definition
+  Define the format of:
+   -Keys
+   -Blocks
+   -Directories
+   -Files
+   -Paths
+   -Messages
+   -Fragments
+   -Programs
+   
+*Node Definition
+  Describe the roles and responsibilities of nodes:
+   -API provided to programs
+   -Persitence of data locally and over the network.
+   -Forwarding BlockTree messages and HTTP requests to authorized Programs.
+   -Handling BlockTree messages from the network that are for the node
+    itself.
+   -Secure management of cryptographic keys using a TPM.
+   -Forwarding traffic to other nodes.
+   -Resolving node IDs to IP addresses.
+    
+*Network Definition
+  -Overlay network definition.
+  -Mechanism to resolve node IDs to IP addresses.
+  -Node hierarchy and leader election among peers.
+  -Distributed Block locking for exclusive writes.
+  -Opportunistic concurrency by default, with the rule
+   that the last write known to the leader is
+   the winner.
+
+*Program API
+  -Provide file creation API. Blocks can be created which are
+   good for reading sequencially or good for reading randomly.
+  -Provide binary file IO. The caller provides a plan-text
+   Path and can open a block for reading, writing, or both.
+   The API should stream based.
+  -Provide stream wrappers for doing text IO.
+  -Provide API for registering callbacks to be notified when blocks
+   are modified.
+  -Method to lock a block for exclusive write access.
+  -API to register callbacks to handle BlockTree and HTTP requests.
+  -A method to send Messages to other nodes and HTTP requests to
+   other hosts.
+
+*Applications
+  -A distributed document database:
+     Find or create a library for reading and writing BSON files and use
+     it for storing data.
+  -A web development framework which allows one to register middleware
+   to handle HTTP requests. Provides Request and Response abstractions
+   to middleware.
+  -If time allows create an MVC middleware implementation.
+  -A middleware implementation for serving static content.
+  -A video streaming server.
+  -An application for managing contacts.
+  -A secure messaging and chat application.