Holochain: как запросить инстансы у проводника производства? - PullRequest
0 голосов
/ 05 июля 2019

При запуске приложения holochain с использованием рабочего проводника (т. Е. С holochain -c hcconfig.toml),

Как запросить экземпляры из внешнего интерфейса с помощью @holochain/hc-web-client (v0.5.0)?

Я пробовал с:

import { connect } from "@holochain/hc-web-client";

const opts = {
  url: "ws://localhost:8888"
};
const hConn: HoloConn = await connect(opts);
const { call } = hConn;
const info = await call("info", "instances")();
console.log({ info });

Это похоже на работу с проводником разработки (т.е. hc run),

enter image description here

но когда я переключаюсь на рабочий проводник, он возвращает пустой массив в том же месте.

Есть ли что-то, что мне нужно изменить для выполнения этой работы с производственным проводником?


Это моя конфигурация проводника:

bridges = []

[[agents]]
id = "alice"
name = "alice"
keystore_file = "/tmp/hc/keys/alice.key"
public_address = "HcSCj9wvVKj7ryhm9ttRansEX5Zyk5ac4QOFK59sowZzrw36s6NuTSeDtn6oiui"

[[agents]]
id = "bob"
name = "bob"
keystore_file = "/tmp/hc/keys/bob.key"
public_address = "HcSCj7r458cQcxSkfwSa3S6myv7Mv5ukwSc4IP6fg8yYwoevVbFnY4dAO4e3dyz"


[[dnas]]
id = "tender"
file = "dist/hc-201906.dna.json"


[[instances]]
id = "instance_alice"
agent = "alice"
dna = "tender"
    [instances.storage]
    path = "/tmp/hc/instance_alice.storage"
    type = "file"
[[instances]]
id = "instance_bob"
agent = "alice"
dna = "tender"
    [instances.storage]
    path = "/tmp/hc/instance_bob.storage"
    type = "file"




[[interfaces]]
id = "websocket interface"
admin = true
    [interfaces.driver]
    port = 8888
    type = "websocket"

[logger]
type = "debug"
    [[logger.rules.rules]]
    color = "red"
    exclude = false
    pattern = "^err/"

    [[logger.rules.rules]]
    color = "white"
    exclude = false
    pattern = "^debug/dna"

    [[logger.rules.rules]]
    exclude = false
    pattern = ".*"

1 Ответ

0 голосов
/ 08 июля 2019

Проблема была в конфигурации проводника:

В определении интерфейса веб-сокета отсутствовала ссылка для показа экземпляров через этот интерфейс:

    [[interfaces.instances]]
    id = "instance_alice"
    [[interfaces.instances]]
    id = "instance_bob"

Полная конфигурация выглядит следующим образомэто:

bridges = []

[[agents]]
id = "alice"
name = "alice"
keystore_file = "/tmp/hc/keys/alice.key"
public_address = "HcSCjoZM6f4C3pe684umUf65KWVu8oqecZhwYeySVaxytowvFN777VbQxyCyopa"

[[agents]]
id = "bob"
name = "bob"
keystore_file = "/tmp/hc/keys/bob.key"
public_address = "HcSCIE6abINr5ojy7o8xp7fjMJjG4au67GU34QQjbkHg6prdhfYo9XyjVymsrdr"


[[dnas]]
id = "tender"
file = "dist/hc-201906.dna.json"


[[instances]]
id = "instance_alice"
agent = "alice"
dna = "tender"
    [instances.storage]
    path = "/tmp/hc/instance_alice.storage"
    type = "file"
[[instances]]
id = "instance_bob"
agent = "alice"
dna = "tender"
    [instances.storage]
    path = "/tmp/hc/instance_bob.storage"
    type = "file"




[[interfaces]]
id = "interface_websocket"
admin = true
    [interfaces.driver]
    port = 8888
    type = "websocket"
    [[interfaces.instances]]
    id = "instance_alice"
    [[interfaces.instances]]
    id = "instance_bob"

# -----------  UI  -----------

[[ui_bundles]]
id = "bundle_ui"
root_dir = "./web-ui/build"

[[ui_interfaces]]
id = "ui_interface"
bundle = "bundle_ui"
port = 8908
dna_interface = "interface_websocket"

# -----------  Logging  -----------

[logger]
type = "debug"
    [[logger.rules.rules]]
    color = "red"
    exclude = false
    pattern = "^err/"

    [[logger.rules.rules]]
    color = "white"
    exclude = false
    pattern = "^debug/dna"

    [[logger.rules.rules]]
    exclude = false
    pattern = ".*"
...