diff options
author | Mathias Buus <mathiasbuus@gmail.com> | 2016-03-15 15:43:02 -0700 |
---|---|---|
committer | Mathias Buus <mathiasbuus@gmail.com> | 2016-03-15 15:43:02 -0700 |
commit | b113dcb8d353b3a915d4d33d852553e58f659cf8 (patch) | |
tree | b569d58a5a2aea7597f1fe04f29f21c9bc5da070 /hyperdrive.md | |
parent | f35f3027bbd1991a046fb12b2a0cc637410a660a (diff) | |
download | dat-docs-b113dcb8d353b3a915d4d33d852553e58f659cf8.tar.gz dat-docs-b113dcb8d353b3a915d4d33d852553e58f659cf8.zip |
add old hypercore goals section
Diffstat (limited to 'hyperdrive.md')
-rw-r--r-- | hyperdrive.md | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/hyperdrive.md b/hyperdrive.md index 3a00ce3..293f8c5 100644 --- a/hyperdrive.md +++ b/hyperdrive.md @@ -1,4 +1,4 @@ -# Hyperdrive Specification +# Hyperdrive + Hypercore Specification ## DRAFT Version 1 @@ -8,6 +8,12 @@ Hyperdrive is the peer-to-peer data distribution protocol that powers Dat. It co The goal of hypercore is to distribute append-only logs across a network of peers. Peers download parts of the logs from other peers and can choose to only download the parts of a log they care about. Logs can contain arbitrary binary data payloads. +A core goal is to be as simple and pragmatic as possible. This allows for easier implementations of clients which is an often overlooked property when implementing distributed systems. First class browser support is also an important goal as p2p data sharing in browsers is becoming more viable every day as WebRTC matures. + +It also tries to be modular and export responsibilities to external modules whenever possible. Peer discovery is a good example of this as it handled by 3rd party modules that wasn't written with hyperdrive in mind. A benefit of this is a much smaller core implementation that can focus on smaller and simpler problems. + +Prioritized synchronization of parts of a feed is also at the heart of hyperdrive as this allows for fast streaming with low latency of data such as structured datasets (wikipedia, genomic datasets), linux containers, audio, videos, and much more. To allow for low latency streaming another goal is also to keep verifiable block sizes as small as possible - even with huge data feeds. + ## How Hypercore works ### Flat Trees |