forked from LBRYCommunity/lbry-sdk
update readme
This commit is contained in:
parent
a1650d7f03
commit
06466db1b0
1 changed files with 33 additions and 60 deletions
93
README.md
93
README.md
|
@ -3,19 +3,30 @@
|
||||||
|
|
||||||
# LBRY
|
# LBRY
|
||||||
|
|
||||||
LBRY is a fully decentralized, open-source protocol facilitating the discovery, access, and (sometimes) purchase of data.
|
LBRY is a fully decentralized, open-source protocol facilitating the
|
||||||
|
discovery, access, and (sometimes) purchase of data.
|
||||||
|
|
||||||
## Installing LBRY
|
This repo is a reference implementation of the LBRY protocol and
|
||||||
|
provides daemon that can interact with the network via a json-rpc
|
||||||
|
interface.
|
||||||
|
|
||||||
We provide binaries for Windows, macOS, and Debian-based Linux.
|
## Installing the LBRY App
|
||||||
|
|
||||||
|
The LBRY App is a decentralized content marketplace built on top of
|
||||||
|
the LBRY protocol. We provide binaries for Windows, macOS, and
|
||||||
|
Debian-based Linux.
|
||||||
|
|
||||||
| Windows | macOS | Linux |
|
| Windows | macOS | Linux |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| [Download MSI](https://lbry.io/get/lbry.msi) | [Download DMG](https://lbry.io/get/lbry.dmg) | [Download DEB](https://lbry.io/get/lbry.deb) |
|
| [Download](https://lbry.io/get/lbry.msi) | [Download](https://lbry.io/get/lbry.dmg) | [Download](https://lbry.io/get/lbry.deb) |
|
||||||
|
|
||||||
Our [releases page](https://github.com/lbryio/lbry/releases/latest) also contains the latest release, pre-releases, and past builds.
|
Our [releases page](https://github.com/lbryio/lbry-app/releases/latest) also contains the latest release, pre-releases, and past builds.
|
||||||
|
|
||||||
|
|
||||||
|
## Using the LBRY daemon
|
||||||
|
|
||||||
|
See our quickstart guide at http://lbry.io/quickstart for details on how to install and use the `lbrynet-daemon`.
|
||||||
|
|
||||||
For instructions on building from source, see [INSTALL.md](INSTALL.md).
|
|
||||||
|
|
||||||
## What is LBRY?
|
## What is LBRY?
|
||||||
|
|
||||||
|
@ -23,61 +34,23 @@ LBRY is a fully decentralized network for distributing data. It consists of peer
|
||||||
and downloading data from other peers, possibly in exchange for payments, and a distributed hash
|
and downloading data from other peers, possibly in exchange for payments, and a distributed hash
|
||||||
table, used by peers to discover other peers.
|
table, used by peers to discover other peers.
|
||||||
|
|
||||||
On LBRY, data is broken into chunks, and each chunk is specified by its sha384 hash sum. This
|
On LBRY, data is broken into chunks, and each chunk is content
|
||||||
guarantees that peers can verify the correctness of each chunk without having to know anything
|
addressable, specified by its sha384 hash sum. This guarantees that
|
||||||
about its contents, and can confidently re-transmit the chunk to other peers. Peers wishing to
|
peers can verify the correctness of each chunk without having to know
|
||||||
transmit chunks to other peers announce to the distributed hash table that they are associated
|
anything about its contents, and can confidently re-transmit the chunk
|
||||||
with the sha384 hash sum in question. When a peer wants to download that chunk from the network,
|
to other peers. Peers wishing to transmit chunks to other peers
|
||||||
it asks the distributed hash table which peers are associated with that sha384 hash sum. The
|
announce to the distributed hash table that they are associated with
|
||||||
distributed hash table can also be used more generally. It simply stores IP addresses and
|
the sha384 hash sum in question. When a peer wants to download that
|
||||||
ports which are associated with 384-bit numbers, and can be used by any type of application to
|
chunk from the network, it asks the distributed hash table which peers
|
||||||
help peers find each other. For example, an application for which clients don't know all of the
|
are associated with that sha384 hash sum. The distributed hash table
|
||||||
necessary chunks may use some identifier, chosen by the application, to find clients which do
|
can also be used more generally. It simply stores IP addresses and
|
||||||
know all of the necessary chunks.
|
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
|
## Contributions
|
||||||
|
|
||||||
The bundled LBRY application uses the lbrynet JSONRPC api found in `lbrynet.lbrynet_daemon.LBRYDaemon`. This api allows for applications and web services like the lbry browser UI to interact with lbrynet. If you've installed lbrynet, you can run `lbrynet-daemon` without running the app. While the app or `lbrynet-daemon` is running, you can use the following to show the help for all the available commands:
|
|
||||||
|
|
||||||
```
|
|
||||||
import sys
|
|
||||||
|
|
||||||
try:
|
|
||||||
from lbrynet import conf
|
|
||||||
from lbrynet.lbrynet_daemon.auth.client import LBRYAPIClient
|
|
||||||
except ImportError:
|
|
||||||
print "You don't have lbrynet installed!"
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
conf.initialize_settings()
|
|
||||||
api = LBRYAPIClient.get_client()
|
|
||||||
|
|
||||||
try:
|
|
||||||
status = api.status()
|
|
||||||
except:
|
|
||||||
print "lbrynet-daemon isn't running!"
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
if not status['is_running']:
|
|
||||||
print "lbrynet-daemon hasn't finished starting up, here's the status message:"
|
|
||||||
print status
|
|
||||||
sys.exit(0)
|
|
||||||
else:
|
|
||||||
for cmd in api.commands():
|
|
||||||
print "%s:\n%s" % (cmd, api.help({'command': cmd}))
|
|
||||||
```
|
|
||||||
|
|
||||||
If you've installed lbrynet, it comes with a file sharing application, called `lbrynet-daemon`, 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-daemon` 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 instructions on installing from source, see [INSTALL.md](INSTALL.md).
|
|
||||||
|
|
||||||
Source code: https://github.com/lbryio/lbry
|
|
||||||
|
|
||||||
To contribute, [join us on Slack](https://lbry-slackin.herokuapp.com/) or contact jeremy@lbry.io. Pull requests are also welcome.
|
To contribute, [join us on Slack](https://lbry-slackin.herokuapp.com/) or contact jeremy@lbry.io. Pull requests are also welcome.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue