ed227a239e
What was happening was the wallet claimed to be caught up before it
actually was and so the wallet’s local_height was still the value from
when lbry was last run, frequently more than 20 or 50 blocks
behind. _get_value_for_name uses the block at local_height as the
basis for the proof. If _get_value_for_name is called during that
time between when the wallet claims to be caught up and it actually
is, the “Block too deep error” happens. And since the discover page
of the UI does name resolution right away, the error basically happens
anytime somebody starts the app after not using it for a few hours.
This changes the startup behaviour of the wallet to
- use the `update` callback provided by lbryum
- check that local_height and network_height match before declaring
that the wallet has caught up
For reference, the error is raised here:
|
||
---|---|---|
docs | ||
lbrynet | ||
packaging | ||
scripts | ||
tests | ||
uri_handler | ||
.appveyor.yml | ||
.bumpversion.cfg | ||
.gitignore | ||
.gitmodules | ||
.pylintrc | ||
.travis.yml | ||
app.icns | ||
ez_setup.py | ||
FAQ.md | ||
INSTALL.md | ||
LICENSE | ||
mkdocs.yml | ||
README.md | ||
requirements.txt | ||
run_pylint.sh | ||
run_tests.sh | ||
setup.py |
LBRY
LBRY is a fully decentralized, open-source protocol facilitating the discovery, access, and (sometimes) purchase of data.
Installing LBRY
We provide binaries for Windows, macOS, and Debian-based Linux.
Windows | macOS | Linux |
---|---|---|
Download MSI | Download DMG | Download DEB |
Our releases page also contains the latest release, pre-releases, and past builds.
For instructions on building from source, see INSTALL.md.
What is LBRY?
LBRY 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.
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.
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:
from jsonrpc.proxy import JSONRPCProxy
try:
from lbrynet.conf import API_CONNECTION_STRING
except:
print "You don't have lbrynet installed!"
API_CONNECTION_STRING = "http://localhost:5279/lbryapi"
api = JSONRPCProxy.from_url(API_CONNECTION_STRING)
status = api.status()
if not status['is_running']:
print status
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.
Source code: https://github.com/lbryio/lbry
To contribute, join us on Slack or contact jeremy@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 jeremy@lbry.io.
License
See LICENSE