Add hypercore info

This commit is contained in:
Jay Graber 2020-06-12 19:33:33 -07:00
parent 06076d6dd1
commit d787718220
1 changed files with 24 additions and 20 deletions

View File

@ -2,52 +2,56 @@
Hypercore, formerly known as Dat, is a distributed append-only log.
It was originally designed as a peer-to-peer protocol for distributed file sharing, intended for scientific data sets, but expanded to other use cases.
Dat was created in 2013 as a protocol designed to help data analysts collaborate on changes to data sets, but has since expanded to other use cases. Dat was renamed Hypercore in 2020 to reflect the extent of the changes. The older Dat protocol was "a p2p hypermedia protocol that provides public-key-addressed file archives which can be synced securely and browsed on-demand."
## Overview
Hypercore has moved away from a distributed file system architecture. It focuses on the p2p distribution of an append-only log, and its main purpose is to be a building block for other applications. The switch to hypercore was motivated by performance and scaling improvements, and the addition of [mounts](https://blog.hypercore-protocol.org/posts/announcing-hyperdrive-10/) for nested hyperdrives. In addition, a DHT was added for peer lookup.
Hypercore uses public-key addressing to create a filesystem compatible with peer-to-peer networking.
A cryptographic keypair is used to sign the root of the Merkle tree as data is appended to it. Hyperdrive is the filesystem implemented on hypercore.
Content is stored as file drives under a public key. The public key could belong to a person or a site - it serves as the address of the content.
Hypercore focuses on mutable data by organizing content under keys. Files stored under a requested key can easily change at any time. To track changes, Hypercore keeps a version log of the dataset over time.
Example of a hypercore key:
### Identity
`87ed2e3b160f261a032af03921a3bd09227d0a4cde73466c17114816cae43336`
### Networking
Organizing content under keys creates a focus on mutable data. Files stored under a requested key can easily change at any time. To track changes, Hypercore keeps a version log of the dataset over time.
### Data
The Beaker browser is a decentralized web browser that uses Hypercore to allow users to easily publish to the web.
### Data structure
Hypercore optionally uses DNS to give short-names to keys, so that users can have a "foo.com" address.
The primary data structure used is a tried-based tree structure, Hyperdrive, that behaves like a folder of files.
Hyperdrive is built from "hypercores", append-only logs where data is arranged in Merkle trees.
### Network architecture & Connectivity
### Moderation & Reputation
Hypercore's distributed networking stack, "hyperswarm", combins a Kademlia-based DHT for global discovery with MDNS to discover peers on local networks.
By default, Hyperswarm connections are unencrypted.
### Identity
### Social & Discovery
Hypercore optionally uses DNS to give short-names to keys, so that users can have a "foo.com" address.
### Privacy & Access Control
### Monetization & Business models
### User experience (if applies)
Hypercore is fully open source and free to use. Each individual in the network is responsible for persisting the data they care about by either adding their own resources (running a node) or incentivizing another group to persist their data (paying a pinning service). Therefore, the network grows in capacity as new users join. Services that rely on Hypercore are incentivized to participate in the public DHT as servers to improve performance and availability of their data - and all participating nodes help with peer-to-peer data transfer and routing.
### Curation/Discovery
### Interoperability
### Scalability
Study on scalability of Dat (now Hypercore) vs HTTP for video streaming: http://www.diva-portal.org/smash/get/diva2:1318896/FULLTEXT01.pdf
Study on scalability of Dat vs HTTP for video streaming: http://www.diva-portal.org/smash/get/diva2:1318896/FULLTEXT01.pdf
### Governance
### Metrics
### Governance & Business Models
The Hypercore protocol's development is coordinated through the Dat Foundation nonprofit, and led by two companies, Blue Link Labs (which develops Beaker browser), and Hyperdivision consulting.
### Resources
Hypercore is fully open source and free to use. Each individual in the network is responsible for persisting the data they care about by either adding their own resources (running a node) or incentivizing another group to persist their data (paying a pinning service). Therefore, the network grows in capacity as new users join. Services that rely on Hypercore are incentivized to participate in the public DHT as servers to improve performance and availability of their data - and all participating nodes help with peer-to-peer data transfer and routing.
### Implementations & Applications
The [Beaker browser](https://beakerbrowser.com/) is a decentralized web browser for Dat & Hypercore sites.
### Links
https://hypercore-protocol.org/