Metadata-Version: 2.1
Name: fishnet-cod
Version: 1.1.0
Summary: Compute-over-Data (CoD) network for time series data on Aleph.im
License: AGPL-3.0
Author: Mike Hukiewitz
Author-email: mike.hukiewitz@robotter.ai
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: PyNaCl (>=1.5.0,<2.0.0)
Requires-Dist: aars (>=0.5.8,<0.6.0)
Requires-Dist: aiohttp (>=3.8.4,<4.0.0)
Requires-Dist: aleph-sdk-python (>=0.6.0,<0.7.0)
Requires-Dist: base58 (>=2.1.1,<3.0.0)
Requires-Dist: fastapi (>=0.95.1,<0.96.0)
Requires-Dist: pandas (>=2.0.1,<3.0.0)
Requires-Dist: pydantic (>=1.10.7,<2.0.0)
Requires-Dist: requests (>=2.30.0,<3.0.0)
Requires-Dist: semver (>=3.0.0,<4.0.0)
Description-Content-Type: text/markdown

# fishnet-cod
P2P Financial Signal Hosting Network on Aleph

## Initial setup
Install the FastAPI library and Uvicorn: 
```shell
pip install -r requirements.txt
```

### Running the API locally
Uvicorn is used to run ASGI compatible web applications, such as the `app`
web application from the example above. You need to specify it the name of the
Python module to use and the name of the app:
```shell
export TEST_CACHE=true  # when running locally, use the test cache

cd src  # the following command must be run from the src folder

python -m uvicorn fishnet_cod.api.main:app --reload
```

Then open the app in a web browser on http://localhost:8000

> Tip: With `--reload`, Uvicorn will automatically reload your code upon changes  

### Running the Executor locally
When the API is running, you can run the local executor to automatically
process the pending execution requests.
```shell
python /src/fishnet_cod/local_executor.py
```

## Environment variables

| Name            | Description                                               | Type     | Default |
|-----------------|-----------------------------------------------------------|----------|---------|
| `TEST_CACHE`    | Whether to use the test cache                             | `bool`   | `false` |
| `TEST_CHANNEL`  | Whether to use a fresh test channel                       | `bool`   | `false` |
| `ALEPH_CHANNEL` | The Aleph channel to use, is superseded by `TEST_CHANNEL` | `string` | `None`  |
