obelisk

Electrum server using libbitcoin as its backend
git clone https://git.parazyd.org/obelisk
Log | Files | Refs | README | LICENSE

README.md (2149B)


      1 obelisk
      2 =======
      3 
      4 ![obelisk](res/obelisk.png)
      5 
      6 Python implementation of an [Electrum](https://electrum.org) server
      7 using [libbitcoin](https://libbitcoin.info) as a backend.
      8 
      9 [![Tests](https://github.com/parazyd/obelisk/actions/workflows/py.yaml/badge.svg)](https://github.com/parazyd/obelisk/actions/workflows/py.yaml)
     10 [![CodeQL](https://github.com/parazyd/obelisk/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/parazyd/obelisk/actions/workflows/codeql-analysis.yml)
     11 [![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)
     12 [![codecov](https://codecov.io/gh/parazyd/obelisk/branch/master/graph/badge.svg?token=JL5FKYM9IX)](https://codecov.io/gh/parazyd/obelisk)
     13 
     14 Please consider donating to support development:
     15 
     16 ```
     17 bc1q7an9p5pz6pjwjk4r48zke2yfaevafzpglg26mz
     18 ```
     19 
     20 
     21 TODO
     22 ----
     23 
     24 * git grep -nE "TODO:|BUG:"
     25 
     26 
     27 Dependencies
     28 ------------
     29 
     30 * Python 3.7 or later
     31 * [pyzmq](https://pypi.org/project/pyzmq/) (python3-zmq or dev-python/pyzmq)
     32 * [libbitcoin-server](https://github.com/libbitcoin/libbitcoin-server) (optional)
     33 
     34 
     35 Usage
     36 -----
     37 
     38 Set up [obelisk.cfg](res/obelisk.cfg), and run
     39 
     40 ```
     41 ./run_obelisk ./res/obelisk.cfg
     42 ```
     43 
     44 Obelisk can use either public libbitcoin v4 servers, or your local
     45 libbitcoin-server if you have a running installation. Currently,
     46 **only testnet v4 public servers are available**, and they're set up
     47 as default in the configuration file.
     48 
     49 Obelisk can also be installed with setuptools:
     50 
     51 ```
     52 python3 setup.py install --user
     53 ```
     54 
     55 
     56 Development
     57 -----------
     58 
     59 The code is written to be short and concise. `run_obelisk` is the
     60 entry point to start the server, but most of the actual logic is
     61 in `obelisk/protocol.py` and `obelisk/zeromq.py`. `protocol.py`
     62 implements the ElectrumX protocol, and `zeromq.py` implements the
     63 libbitcoin side of things.
     64 
     65 Before committing code, please run `make format` to format
     66 the codebase to a certain code style. This script depends on
     67 [yapf](https://github.com/google/yapf).
     68 
     69 It is also recommended to run the test suite and see if anything
     70 fails:
     71 
     72 ```
     73 make test
     74 ```
     75 
     76 You can chat about Obelisk on Freenode IRC, either `#electrum` or
     77 `#libbitcoin`.