tranche


Nametranche JSON
Version 0.2.5 PyPI version JSON
download
home_page
SummaryCommand line interface used for generating local Lightning test environment
upload_time2023-12-03 05:52:34
maintainer
docs_urlNone
authorSitt Guruvanich
requires_python>=3.8,<4.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Tranche

[![Bitcoin-only](https://img.shields.io/badge/bitcoin-only-FF9900?logo=bitcoin)](https://twentyone.world)
[![LN](https://img.shields.io/badge/lightning-792EE5?logo=lightning)](https://mempool.space/lightning)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

[![Tranche Banner](static/tranche-banner.svg)](static/tranche-banner.svg)

## Prerequisites

* python (3.8+)
* pip
* docker

## Getting started

You can use `tranche` simply by installing via `pip` on your Terminal.

```sh
$ pip install tranche
> ...
> Installing collected packages: tranche
> Successfully installed tranche-0.2.5
$ tranche deploy
> Deploy specified local cluster:            ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:01
> Generate addresses:                        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
> Mine initial capital for parties:          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
```

You will have docker containers running in the backend, ready to be interfaced by your local
environment applications you are developing.

## Begin local mining

In order to properly test many functionalities, you will need to send mining commands to local
setup. You can achieve completely local and running environment with the following command:

```sh
$ tranche mine
> ╭───── containers ─────╮┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
> │ tranche-redis        │┃ Name          ┃ Nodekey      ┃ Channels  ┃ Peers  ┃ Height ┃ Synced? ┃
> │ tranche-postgres     │┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
> │ tranche-pong         ││ tranche-pong  │ 02fabeeaa9d  │ 2         │ 1      │ 216    │    true │
> │ tranche-ping         ││               │ 3da33d3eb12  │           │        │        │         │
> │ tranche-bitcoind     ││               │ 262e039d9b2  │           │        │        │         │
> │                      ││               │ 9d591f1b897  │           │        │        │         │
> │                      ││               │ c0ae6b158d0  │           │        │        │         │
> │                      ││               │ 5410d97efbc  │           │        │        │         │
> │                      │├───────────────┼──────────────┼───────────┼────────┼────────┼─────────┤
> │                      ││ tranche-ping  │ 02ac17a8d64  │ 2         │ 1      │ 216    │    true │
> │                      ││               │ 4194459b8f3  │           │        │        │         │
> │                      ││               │ deacf4e1a64  │           │        │        │         │
> │                      ││               │ 0fcbcdf9fbf  │           │        │        │         │
> │                      ││               │ 39e8423dfdc  │           │        │        │         │
> │                      ││               │ 3ffa2f7367f  │           │        │        │         │
> │                      │└───────────────┴──────────────┴───────────┴────────┴────────┴─────────┘
> │                      │╭──────────────────────────────────────────────────────────────────────╮
> │                      ││ Chain: regtest  Blocks: 216     Size: 65259     Time: 1701528030     │
> ╰──────────────────────╯╰──────────────────────────────────────────────────────────────────────╯
```

### Cluster types

Currently there are two supported cluster-types in this project. Specified by flags,
`--duo` (default), or `--uno` with the following set-up:

<style>
  td, th {
    border: none !important;
  }
</style>

| Type | Description                                                                |
| ---- | -------------------------------------------------------------------------- |
|  duo | Contains two LND nodes named `tranche-ping` and `tranche-pong` unified by  |
|      | one single `tranche-bitcoind` service.                                     |
|  uno | Only has one LND node named `tranche-lnd` connected to `tranche-bitcoind`. |

### Peripheral containers

This project also helps you setup peripheral services to make development process easier, too.
For example, if you want to deploy a duo-cluster with attached postgres database, run the following:

```sh
$ tranche deploy --postgres
> ...
$ tranche mine
> ╭───── containers ─────╮┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
> │ tranche-postgres     │┃ Name          ┃ Nodekey      ┃ Channels  ┃ Peers  ┃ Height ┃ Synced? ┃
> │ tranche-pong         │┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
> │ tranche-ping         ││ tranche-pong  │ 3da33d3eb12  │ 2         │ 1      │ 216    │    true │
> │ tranche-bitcoind     ││               │ deacf4e1a64  │           │        │        │         │
> │ ...                  ││ ...           │ ...          │ ...       │ ...    │ ...    │ ...     │
```

Or run an uno-cluster with both attached postgres database and redis solid store cache like this:

```sh
$ tranche deploy --uno --postgres --redis
> ...
$ tranche mine
> ╭───── containers ─────╮┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
> │ tranche-postgres     │┃ Name          ┃ Nodekey      ┃ Channels  ┃ Peers  ┃ Height ┃ Synced? ┃
> │ tranche-redis        │┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
> │ tranche-lnd          ││ tranche-lnd   │ c0ae6b158d0  │ 0         │ 0      │ 202    │    true │
> │ tranche-bitcoind     ││               │ 4194459b8f3  │           │        │        │         │
> │ ...                  ││ ...           │ ...          │ ...       │ ...    │ ...    │ ...     │
```

## Cleanup

```sh
$ tranche clean                    > 
> Remove active containers:                  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:01
```

## Roadmap

* Add `tranche-lnd-krub` peripheral service using [lnd-krub](https://github.com/krutt/lnd-krub)
* Add `tranche-tesla-ball` peripheral service using [tesla-ball](https://github.com/krutt/tesla-ball)
* Write [click](https://click.palletsprojects.com) tests.
* Make image versioning a little bit more intuitive.
* Add `tranche-ord` peripheral service using [ord](https://github.com/ordinals/ord)
* Add `tranche-bitvm` peripheral service using [BitVM](https://github.com/BitVM/BitVM)
* Create and add some type of `ordapi` peripheral service.
* Implement dashboard walkthrough a la [kylepollina/objexplore](https://github.com/kylepollina/objexplore)

## Contributions

This project uses [poetry](https://python-poetry.org) package manager to keep track of dependencies.
You can set up your local environment as such

```sh
$ pip install --user poetry
> ...
$ poetry install --with dev  # install with development dependencies
> Installing dependencies from lock file
>
> Package operations: 33 installs, 0 updates, 0 removals
>
>   • ...
>   • ...
>   • ...
>   • ...
>
> Installing the current project: tranche (0.2.5)
```

### Known issues

You may run into this setback when first running this project. This is a
[docker-py](https://github.com/docker/docker-py/issues/3059) issue widely known as of October 2022.

```python
docker.errors.DockerException:
  Error while fetching server API version: (
    'Connection aborted.', FileNotFoundError(
      2, 'No such file or directory'
    )
  )
```

See the following issue for Mac OSX troubleshooting.
[docker from_env and pull is broken on mac](https://github.com/docker/docker-py/issues/3059#issuecomment-1294369344)
Recommended fix is to run the following command:

```sh
sudo ln -s "$HOME/.docker/run/docker.sock" /var/run/docker.sock
```

## License

This project is licensed under the terms of the MIT license.
            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "tranche",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Sitt Guruvanich",
    "author_email": "aekasitt.g+github@siamintech.co.th",
    "download_url": "https://files.pythonhosted.org/packages/2b/e9/bff003e8488c77f5abf551c3caab02fa53ef52e33ee568f1ac74d97c08a0/tranche-0.2.5.tar.gz",
    "platform": null,
    "description": "# Tranche\n\n[![Bitcoin-only](https://img.shields.io/badge/bitcoin-only-FF9900?logo=bitcoin)](https://twentyone.world)\n[![LN](https://img.shields.io/badge/lightning-792EE5?logo=lightning)](https://mempool.space/lightning)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n[![Tranche Banner](static/tranche-banner.svg)](static/tranche-banner.svg)\n\n## Prerequisites\n\n* python (3.8+)\n* pip\n* docker\n\n## Getting started\n\nYou can use `tranche` simply by installing via `pip` on your Terminal.\n\n```sh\n$ pip install tranche\n> ...\n> Installing collected packages: tranche\n> Successfully installed tranche-0.2.5\n$ tranche deploy\n> Deploy specified local cluster:            \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 100% 0:00:01\n> Generate addresses:                        \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 100% 0:00:00\n> Mine initial capital for parties:          \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 100% 0:00:00\n```\n\nYou will have docker containers running in the backend, ready to be interfaced by your local\nenvironment applications you are developing.\n\n## Begin local mining\n\nIn order to properly test many functionalities, you will need to send mining commands to local\nsetup. You can achieve completely local and running environment with the following command:\n\n```sh\n$ tranche mine\n> \u256d\u2500\u2500\u2500\u2500\u2500 containers \u2500\u2500\u2500\u2500\u2500\u256e\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n> \u2502 tranche-redis        \u2502\u2503 Name          \u2503 Nodekey      \u2503 Channels  \u2503 Peers  \u2503 Height \u2503 Synced? \u2503\n> \u2502 tranche-postgres     \u2502\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n> \u2502 tranche-pong         \u2502\u2502 tranche-pong  \u2502 02fabeeaa9d  \u2502 2         \u2502 1      \u2502 216    \u2502    true \u2502\n> \u2502 tranche-ping         \u2502\u2502               \u2502 3da33d3eb12  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502 tranche-bitcoind     \u2502\u2502               \u2502 262e039d9b2  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2502               \u2502 9d591f1b897  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2502               \u2502 c0ae6b158d0  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2502               \u2502 5410d97efbc  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n> \u2502                      \u2502\u2502 tranche-ping  \u2502 02ac17a8d64  \u2502 2         \u2502 1      \u2502 216    \u2502    true \u2502\n> \u2502                      \u2502\u2502               \u2502 4194459b8f3  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2502               \u2502 deacf4e1a64  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2502               \u2502 0fcbcdf9fbf  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2502               \u2502 39e8423dfdc  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2502               \u2502 3ffa2f7367f  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502                      \u2502\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n> \u2502                      \u2502\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n> \u2502                      \u2502\u2502 Chain: regtest  Blocks: 216     Size: 65259     Time: 1701528030     \u2502\n> \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n```\n\n### Cluster types\n\nCurrently there are two supported cluster-types in this project. Specified by flags,\n`--duo` (default), or `--uno` with the following set-up:\n\n<style>\n  td, th {\n    border: none !important;\n  }\n</style>\n\n| Type | Description                                                                |\n| ---- | -------------------------------------------------------------------------- |\n|  duo | Contains two LND nodes named `tranche-ping` and `tranche-pong` unified by  |\n|      | one single `tranche-bitcoind` service.                                     |\n|  uno | Only has one LND node named `tranche-lnd` connected to `tranche-bitcoind`. |\n\n### Peripheral containers\n\nThis project also helps you setup peripheral services to make development process easier, too.\nFor example, if you want to deploy a duo-cluster with attached postgres database, run the following:\n\n```sh\n$ tranche deploy --postgres\n> ...\n$ tranche mine\n> \u256d\u2500\u2500\u2500\u2500\u2500 containers \u2500\u2500\u2500\u2500\u2500\u256e\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n> \u2502 tranche-postgres     \u2502\u2503 Name          \u2503 Nodekey      \u2503 Channels  \u2503 Peers  \u2503 Height \u2503 Synced? \u2503\n> \u2502 tranche-pong         \u2502\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n> \u2502 tranche-ping         \u2502\u2502 tranche-pong  \u2502 3da33d3eb12  \u2502 2         \u2502 1      \u2502 216    \u2502    true \u2502\n> \u2502 tranche-bitcoind     \u2502\u2502               \u2502 deacf4e1a64  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502 ...                  \u2502\u2502 ...           \u2502 ...          \u2502 ...       \u2502 ...    \u2502 ...    \u2502 ...     \u2502\n```\n\nOr run an uno-cluster with both attached postgres database and redis solid store cache like this:\n\n```sh\n$ tranche deploy --uno --postgres --redis\n> ...\n$ tranche mine\n> \u256d\u2500\u2500\u2500\u2500\u2500 containers \u2500\u2500\u2500\u2500\u2500\u256e\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n> \u2502 tranche-postgres     \u2502\u2503 Name          \u2503 Nodekey      \u2503 Channels  \u2503 Peers  \u2503 Height \u2503 Synced? \u2503\n> \u2502 tranche-redis        \u2502\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n> \u2502 tranche-lnd          \u2502\u2502 tranche-lnd   \u2502 c0ae6b158d0  \u2502 0         \u2502 0      \u2502 202    \u2502    true \u2502\n> \u2502 tranche-bitcoind     \u2502\u2502               \u2502 4194459b8f3  \u2502           \u2502        \u2502        \u2502         \u2502\n> \u2502 ...                  \u2502\u2502 ...           \u2502 ...          \u2502 ...       \u2502 ...    \u2502 ...    \u2502 ...     \u2502\n```\n\n## Cleanup\n\n```sh\n$ tranche clean                    > \n> Remove active containers:                  \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 100% 0:00:01\n```\n\n## Roadmap\n\n* Add `tranche-lnd-krub` peripheral service using [lnd-krub](https://github.com/krutt/lnd-krub)\n* Add `tranche-tesla-ball` peripheral service using [tesla-ball](https://github.com/krutt/tesla-ball)\n* Write [click](https://click.palletsprojects.com) tests.\n* Make image versioning a little bit more intuitive.\n* Add `tranche-ord` peripheral service using [ord](https://github.com/ordinals/ord)\n* Add `tranche-bitvm` peripheral service using [BitVM](https://github.com/BitVM/BitVM)\n* Create and add some type of `ordapi` peripheral service.\n* Implement dashboard walkthrough a la [kylepollina/objexplore](https://github.com/kylepollina/objexplore)\n\n## Contributions\n\nThis project uses [poetry](https://python-poetry.org) package manager to keep track of dependencies.\nYou can set up your local environment as such\n\n```sh\n$ pip install --user poetry\n> ...\n$ poetry install --with dev  # install with development dependencies\n> Installing dependencies from lock file\n>\n> Package operations: 33 installs, 0 updates, 0 removals\n>\n>   \u2022 ...\n>   \u2022 ...\n>   \u2022 ...\n>   \u2022 ...\n>\n> Installing the current project: tranche (0.2.5)\n```\n\n### Known issues\n\nYou may run into this setback when first running this project. This is a\n[docker-py](https://github.com/docker/docker-py/issues/3059) issue widely known as of October 2022.\n\n```python\ndocker.errors.DockerException:\n  Error while fetching server API version: (\n    'Connection aborted.', FileNotFoundError(\n      2, 'No such file or directory'\n    )\n  )\n```\n\nSee the following issue for Mac OSX troubleshooting.\n[docker from_env and pull is broken on mac](https://github.com/docker/docker-py/issues/3059#issuecomment-1294369344)\nRecommended fix is to run the following command:\n\n```sh\nsudo ln -s \"$HOME/.docker/run/docker.sock\" /var/run/docker.sock\n```\n\n## License\n\nThis project is licensed under the terms of the MIT license.",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Command line interface used for generating local Lightning test environment",
    "version": "0.2.5",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "550484e3b9e0ec03d668cc49e2de09bb27bfee0a3303324ff5c4aa59819be90c",
                "md5": "1dfa799d3c5a261755632b89058e8834",
                "sha256": "eb1ab1e28ef166e2ae0e68333422a2ede779be82da018686febecc2288a2b6b2"
            },
            "downloads": -1,
            "filename": "tranche-0.2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1dfa799d3c5a261755632b89058e8834",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<4.0",
            "size": 23099,
            "upload_time": "2023-12-03T05:52:32",
            "upload_time_iso_8601": "2023-12-03T05:52:32.506033Z",
            "url": "https://files.pythonhosted.org/packages/55/04/84e3b9e0ec03d668cc49e2de09bb27bfee0a3303324ff5c4aa59819be90c/tranche-0.2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2be9bff003e8488c77f5abf551c3caab02fa53ef52e33ee568f1ac74d97c08a0",
                "md5": "162b2b7a1b586f6ec3980fbd87d8e621",
                "sha256": "1b4fab3444c5a60ae90fb541ee74a457ea45bee264f3f4dd4f25427f259f9eb9"
            },
            "downloads": -1,
            "filename": "tranche-0.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "162b2b7a1b586f6ec3980fbd87d8e621",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4.0",
            "size": 13884,
            "upload_time": "2023-12-03T05:52:34",
            "upload_time_iso_8601": "2023-12-03T05:52:34.387807Z",
            "url": "https://files.pythonhosted.org/packages/2b/e9/bff003e8488c77f5abf551c3caab02fa53ef52e33ee568f1ac74d97c08a0/tranche-0.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-03 05:52:34",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "tranche"
}
        
Elapsed time: 0.14414s