blitz_api/README.md
Stefan Stammberger 6ca9b97b87
fix: problems with included external packages
* Add proper licensing information
* Move sse_starlette to the externals folder
2021-11-18 11:30:48 +01:00

2.4 KiB
Raw Blame History

blitz_api

Configuration

Create a .env file with your bitcoind and lnd configuration. See the .env_sample file for all configuration options.

Please note that you will also need to install Redis.

If you need a easy option to run a simple bitcoind & lnd client, Polar makes that pretty easy.

Installation

You will need to have Python in version 3.7 installed and have the .env see Configuration configured correctly first.

⚠️ To setup a development environment for BlitzAPI skip to the Development section.

To install the dependencies, run

make install or python -m pip install -r requirements.txt on Linux / macOS or

py -m pip install -r requirements.txt on Windows.

After that, you can run the application with

make run or python -m uvicorn app.main:app --reload on Linux / macOS or

py -m uvicorn app.main:app --reload on Windows.

Development

For development it is recommended to have python-poetry installed. Install instructions can be found here

From within the blitz_api folder open a shell via poetry shell.

Install dependencies with all dev dependencies: make install_dev or poetry install

If any dependencies have changed it becomes necessary to freeze all requirements to requirements.txt:

poetry export -f requirements.txt --output requirements.txt

This will skip all dev dependencies by default.
This step is required to avoid having to install poetry for final deployment.

Testing

Make sure to include test for important pieces of code submitted. To run the tests run make tests to test with pytest or run make coverage to test and generate a coverage html file in a folder called htmlcov

Useful cURL commands to test the API

curl -N http://127.0.0.1:8000/v1/sse/subscribe

curl -N http://127.0.0.1:8000/v1/bitcoin/getblockchaininfo

curl -X POST -N http://127.0.0.1:8000/v1/setup/type/1

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"password":"12345678"}' \
  http://127.0.0.1:8000/system/login

Acknowledgements

Integrated Libraries: