Implements A Bitcoin Core API which querying an Electrum
Project description
Spectrum - Specter Desktop + Electrum
This is a electrum-adapter. It exposes a Bitcoin-Core style API while using an electron API in the backend. It might be useful in specific usecases, e.g. having better performance when connecting to a electrum-server via Tor. In order to do that, it needs a Database. Quite easily you can use a kind of builtin SQLite. Depending on your usecase, you might want to use an external DB.
Modes of usage
This can be used either in standalone mode or as a specter-extension. The second option is probably the main use-case.
Standalone
Get this to work with something like that:
python3 --version # Make sure you have at least 3.8. Might also work with lower versions though
virtualenv --python=python3 .env
. ./.env/bin/activate
pip3 install -e .
# If you have a electrum server running on localhost:
python3 -m cryptoadvance.spectrum server --config cryptoadvance.spectrum.config.NigiriLocalElectrumLiteConfig
# If you want to run on mainnet and use emzy's Server
python3 -m cryptoadvance.spectrum server --config cryptoadvance.spectrum.config.EmzyElectrumLiteConfig
# Using Emzy's server but with a postgres
export DB_USERNAME=bla
export DB_PASSWORD=blub
python3 -m cryptoadvance.spectrum server --config cryptoadvance.spectrum.config.EmzyElectrumPostgresConfig
Check the config.py
for the env-vars which need to be exported in order to connect to something different than localhost.
Specter Extension
In order to get a development environment:
virtualenv --python=python3 .env
. ./.env/bin/activate
pip3 install -e .
pip3 install cryptoadvance.specter
python3 -m cryptoadvance.specter server --config DevelopmentConfig --debug
TODO:
- refill keypool when address is used or new address is requested
- flask
debug=True
flag creates two electrum sockets that notify twice - this causes duplications in the database - reconnect with electrum on disconnect
- add support for credentials / cookie file for RPC calls
Development
Before your create a PR, make sure to blackify all your changes. In order to automate that, there is a git pre-commit hook which you can simply install like this:
pre-commit install
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cryptoadvance.spectrum-0.6.4rc1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e916c8de3767690f66511b87d7f439c37c21ef0a60e8efff2bf3fa319807e7f |
|
MD5 | 964b845d6df413cb8e6e354a28ba586d |
|
BLAKE2b-256 | e0f96283bcbe7894da2d804c680103141235d4f0db0b723abaeffcb3eba870e5 |
Hashes for cryptoadvance.spectrum-0.6.4rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 131cffbfd020e1cf74a2a2e61879314c4e16cde3178e9c36b67a104b699c4c4c |
|
MD5 | 8bbb168c2e1c628af4a931dfc4369ece |
|
BLAKE2b-256 | 640729a8c18757aa55b00ec6d1f363b1fca0db5c1cd9b632a021e5d57c2cf883 |