LbryumX - The LBRY Electrum Protocol Server
LbryumX is an extension of electrumx that provides the server side of LBRY Electrum Protocol.
Running from Docker
Installing from Docker is the best way to have a monitored and always up-to-date server. Watchtower ensures the Docker container will be running and checks for image updates every 5 minutes. To install it, just try:
sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock \ v2tec/watchtower --label-enable --cleanup
Then, install and run lbrycrd with
./lbrycrdd -server -txindex -rpcuser=lbry -rpcpassword=mySuperSecurePassword -port=19245
Finally, start the server:
sudo docker run -v database:/database --ulimit nofile=90000:90000 \ -e DB_DIRECTORY=/database --net="host" \ -e DAEMON_URL=http://lbry:mySuperSecurePassword@127.0.0.1:19245 \ -d --label=com.centurylinklabs.watchtower.enable=true lbry/lbryumx:latest
This will create a volume called database, set the number of open files higher, use the host networking, set the RPC URL and label it as a watchtower monitored container. For more information on the available environment variables, see electrumx documentation. Environment variables are set on the container using
-e as you can see in the above command.
Installing from source on a Python virtual environment
- Make sure you have Python 3.6 installed.
- Create a new virtual environment.
- Clone and install electrumx (this fork just makes it available as a module)
$ git clone -b packages https://github.com/lbryio/electrumx.git electrumx $ pip install -e electrumx/.
- Clone and install lbryumx:
$ git clone https://github.com/lbryio/lbryumx.git $ pip install -r requirements.txt $ pip install -e .
Lbryumx connects to an instance of lbrycrd and provides an electrum protocol server with wallet commands and custom commands for claims. For using it, you will need a lbry daemon or any final release of the LBRY app.
lbryum_servers: - my.lbryumx.server:50001
Then start and use the app or daemon normally.
Running from Source
For running the server, all configurations are set over environment variables then we just run
lbryumx_server.py, for instance:
TCP_PORT=50001 HOST=0.0.0.0 COIN=LBC DAEMON_URL=http://lbry:lbry@localhost:9245/ DB_DIRECTORY=/tmp/testx BANDWIDTH_LIMIT=10000 MAX_SESSIONS=1000 python3.6 lbryumx_server.py
If you're still stuck, create an issue with the output of that command, your system info, and any other information you think might be helpful.
Contributions to this project are welcome, encouraged, and compensated. For more details, see lbry.io/faq/contributing
master branch is regularly built and tested, but is not guaranteed to be
completely stable. Releases are created
regularly to indicate new official, stable release versions.
Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people lots of money.
Developers are strongly encouraged to write unit tests for new code, and to
submit new unit tests for old code. Unit tests can be run with:
The Travis CI system makes sure that every pull request is built, and that unit and sanity tests are automatically run. Then, after a success round of tests, a new Docker image is published.
This project is MIT licensed. For the full license, see LICENSE.