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 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 |
|
||||
| --- | --- | --- |
|
||||
| [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?
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
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.
|
||||
On LBRY, data is broken into chunks, and each chunk is content
|
||||
addressable, 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
|
||||
|
||||
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
|
||||
## Contributions
|
||||
|
||||
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