The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Find a file
2016-06-07 04:54:39 -04:00
lbrynet change variable name to lbrynet_log 2016-06-07 04:30:22 -04:00
packaging merge add-tests-to-travis updates 2016-06-04 15:11:51 -04:00
tests remove test_bot 2016-05-30 16:14:32 -04:00
.gitignore add tests and linting 2016-05-27 15:46:00 -05:00
.gitmodules use lbryio/lbry-osx-app.git for lbry/packaging/osx/lbry-osx-app 2016-06-07 04:41:26 -04:00
.pylintrc add tests and linting 2016-05-27 15:46:00 -05:00
.travis.yml merge add-tests-to-travis updates 2016-06-04 15:11:51 -04:00
app.icns update status bar app 2016-03-02 02:00:45 -05:00
ez_setup.py initial commit 2015-08-20 11:27:15 -04:00
INSTALL.md add divider line 2016-05-23 15:22:42 -04:00
LICENSE initial commit 2015-08-20 11:27:15 -04:00
MANIFEST.in fixes so we can build an sdist 2016-03-22 22:15:07 -04:00
README.md i have the best words 2016-05-23 16:25:14 -04:00
requirements.txt add base58 2016-04-09 15:43:25 -04:00
RUNNING.md update documentation to reflect using lbryum by default 2016-03-09 12:26:07 -05:00
setup.py change description 2016-05-23 16:13:53 -04:00
setup_win32.py update win32 setup script to include lbryum 2016-02-28 12:45:21 -05:00

Build Status

LBRYnet

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.

Installation

Download the latest release or see INSTALL.md for manual installation.

Overview

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.

For Developers

LBRY 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'.

For detailed instructions, see INSTALL.md and RUNNING.md.

Documentation: doc.lbry.io (may be out of date)

Source code: https://github.com/lbryio/lbry

To contribute, join us on Slack or contact josh@lbry.io. Pull requests are also welcome.

Support

Please open an issue and describe your situation in detail. We will respond as soon as we can.

For private issues, contact josh@lbry.io.

License

See LICENSE