The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Find a file
Jack Robison 75a6ff269e refactor lbrynet-daemon into modular components (#1164)
* add daemon Component and ComponentManager classes

* convert directory and SQLiteStorage setup to be a Component

* support callbacks to component setups

* Fixed typo in ComponentManager

* convert wallet to be Component

* Use storage from session.

* Remove create_session internal function and PEP8

* Starting to convert session to its own component. Removed ref to `self.storage` from Daemon.py

* Making DHT component(broken)

* Refactored classes to reduce redundancy in getting config setting

* DHT is now it's own component

* Fixed `test_streamify` test

* Fixed regression caused by removing `peer_manager` from session

* refactor ComponentManager and Component to use instance instead of class methods

* Hash announcer, file manager, stream identifier components

* Query Handler and server components

* Reflector Component

* Fixed test_streamify(well Jack did, but ¯\_(ツ)_/¯)

* All tests now passing

* Pylint fixes

* Oops(That's all you're gonna get :-P)

* Making decorators(WIP, commit so that I don't lose work)

* Decorator made and decorating of functions done(some other changes)

* import fixes and removed temporary test function

* Fixed new broken tests from daemon refactor

* Sanitization of modules

* Reworded errors

* wallet unlock condition checks, fixed breaking changes

* Rebased on amster and other crazy stuff

* Started writing tests

* Tests for component manager

* Fix Daemon Tests

* Fixed passing mutable args in init

* Using constants instead of strings. Added CHANGELOG.md

* Now components can be skipped by setting relevant config in file.

* P-Y-L-I-N-T #angry_emoji
2018-07-05 15:21:52 -04:00
.github update issue template 2018-01-22 09:35:55 -05:00
build remove gmpy and seccure dependencies 2018-02-01 12:39:00 -05:00
docs Changed "cliam" to "claim" and added accurate info for nsfw. (#1285) 2018-07-05 12:00:43 -04:00
lbrynet refactor lbrynet-daemon into modular components (#1164) 2018-07-05 15:21:52 -04:00
scripts update seed script 2018-06-07 15:02:47 -04:00
.appveyor.yml fix appveyor 2018-06-18 16:53:02 -04:00
.gitattributes use union merge on CHANGELOG.md 2017-02-20 21:37:50 -06:00
.gitignore build daemon separately in teamcity 2017-04-19 14:59:06 -04:00
.pylintrc increase pylint line length 2018-02-13 10:27:42 -05:00
.travis.yml add directive to install packages in requirements_testing.txt for travis 2018-05-21 00:04:27 -04:00
CHANGELOG.md refactor lbrynet-daemon into modular components (#1164) 2018-07-05 15:21:52 -04:00
CONTRIBUTING.md contributing 2017-09-28 08:14:36 -04:00
Dangerfile fix because the danger.systems code example was wrong 2017-02-07 23:08:35 -06:00
INSTALL.md Started to standardize the README.md file. 2018-07-05 11:09:57 -04:00
LICENSE Update to reflect year 2018 2018-02-05 12:40:49 -08:00
mkdocs.yml better logo 2018-03-07 05:54:50 -05:00
README.md Started to standardize the README.md file. 2018-07-05 11:09:57 -04:00
requirements.txt Removed jsonrpclib from requirements 2018-06-26 10:31:04 -04:00
requirements_testing.txt add unit test package requirements - mock and Faker 2018-05-21 00:04:27 -04:00
setup.py Bump version 0.20.2rc3 --> 0.20.2 2018-06-23 11:53:23 -04:00

LBRY

Build Status Coverage Status

LBRY is an open-source protocol providing distribution, discovery, and purchase of digital content (data) via a decentralized network. It utilizes the LBRY blockchain as a global namespace and database of digital content. Blockchain entries contain searchable content metadata, identities, and rights and access rules. LBRY also provides a data network that 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.

This project aims to provide a daemon that can interact with the network via a json-rpc interface over HTTP.

The project is written in python2.7 and extensively uses Twisted framework.

Installation

Windows macOS Linux
Latest Stable Release Download Download Download
Latest Pre-release Download Download Download

Our releases page contains pre-built binaries of the latest release, pre-releases, and past releases, for macOS, Debian-based Linux, and Windows.

Usage

Run lbrynet-daemon to launch the daemon.

By default, lbrynet-daemon will provide a JSON-RPC server at http://localhost:5279. It is easy to interact with via cURL or sane programming languages.

Our quickstart guide provides a simple walkthrough and examples for learning.

The full API is documented here.

Running from source

Installing from source is also relatively painless, full instructions are in INSTALL.md

Contributing

Contributions to this project are welcome, encouraged, and compensated. For more details, please check this link.

License

This project is MIT licensed. For the full license, see LICENSE.

Security

We take security seriously. Please contact security@lbry.io regarding any security issues. Our PGP key is here if you need it.

Contact

The primary contact for this project is @jackrobison(jack@lbry.io)

The documentation for the api can be found here.