Underlying Holochain Version: v0.1.0-beta-rc.0 December 15, 2022
Expects an HAPP built with HDK v0.1.0-beta-rc.0 and HDI v0.2.0-beta-rc.0 An alternative Holochain conductor binary useful for quick startup and including handling of key generation and hApp installation.
```bash holochain-runner 0.5.0 wrapped Holochain Conductor with Status Update events, and a good SIGTERM kill switch
USAGE:
holochain-runner [OPTIONS]
FLAGS: -h, --help Prints help information -V, --version Prints version information
OPTIONS:
--admin-ws-port <datastore_path>/keystore
.
--network-seed
ARGS:
app_id
and app_ws_port
will be overridden if an existing
configuration is found at this path [default: databases]
```
Lair Keystore setup requires use of a passphrase for encryption and security.
You should pipe the passphrase to holochain-runner
as STDIN, so that it can unlock the lair-keystore and connect to it. You do not need to pass -p
, it assumes the password will be piped.
datastore-path
is most important. If existing persisted Holochain conductor files
are found in the given directory, it will simply re-use the admin_ws_port
app_ws_port
app_id
and dnas
from that configuration. Otherwise, it will create that directory, and setup your configuration as specified.
keystore-path
can point to an empty folder, or a pre-existing keystore, as long as that keystore uses a compatible keystore format. If there is a private key in the existing keystore it will use that to install the HAPP, if there is none, it will generate one automatically on the first run.
It uses structopt to make a configurable service. For a more advanced application using shutdown signal, and StateSignal
listeners, you can see it in use in the Acorn Holochain application.
In either case,
it will log this to the console when the interfaces are all ready and the app installed or running:
HOLOCHAIN_RUNNER_IS_READY
It will clearly log its configuration to the console.
RUST_LOG environment variable can be set to get details logs from Holochain. Those logs are by default suppressed.
It may emit events, based on event types in an enum StateSignal
. These will be logged to the console
so that you can track the internal state and progress.
It looks like:
rust
pub enum StateSignal {
// will be only one or the other of these
IsFirstRun,
IsNotFirstRun,
// are sub events after IsFirstRun
CreatingKeys,
RegisteringDna,
InstallingApp,
EnablingApp,
AddingAppInterface,
// Done/Ready Event, called when websocket interfaces and
// everything else is ready
IsReady,
}
This library is currently by default pointed at the https://bootstrap-staging.holo.host
node discovery service, but can be overridden.