GDP Project List¶
Projects on this list are intended to be "student size", that is, not too large and not too small. "Fix this bug" is too small. "Redesign the universe" is too large.
See also GDPv1 Prototype for Nitesh's project about his research prototype of the next iteration of the GDP.
Wiki links are to pages to flesh out the description, give current status, and document any issues.
The order is vaguely from highest to lowest priority (in my opinion), then from most specific and smallest tasks to less specific and larger tasks, with the proviso that if B depends on A, A will be listed first.
- Integrate Replication Code. EricA.
- Proofs in Content Responses. Include metadata in read requests that prove that the data is legitimate. NiteshM. Related to Light Weight Signatures.
- Light Weight Signatures. Reduce append overhead in client and server, probably by using hashes on intermediate records. NiteshM.
- Compressed Network Protocol. FlowIDs etc. NiteshM & PaulB.
- Compressed Disk Representation.
- Advisory Log Truncation. Mark old data as expendable.
- Mandatory Log Truncation. Guarantee that old data is expunged.
- Ephemeral Logs, i.e., in-memory.
- Control Plane Interface, i.e., some way of adding Control Plane services into the GDP infrastructure. LaisaC?
- Log Directory Service mapping human names to internal names. Probably requires Control Plane Interface, since this service should probably exist in the control plane.
- Service Directory Service. Ways to find available services. JordanT?
- Log Creation Service. Requires Control Plane Interface.
- System Visualization. NeilA.
- Sensor Visualization. Already have some.
- Stress Testing. GrifffinP working on test program.
- Unit Testing. We have neither infrastructure nor tests.
- Functional Testing. The current tests are limited.
- Regression Testing. Jenkins verifies that checkins compile, but that's as far as it goes.
- Server Identity. Servers must have keypairs in order to authenticate responses. Needed by Authenticated Responses, Authenticated Advertisements, Scoped Data, and probably others.
- Authenticated Responses, notably on APPEND commands. Requires Server Identity. NiteshM is looking at this.
- Authenticated Advertisements, so a rogue server can't advertise a log that they do not have the permissions to serve. NiteshM.
- Separate Creator vs Writer Authorization. This will require introducing Organiztion CAs. NiteshM?
- Metadata Hash as Log Name. Requires Log Directory Service.
- Scoped Data, i.e., keeping private data within an organization. Requires Server Identity.
- Client Writer State, that is, maintaining current write state between client restarts.
- GDP 1.0 Release. We are committed to doing a release in October for Terraswarm. However, we are not committed to a particular set of deliverables.
Tasks That Require Elucidation¶
These tasks aren't yet specific enough to be actionable, but in some cases people are investigating the issues.
Perhaps these should not happen.
- Deprecate "GCL" name — just use "log".
Move things here when they are completed so that discussions are not orphaned from the Wiki document tree.