2016-05-23 04:45:08 +02:00
|
|
|
[![Build Status](https://travis-ci.org/lbryio/lbry.svg?branch=master)](https://travis-ci.org/lbryio/lbry)
|
|
|
|
|
2015-09-11 21:06:28 +02:00
|
|
|
# LBRYnet
|
2015-08-20 17:27:15 +02:00
|
|
|
|
|
|
|
LBRYnet is a fully decentralized network for distributing data. It consists of peers uploading
|
|
|
|
and downloading data from other peers, possibly in exchange for payments, and a distributed hash
|
|
|
|
table, used by peers to discover other peers.
|
|
|
|
|
2015-09-11 21:06:28 +02:00
|
|
|
## Overview
|
2015-08-20 17:27:15 +02:00
|
|
|
|
|
|
|
On LBRYnet, data is broken into chunks, and each chunk is specified by its sha384 hash sum. This
|
|
|
|
guarantees that peers can verify the correctness of each chunk without having to know anything
|
|
|
|
about its contents, and can confidently re-transmit the chunk to other peers. Peers wishing to
|
|
|
|
transmit chunks to other peers announce to the distributed hash table that they are associated
|
|
|
|
with the sha384 hash sum in question. When a peer wants to download that chunk from the network,
|
|
|
|
it asks the distributed hash table which peers are associated with that sha384 hash sum. The
|
|
|
|
distributed hash table can also be used more generally. It simply stores IP addresses and
|
|
|
|
ports which are associated with 384-bit numbers, and can be used by any type of application to
|
|
|
|
help peers find each other. For example, an application for which clients don't know all of the
|
|
|
|
necessary chunks may use some identifier, chosen by the application, to find clients which do
|
|
|
|
know all of the necessary chunks.
|
|
|
|
|
2015-09-11 21:06:28 +02:00
|
|
|
## Running
|
2015-08-20 17:27:15 +02:00
|
|
|
|
|
|
|
LBRYnet comes with an file sharing application, called 'lbrynet-console', which breaks
|
|
|
|
files into chunks, encrypts them with a symmetric key, computes their sha384 hash sum, generates
|
|
|
|
a special file called a 'stream descriptor' containing the hash sums and some other file metadata,
|
|
|
|
and makes the chunks available for download by other peers. A peer wishing to download the file
|
|
|
|
must first obtain the 'stream descriptor' and then may open it with his 'lbrynet-console' client,
|
|
|
|
download all of the chunks by locating peers with the chunks via the DHT, and then combine the
|
|
|
|
chunks into the original file, according to the metadata included in the 'stream descriptor'.
|
|
|
|
|
2015-12-05 22:25:20 +01:00
|
|
|
To install and use this client, see [INSTALL](INSTALL.md) and [RUNNING](RUNNING.md)
|
2015-08-20 17:27:15 +02:00
|
|
|
|
2015-09-11 21:06:28 +02:00
|
|
|
## Installation
|
2015-08-20 17:27:15 +02:00
|
|
|
|
2015-12-05 22:25:20 +01:00
|
|
|
See [INSTALL](INSTALL.md)
|
2015-08-20 17:27:15 +02:00
|
|
|
|
2015-09-11 21:06:28 +02:00
|
|
|
## Developers
|
2015-08-20 17:27:15 +02:00
|
|
|
|
|
|
|
Documentation: doc.lbry.io
|
2016-03-09 18:26:07 +01:00
|
|
|
Source code: https://github.com/lbryio/lbry
|
2015-08-20 17:27:15 +02:00
|
|
|
|
|
|
|
To contribute to the development of LBRYnet or lbrynet-console, contact jimmy@lbry.io
|
|
|
|
|
2015-09-11 21:06:28 +02:00
|
|
|
## Support
|
2015-08-20 17:27:15 +02:00
|
|
|
|
|
|
|
Send all support requests to jimmy@lbry.io
|
|
|
|
|
2015-09-11 21:06:28 +02:00
|
|
|
## License
|
2015-08-20 17:27:15 +02:00
|
|
|
|
2015-12-06 20:36:41 +01:00
|
|
|
See [LICENSE](LICENSE)
|