ecosistema-social-decentral.../protocols/hypercore.md

58 lines
3.0 KiB
Markdown
Raw Normal View History

2020-05-27 04:29:29 +02:00
# Hypercore
Hypercore, formerly known as Dat, is a distributed append-only log.
2020-06-13 04:33:33 +02:00
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."
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
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.
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
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.
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
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.
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
### Identity
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
### Networking
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
### Data
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
Hypercore optionally uses DNS to give short-names to keys, so that users can have a "foo.com" address.
2020-05-27 04:29:29 +02:00
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.
2020-06-13 04:33:33 +02:00
### Moderation & Reputation
2020-05-27 04:29:29 +02:00
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.
2020-06-13 04:33:33 +02:00
### Social & Discovery
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
### Privacy & Access Control
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
### User experience (if applies)
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
### Interoperability
2020-05-27 04:29:29 +02:00
### Scalability
2020-06-13 04:33:33 +02:00
Study on scalability of Dat vs HTTP for video streaming: http://www.diva-portal.org/smash/get/diva2:1318896/FULLTEXT01.pdf
### Metrics
2020-05-27 04:29:29 +02:00
2020-06-13 04:33:33 +02:00
### Governance & Business Models
2020-05-27 04:29:29 +02:00
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.
2020-06-13 04:33:33 +02:00
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
2020-05-27 04:29:29 +02:00
https://hypercore-protocol.org/