Help us by testing your hApp over the Internet with Holoscape and sim2h!

I’m still trying to install HoloFuel from the provided example bundle HoloFuel

As you can see in the screenshot, it installs the DNA however gets stuck when it moves to installing “holofuel-ui.zip”

Here is the current version of the conductor config file.

persistence_dir = '/Users/thomasmiller/Library/Application Support/Holoscape-default'
ui_bundles = []
ui_interfaces = []

[[agents]]
id = 'Passthrough-agent'
keystore_file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/HcSCJDvqRFotetwenywaKPCDjTf8v5wodcn4jGM8U7i4Mfex9RD4W6YFwrH8ohz'
name = 'Passthrough-agent'
public_address = 'HcSCJDvqRFotetwenywaKPCDjTf8v5wodcn4jGM8U7i4Mfex9RD4W6YFwrH8ohz'

[[agents]]
id = 'Personas & Profiles-agent'
keystore_file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/HcSCI4oItMfDsk8fzr85n58yumkVW9XmbWKd6FFiYvh9s9c93BEH8ccQ4Uatxvr'
name = 'Personas & Profiles-agent'
public_address = 'HcSCI4oItMfDsk8fzr85n58yumkVW9XmbWKd6FFiYvh9s9c93BEH8ccQ4Uatxvr'

[[agents]]
id = 'Peer Chat Public-agent'
keystore_file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/HcScj7Y48YcgRjereoty6z365genhRnzvXpcsvSD5Swvdqog8ggpboO4On7r8qz'
name = 'Peer Chat Public-agent'
public_address = 'HcScj7Y48YcgRjereoty6z365genhRnzvXpcsvSD5Swvdqog8ggpboO4On7r8qz'

[[agents]]
id = 'holofuel-agent'
keystore_file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/HcSCj9dk6AC55mdi93RKPRUHxobkmim4e3QE39FFEZNN9is6q9b5YEwvhVcn76z'
name = 'holofuel-agent'
public_address = 'HcSCj9dk6AC55mdi93RKPRUHxobkmim4e3QE39FFEZNN9is6q9b5YEwvhVcn76z'

[[bridges]]
callee_id = 'Personas & Profiles'
caller_id = 'Peer Chat Public'
handle = 'p-p-bridge'

[[dnas]]
file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/dna/QmZ1z6SKKeG53RQWwma7k644GUaX2dj4v5HEEGTs8ScRyJ.dna.json'
hash = 'QmZ1z6SKKeG53RQWwma7k644GUaX2dj4v5HEEGTs8ScRyJ'
id = 'Passthrough-dna'

[[dnas]]
file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/dna/QmcsksrxMz8hB35KPrf5uWqydAHHjnQRNcgyPbW4LkEPD8.dna.json'
hash = 'QmcsksrxMz8hB35KPrf5uWqydAHHjnQRNcgyPbW4LkEPD8'
id = 'Personas & Profiles-dna'

[[dnas]]
file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/dna/QmakmeiLMDFzN54CBUSk2UtvyYEUVdnLB6JPg2LLQ3TTrH.dna.json'
hash = 'QmakmeiLMDFzN54CBUSk2UtvyYEUVdnLB6JPg2LLQ3TTrH'
id = 'Peer Chat Public-dna'

[[dnas]]
file = '/Users/thomasmiller/Library/Application Support/Holoscape-default/dna/QmcnYu8B54tFnJUv68aB3imPRwLxqJH2DQzjkX9Dvxmsf9.dna.json'
hash = 'QmcnYu8B54tFnJUv68aB3imPRwLxqJH2DQzjkX9Dvxmsf9'
id = 'holofuel-dna'

[[instances]]
agent = 'Passthrough-agent'
dna = 'Passthrough-dna'
id = 'Passthrough'

[instances.storage]
path = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/Passthrough'
type = 'pickle'

[[instances]]
agent = 'Personas & Profiles-agent'
dna = 'Personas & Profiles-dna'
id = 'Personas & Profiles'

[instances.storage]
path = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/Personas & Profiles'
type = 'pickle'

[[instances]]
agent = 'Peer Chat Public-agent'
dna = 'Peer Chat Public-dna'
id = 'Peer Chat Public'

[instances.storage]
path = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/Peer Chat Public'
type = 'pickle'

[[instances]]
agent = 'holofuel-agent'
dna = 'holofuel-dna'
id = 'holofuel'

[instances.storage]
path = '/Users/thomasmiller/Library/Application Support/Holoscape-default/storage/holofuel'
type = 'pickle'

[[interfaces]]
admin = true
id = 'admin interface'
instances = []

[interfaces.driver]
port = 4435
type = 'websocket'

[[interfaces]]
admin = false
id = 'Passthrough Test hApp-interface'

[[interfaces.instances]]
alias = 'test-instance'
id = 'Passthrough'

[interfaces.driver]
port = 10000
type = 'websocket'

[[interfaces]]
admin = false
id = 'Peer Chat-interface'

[[interfaces.instances]]
alias = 'peer-chat-public'
id = 'Peer Chat Public'

[interfaces.driver]
port = 10001
type = 'websocket'

[[interfaces]]
admin = false
id = 'Identity Manager-interface'

[[interfaces.instances]]
alias = 'personas-profiles'
id = 'Personas & Profiles'

[interfaces.driver]
port = 10002
type = 'websocket'

[[interfaces]]
admin = true
id = 'HoloFuel-interface'
instances = []

[interfaces.driver]
port = 10000
type = 'websocket'

[logger]
state_dump = true
type = 'debug'
[[logger.rules.rules]]
exclude = true
pattern = '.*'

[[logger.rules.rules]]
exclude = false
pattern = '^lib3h'

[[logger.rules.rules]]
exclude = false
pattern = '^holochain'

[[logger.rules.rules]]
exclude = false
pattern = '^lib3h'

[network]
sim2h_url = 'wss://sim2h.holochain.org:9000'
type = 'sim2h'

[passphrase_service]
path = '/Users/thomasmiller/Library/Application Support/Holoscape-default/conductor_login.socket'
type = 'unixsocket'

[signals]
consistency = true
trace = true

Latest update: I got holofuel working with the install hApp from bundle file page after deleting/renaming Holoscape-default

But I guess the error happens when installing multiple UIs.

Does anyone have any documentation on how to bundle a hApp for holoscape?

I’m currently building a bundle file from scratch.

I know how to create the dna_hash and dna.json file the toml file points to (by running hc package)

However…

  1. Not sure what tool to use to create the ui_bundle_hash that is required under [[UIs]]
  2. Are there any other gotchas to zipping a ui build folder?

If anyone knows of a tutorial on this let me know otherwise I’m happy to compile my notes to flesh this tutorial out.

1 Like

Yes, that is the same bug that I thought was fixed in 0.0.3. Are you actually using that latest release, or are you running 0.0.2?

And yes, that only happens with bundles with two or more UIs. Holoscape is looking for the next free port and doesn’t (didn’t?) wait for the last assigned port to actually get used - hence the double assign.

Regarding your questions:

  1. That hash is not used so far and won’t be checked by Holoscape - you can leave it blank.
  2. The only assumption is that there is an index.html file at the root of the archive.

There is no tutorial out yet. If you want to start writing one I’d be more than happy to help you with any questions that come up. :slight_smile: That said, I would suggest to start easy since some pieces are still WIP (like the UI hash). We might need to iterate and don’t want you to have to rewrite a lot if we change something.

What I currently see as an important next step is to get hc run to interpret these bundle files and automatically create a development conductor from it. That should render bundle files a central artifact for hApp projects. Once that’s there, a tutorial describing the whole workflow would make a lot of sense!

1 Like

yeah I’m running 0.0.3 Alpha.

Thanks for the answers.

Yes I will help create this tutorial, will share a start on https://hackmd.io/ soon. :slight_smile:

1 Like

very cool, will try running this over the weekend

1 Like

@lucksus

I’ve gone ahead and created this tutorial that walks people through bundling the hApp created in the offical Hello Holo tutorial: https://hackmd.io/vbCUE9CoSNC1-62ak5hYYg

However, when I upload the bundle file it crashes… There were no errors so I shot this quick video to show what happens: http://somup.com/cqXDqKfbFB

2 Likes

Looks great, @ThomasMiller. Thanks for writing this up!

Sorry for the late reply, and also sorry for the missing error output in Holoscape. There is one error in your bundle file: the instance_id under [[UIs.instance_references]] has to reference an ID of an instance within the bundle file. You got __gui there which is no instance ID but the ID of the UI. It should read:

[[UI.instance_references]]
ui_handle = "test-instance" #or whatever the hard-coded string in the UI code is
instance_id = "__cctuts" #ID of an instance described within this file.

That whole block is a sub-item of the UI definition with the ID __gui anways.

1 Like

Thanks @lucksus for pointing out how UI instances “actually” reference DNAs instances.

I feel there is another gotcha, and I was coming across this error before with previous attempts.

I package this complete hApp with UI as in the walkthrough, and somehow it creates a different hash to what I’m creating with “hc package”.

Hm, Holoscape runs hc hash -p <file> to calculate the hash of the file it got through the bundle. We recently made a change to hc that changes the default behavior to not include meta fields into the package (which caused problems). This definitely changes the hash of the file - but once it’s packaged it should be fine. So I’m not sure why you get different hashes, but one thing to try would be making sure it is the same version of hc that is used for packaging as well as the version that is used inside Holoscape.

I guess you are using the release binary of Holoscape which was packaged with holochain and hc v0.0.36-alpha1. You could either download the hc binary of that version here, or you clone the Holoscape repository and put your holochain and hc binaries (from https://holochain.love ?) into that directory and run Holoscape in development mode with npm start as described here.

I intend to have Holoscape v0.0.4 at least show which versions of holochain and hc are bundled with it - maybe even having an update button that downloads newer releases.

1 Like

Hi Nico, I’ve also asked another user to document their experience with Holoscape. I’ve submitted an issue with notes from this user.

Tried out the just-now released v0.0.4 for Mac.

  1. Installation was no different from any other (untrusted) Mac app. :tada:

  2. Basic Chat could not be installed due to the “Hash of found file is different” problem:

  3. After having installed one app successfully (I started with the Peer Chat), this prompt showed underneath all app pages, regardless of whether I had installed it or not.

  4. After an app has finished installing, everything is cleared out except the app’s listing. This confused me several times, as I was wondering if something had gone wrong. Some sort of confirmation prompt here would be nice. (I’m guessing this is where the prompt mentioned in (3) is supposed to show up!)

  5. All apps except Basic Chat installed and ran without issues :muscle:

2 Likes

Hi @erlend_sh Thank you for testing and providing feedback on your experience.

Yes, @ThomasMiller and @erlend_sh, there was a bug in hc's hash calculation which was mistakenly changing the DNA if no properties were given (just hc hash, no hc hash --property x=1). This got fixed recently in v0.0.40-alpha1.

  1. This new version should fix your problem @ThomasMiller - that is, your workflow should be fine and not show a hash mismatch anymore if you use all the newest builds.
  2. That fix is exactly what broke the installation of Basic Chat which had the old/wrong DNA hash in its bundle. That got fixed now as well - thanks for pointing this out @erlend_sh! Please try again, it should work now. And if it does, we can chat over there :slight_smile:
1 Like

Oh, and yes: the UX is still … sub-optimal. There is a major revamp on its way, but that is not (yet) at the top of our priority list.

Okay, tried at least 5 times tonight.

Outcome: unable to run any app

  1. Install Holoscape
  2. See images
  3. hApps tray – empty.
  4. Will try again another day.

It looked like the hApp was installed but it wasn’t showing up in the hApp list in the tray icon. It could be a catalina problem but we will keep digging

Small tasting testing of Holoscape sim2hl. I work with OS windows pro. To install WSL2 https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/, followed by nix-shell and https://github.com/holochain/holoscape .
https://youtu.be/wzMxVLwdqVQ

1 Like

Thanks for sharing this Wladoo, I too am on windows, and having followed the directions, I’m seeing an ubuntu desktop after running startxfce4, but there is no launcher bar, and when right clicking to open a terminal it has me select a terminal, but no windows will open.

Does this log tell you anything?

pnewell@Peter-Desktop:~$ startxfce4
/usr/bin/startxfce4: X server already running on display 172.20.0.1:0
gpg-agent[398]: WARNING: “–write-env-file” is an obsolete option - it has no effect
gpg-agent: a gpg-agent is already running - not starting a new one

(xfce4-session:387): xfce4-session-WARNING **: 10:22:24.335: gpg-agent returned no PID in the variables

(xfce4-session:387): xfce4-session-WARNING **: 10:22:24.336: xfsm_manager_load_session: Something wrong with /home/pnewell/.cache/sessions/xfce4-session-172.20.0.1:0, Does it exist? Permissions issue?
xfsettingsd-Message: 10:22:24.374: Skipping screen 0, it already has an xsettings manager…

(xfsettingsd:415): libupower-glib-WARNING **: 10:22:24.377: Couldn’t connect to proxy: Could not connect: No such file or directory

(xfsettingsd:415): libupower-glib-CRITICAL **: 10:22:24.377: up_client_get_lid_is_closed: assertion ‘UP_IS_CLIENT (client)’ failed

(xfsettingsd:415): GLib-GObject-WARNING **: 10:22:24.377: invalid (NULL) pointer instance

(xfsettingsd:415): GLib-GObject-CRITICAL **: 10:22:24.377: g_signal_connect_data: assertion ‘G_TYPE_CHECK_INSTANCE (instance)’ failed

(xfwm4:401): xfwm4-WARNING **: 10:22:24.439: Error opening /dev/dri/card0: No such file or directory
env: ‘Thunar’: No such file or directory
env: ‘xfce4-panel’: No such file or directory

** (xfdesktop:409): WARNING **: 10:22:24.501: Failed to get system bus: Could not connect: No such file or directory
xfsettingsd: Another clipboard manager is already running.
Gtk-Message: 10:22:46.486: GtkDialog mapped without a transient parent. This is discouraged.
[error]No input, aborting
Gtk-Message: 10:22:56.870: GtkDialog mapped without a transient parent. This is discouraged.

I’ve mostly got it working following the instructions on this page.

I’m now able to launch holoscape and got to the page to set the networking, but after clicking next the whole window disappeared. From the console log it appears as though the conductor is running, but I’m not getting any holoscape UI. Subsequent runs no longer prompt with the networking screen and just close right away.

Now I see that it is running successfully and that the screen is expected when there aren’t other things installed. I’ve now successfully installed PeerChat!

I would suggest either a log message to console or another admin screen with something to happen when there aren’t apps installed.