#holochain #events #conductor #update #status #binary #key

app holochain-runner

一个带有密钥管理、良好默认设置和状态更新事件的Holochain运行时二进制文件。适用于开发和生产环境

24个版本

0.7.9 2023年10月30日
0.7.2 2023年5月18日
0.6.0 2023年1月28日
0.5.0 2022年12月19日
0.0.28 2021年10月6日

#1559 in 魔法豆

42 每月下载量

CAL-1.0AGPL-3.0 WITH mif-exception

56KB
503

holochain-runner

一个适用于快速启动并包括密钥生成和hApp安装的备用Holochain控制台二进制文件。

holochain-runner 0.7.8
wrapped Holochain Conductor with Status Update events, and a good SIGTERM kill switch 

USAGE:
    holochain-runner [OPTIONS] <happ-path> [datastore-path]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --admin-ws-port <admin-ws-port>             [default: 1234]
        --app-id <app-id>                           [default: main-app]
        --app-ws-port <app-ws-port>
            The 0 default value here really means that
            a random open port will be selected if you don't pass one.
            The selected value will be reported out in the logs. [default: 0]
        --bootstrap-url <bootstrap-url>             [default: https://bootstrap.holo.host]
        --keystore-path <keystore-path>
            This folder will store the private keys. It is encrypted on both Mac and Linux, but not Windows.
            Per the behaviour of holochain itself, if you
            do not pass a value here, it will use a default which is equal to the
            value of `<datastore_path>/keystore`.
        --network-seed <network-seed>              
        --webrtc-signal-url <webrtc-signal-url>
            Websocket URL (wss) to a holochain tx5 WebRTC signal server [default: wss://signal.holo.host]
        --gossip-arc-clamping <gossip-arc-clamping>
            Fix the size of the gossip arc you are responsible for serving to either the full DHT (full), or none of it (empty). Default behavior is to auto-adjust your gossip arc based on network conditions.
            [default: auto]  [possible values: full, empty, none]


ARGS:
    <happ-path>         the path to a HAPP file to be
                        default installed to the app,
                        ending in .happ
    <datastore-path>    configuration values for `app_id` and `app_ws_port`
                        will be overridden if an existing
                        configuration is found at this path [default: databases]

工作原理

Lair密钥库设置需要使用密码进行加密和安全。您应将密码通过管道传递给holochain-runner作为标准输入,以便它可以解锁lair-keystore并连接到它。您不需要传递-p,它假定密码将通过管道传递。

datastore-path最为重要。如果在指定的目录中找到现有持久化的Holochain控制台文件,它将简单地重用该配置中的admin_ws_portapp_ws_portapp_iddnas。否则,它将创建该目录,并根据指定设置配置您的配置。

keystore-path可以指向一个空文件夹,或一个现有的密钥库,只要该密钥库使用兼容的密钥库格式即可。如果现有密钥库中有私钥,它将使用该私钥安装HAPP;如果没有,它将在首次运行时自动生成一个。

它使用structopt创建一个可配置的服务。对于更高级的应用程序,使用关闭信号和StateSignal监听器,您可以在Acorn Holochain应用程序中查看其使用情况。

在任何情况下,

  • 首次运行/安装
  • 第二次运行/重启

当所有接口都就绪且应用程序已安装或正在运行时,它将在控制台记录此信息

HOLOCHAIN_RUNNER_IS_READY

它将清楚地将其配置记录到控制台。

RUST_LOG环境变量可以设置为从Holochain获取详细信息日志。这些日志默认被抑制。

事件

它可能会根据枚举中的事件类型StateSignal触发事件。这些事件将被记录到控制台,以便您可以跟踪内部状态和进度。

看起来像

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,
}

引导网络服务

该库默认指向https://bootstrap.holo.host节点发现服务,但可以被覆盖。

信号服务

该库当前默认指向wss://signal.holo.host WebRTC信号服务,但可以被覆盖。

依赖项

~83–120MB
~2M SLoC