Package: aesir
AesirPrerequisitespython (3.8+)pipdockerGetting startedYou can useaesirsimply by installing viapipon your Terminal.pipinstallaesirAnd then you can begin deploying local cluster as such:aesirdeployThe initial deployment may take some time at pulling required images from their respective
repositories. Results may look as such:$pipinstallaesir
>...
>Installingcollectedpackages:aesir
>Successfullyinstalledaesir-0.3.5
$aesirdeploy
>Deployspecifiedlocalcluster:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:01
>Generateaddresses:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:00
>Mineinitialcapitalforparties:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:00You will have docker containers running in the backend, ready to be interfaced by your local
environment applications you are developing.Begin local miningIn 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:$aesirmine
>╭─────containers─────╮┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
>│aesir-redis│┃Name┃Nodekey┃Channels┃Peers┃Height┃Synced?┃
>│aesir-postgres│┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
>│aesir-pong││aesir-pong│02fabeeaa9d│2│1│216│true│
>│aesir-ping│││3da33d3eb12│││││
>│aesir-bitcoind│││262e039d9b2│││││
>││││9d591f1b897│││││
>││││c0ae6b158d0│││││
>││││5410d97efbc│││││
>││├───────────────┼──────────────┼───────────┼────────┼────────┼─────────┤
>│││aesir-ping│02ac17a8d64│2│1│216│true│
>││││4194459b8f3│││││
>││││deacf4e1a64│││││
>││││0fcbcdf9fbf│││││
>││││39e8423dfdc│││││
>││││3ffa2f7367f│││││
>││└───────────────┴──────────────┴───────────┴────────┴────────┴─────────┘
>││╭──────────────────────────────────────────────────────────────────────╮
>│││Chain:regtestBlocks:216Size:65259Time:1701528030│
>╰──────────────────────╯╰──────────────────────────────────────────────────────────────────────╯Cluster typesCurrently there are two supported cluster-types in this project. Specified by flags,--duo(default), or--unowith the following set-up:TypeDescriptionduoContains two LND nodes namedaesir-pingandaesir-pongunified byone singleaesir-bitcoindservice.unoOnly has one LND node namedaesir-lndconnected toaesir-bitcoind.Peripheral containersThis 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:$aesirdeploy--with-postgres
>...
$aesirmine
>╭─────containers─────╮┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
>│aesir-postgres│┃Name┃Nodekey┃Channels┃Peers┃Height┃Synced?┃
>│aesir-pong│┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
>│aesir-ping││aesir-pong│3da33d3eb12│2│1│216│true│
>│aesir-bitcoind│││deacf4e1a64│││││
>│...││...│...│...│...│...│...│Or run an uno-cluster with both attached postgres database and redis solid store cache like this:$aesirdeploy--uno--with-postgres--with-redis
>...
$aesirmine
>╭─────containers─────╮┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┓
>│aesir-postgres│┃Name┃Nodekey┃Channels┃Peers┃Height┃Synced?┃
>│aesir-redis│┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━╇━━━━━━━━━┩
>│aesir-lnd││aesir-lnd│c0ae6b158d0│0│0│202│true│
>│aesir-bitcoind│││4194459b8f3│││││
>│...││...│...│...│...│...│...│CleanupUse the following command to clean up activeaesir-*containers:aesirclean🚧  This will resets the current test state, so use with care. Example below:$aesirclean
>Removeactivecontainers:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━100%0:00:01Change-logs0.3.1Addaesir-cashu-mint&aesir-lnd-krubimage setups and deployments w/ shared volumes0.3.2Define classifiers onpyproject.tomlfor PyPI metadata0.3.3Dropblackand useruffformatter and linter0.3.4Simplify deployment workflows and0.3.5Restructure project so that when installed,srcfolder will not be created0.3.6Breakdown "setup" command into "build" and "pull"0.3.7Lightning cluster now withord0.3.8Rename "ord" to "ord-server" to avoid confusion with cli0.3.9Remove intermediate containers0.4.0Resist electricity with "ohm" modeRoadmapMake image versioning a little bit more intuitive.Addaesir-tesla-ballperipheral service usingtesla-ballWriteclicktests.Usejoblibto speed up deployment with parallelization.Addaesir-bitvmperipheral service usingBitVMCreate and add some type ofordapiperipheral service.Implement dashboard walkthrough a lakylepollina/objexploreContributionsThis project usespoetrypackage manager to keep track of dependencies.
You can set up your local environment as such:pipinstall--userpoetryAnd then you can install development dependencies like so:$pipinstall--userpoetry
>...
$poetryinstall--withdev# install with development dependencies>Installingdependenciesfromlockfile
>
>Packageoperations:33installs,0updates,0removals
>
>•...
>•...
>•...
>•...
>
>Installingthecurrentproject:aesir(0.4.0)Known issuesYou may run into this setback when first running this project. This is adocker-pyissue widely known as of October 2022.docker.errors.DockerException:ErrorwhilefetchingserverAPIversion:('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 macRecommended fix is to run the following command:sudoln-s"$HOME/.docker/run/docker.sock"/var/run/docker.sockLicenseThis project is licensed under the terms of the MIT license.