diff --git a/.pylintrc b/.pylintrc index ada0377dd..99ef868eb 100644 --- a/.pylintrc +++ b/.pylintrc @@ -9,7 +9,7 @@ # Add files or directories to the blacklist. They should be base names, not # paths. -ignore=CVS +ignore=CVS,schema # Add files or directories matching the regex patterns to the # blacklist. The regex matches against base names, not paths. diff --git a/.travis.yml b/.travis.yml index a64cbcb35..63422ac60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,22 +9,19 @@ jobs: - stage: code quality name: "pylint lbrynet" install: + - pip install astroid==2.0.4 + # newer astroid fails in pylint so we pre-install older version - pip install pylint - - pip install git+https://github.com/lbryio/torba.git - - pip install git+https://github.com/lbryio/lbryschema.git + - pip install git+https://github.com/lbryio/torba.git#egg=torba - pip install -e . script: pylint lbrynet - &tests stage: test - name: "Unit Tests w/ Python 3.7" + name: "Unit Tests" install: - pip install coverage - - pip install git+https://github.com/lbryio/electrumx.git#lbryumx - - pip install git+https://github.com/lbryio/orchstr8.git - - pip install git+https://github.com/lbryio/lbryschema.git - - pip install git+https://github.com/lbryio/lbryumx.git - - pip install git+https://github.com/lbryio/torba.git + - pip install git+https://github.com/lbryio/torba.git#egg=torba - pip install -e .[test] script: - HOME=/tmp coverage run -p --source=lbrynet -m unittest discover -v tests.unit.wallet @@ -34,25 +31,12 @@ jobs: - bash <(curl -s https://codecov.io/bash) - <<: *tests - name: "Unit Tests w/ Python 3.6" - python: "3.6" - - - <<: *tests - name: "DHT Tests w/ Python 3.7" - script: HOME=/tmp coverage run --source=lbrynet -m twisted.trial --reactor=asyncio tests.functional - - - <<: *tests - name: "DHT Tests w/ Python 3.6" - python: "3.6" + name: "DHT Tests" script: HOME=/tmp coverage run --source=lbrynet -m twisted.trial --reactor=asyncio tests.functional - name: "Integration Tests" install: - pip install tox-travis coverage - - pushd .. && git clone https://github.com/lbryio/electrumx.git --branch lbryumx && popd - - pushd .. && git clone https://github.com/lbryio/orchstr8.git && popd - - pushd .. && git clone https://github.com/lbryio/lbryschema.git && popd - - pushd .. && git clone https://github.com/lbryio/lbryumx.git && cd lbryumx && git checkout afd34f323dd94c516108a65240f7d17aea8efe85 && cd .. && popd - pushd .. && git clone https://github.com/lbryio/torba.git && popd script: tox after_success: @@ -65,9 +49,9 @@ jobs: services: - docker install: - - docker pull cdrx/pyinstaller-windows:python3-32bit + - docker pull lbry/pyinstaller34_32bits:py371 script: - - docker run -v "$(pwd):/src/lbry" cdrx/pyinstaller-windows:python3-32bit lbry/scripts/wine_build.sh + - docker run -v "$(pwd):/src/lbry" lbry/pyinstaller34_32bits:py371 lbry/scripts/wine_build.sh - sudo zip -j dist/lbrynet-windows.zip dist/lbrynet.exe addons: artifacts: @@ -79,15 +63,13 @@ jobs: - &build name: "Linux" - python: "3.6" install: - pip3 install pyinstaller - pip3 install git+https://github.com/lbryio/torba.git - - pip3 install git+https://github.com/lbryio/lbryschema.git - python scripts/set_build.py - pip3 install -e . script: - - pyinstaller -F -n lbrynet lbrynet/cli.py + - pyinstaller -F -n lbrynet lbrynet/extras/cli.py - chmod +x dist/lbrynet - zip -j dist/lbrynet-${OS}.zip dist/lbrynet - ./dist/lbrynet --version @@ -104,9 +86,19 @@ jobs: - <<: *build name: "Mac" os: osx - osx_image: xcode9.4 + osx_image: xcode6.4 language: generic env: OS=mac + cache: false + install: + - brew update + - brew install python3 + - pip3 install pyinstaller + - git clone https://github.com/lbryio/torba.git --depth 1 + - sed -i -e "s/'plyvel',//" torba/setup.py + - cd torba && pip3 install -e . && cd .. + - python scripts/set_build.py + - pip3 install -e . cache: directories: diff --git a/INSTALL.md b/INSTALL.md index ef4bd9f8c..8a6a9290c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,17 +1,17 @@ # Installing LBRY -If only the json-rpc API server is needed the recommended way to install LBRY is to use a pre-built binary. We provide binaries for all major operating systems. See the [README](README.md). +If only the JSON-RPC API server is needed, the recommended way to install LBRY is to use a pre-built binary. We provide binaries for all major operating systems. See the [README](README.md). These instructions are for installing LBRY from source, which is recommended if you are interested in doing development work or LBRY is not available on your operating system (godspeed, TempleOS users). -Here's a video walkthrough of this setup which is itself hosted by the LBRY network and provided via [spee.ch](https://github.com/lbryio/spee.ch): +Here's a video walkthrough of this setup, which is itself hosted by the LBRY network and provided via [spee.ch](https://github.com/lbryio/spee.ch): [![Setup for development](https://spee.ch/2018-10-04-17-13-54-017046806.png)](https://spee.ch/967f99344308f1e90f0620d91b6c93e4dfb240e0/lbrynet-dev-setup.mp4) ## Prerequisites Running `lbrynet` from source requires Python 3.6 or higher (3.7 is preferred). Get the installer for your OS [here](https://www.python.org/downloads/release/python-370/) -After installing python 3 you'll need to install some additional libraries depending on your operating system. +After installing python 3, you'll need to install some additional libraries depending on your operating system. ### Virtualenv @@ -42,7 +42,7 @@ sudo apt-get install build-essential python3.7 python3.7-dev git python-virtuale On Raspbian, you will also need to install `python-pyparsing`. -If you're running another Linux flavor, install the equivalent of the above packages for your system. +If you're running another Linux distro, install the equivalent of the above packages for your system. ## Installation @@ -51,7 +51,7 @@ To install: ``` git clone https://github.com/lbryio/lbry.git cd lbry - + virtualenv lbry-venv --python=python3.7 source lbry-venv/bin/activate @@ -60,7 +60,7 @@ To install: pip install --editable .[test] # [test] installs extras needed for running the tests ``` -To verify your install, `which lbrynet` should return a path inside of the `lbry-venv` folder created by the `virtualenv` command. +To verify your installation, `which lbrynet` should return a path inside of the `lbry-venv` folder created by the `virtualenv` command. ## Run the tests To run the unit tests from the repo directory: diff --git a/README.md b/README.md index 18326904c..694bd0fb2 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # LBRY LBRY [![Build Status](https://travis-ci.org/lbryio/lbry.svg?branch=master)](https://travis-ci.org/lbryio/lbry) [![Test Coverage](https://codecov.io/gh/lbryio/lbry/branch/master/graph/badge.svg)](https://codecov.io/gh/lbryio/lbry) -LBRY is an open-source protocol providing distribution, discovery, and purchase of digital content (data) via a decentralized network. It utilizes the [LBRY blockchain](https://github.com/lbryio/lbrycrd) 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. +LBRY is an open-source protocol providing distribution, discovery, and purchase of digital content (data) via a decentralized peer-to-peer network. It utilizes the [LBRY blockchain](https://github.com/lbryio/lbrycrd) as a global namespace and database of digital content. Blockchain entries contain searchable content metadata, identities, rights and access rules. LBRY also provides a data network that consists of peers (seeders) uploading and downloading data from other peers, possibly in exchange for payments, as well as a distributed hash table used by peers to discover other peers. -This project provides an SDK for building applications using the LBRY protocol. The SDK is written in Python 3.7+ using Twisted. For other languages or platforms, a JSONRPC API is provided. +This project provides an SDK for building applications using the LBRY protocol. The SDK is written in Python 3.7+ using Twisted. For other languages or platforms, a JSON-RPC API is provided. ## Installation -Our [releases page](https://github.com/lbryio/lbry/releases) contains pre-built binaries of the latest release, pre-releases, and past releases, for macOS, Debian-based Linux, and Windows. [Automated travis builds](http://build.lbry.io/daemon/) are also available for testing. +Our [releases page](https://github.com/lbryio/lbry/releases) contains pre-built binaries of the latest release, pre-releases, and past releases for macOS, Debian-based Linux, and Windows. [Automated travis builds](http://build.lbry.io/daemon/) are also available for testing. ## Usage @@ -14,13 +14,15 @@ Run `lbrynet start` to launch the API server. By default, `lbrynet` 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](http://lbry.io/quickstart) provides a simple walkthrough and examples for learning. +Our [quickstart guide](https://lbry.tech/playground) provides a simple walkthrough and examples for learning. + +With the daemon running, `lbrynet commands` will show you a list of commands. The full API is documented [here](https://lbry.tech/api/sdk). ## Running from source -Installing from source is also relatively painless, full instructions are in [INSTALL.md](INSTALL.md) +Installing from source is also relatively painless. Full instructions are in [INSTALL.md](INSTALL.md) ## Contributing @@ -41,3 +43,7 @@ The primary contact for this project is [@jackrobison](mailto:jack@lbry.io). ## Additional information and links The documentation for the API can be found [here](https://lbry.tech/api/sdk). + +Daemon defaults, ports, and other settings are documented [here](https://lbry.tech/resources/daemon-settings). + +Settings can be configured using a daemon-settings.yml file. An example can be found [here](https://github.com/lbryio/lbry/blob/master/example_daemon_settings.yml). diff --git a/docs/404.html b/docs/404.html index d7554115d..c6c268ac8 100644 --- a/docs/404.html +++ b/docs/404.html @@ -100,7 +100,7 @@
@@ -196,7 +196,7 @@