LbryumX is an extension of electrumx that provides the server side of LBRY Electrum Protocol.
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 -txindex
:
./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:[email protected]: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.
- 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.
Given that you have installed a LBRY daemon or a LBRY app, edit ~/.lbrynet/daemon_settings.yml
for setting your server as the default one:
lbryum_servers:
- my.lbryumx.server:50001
Then start and use the app or daemon normally.
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
The 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: py.test -v
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.
We take security seriously. Please contact [email protected] regarding any security issues. Our PGP key is here if you need it.
The primary contact for this project is @shyba ([email protected])