Holochain RSM getting started troubles

Hi,

I am new to Holochain development and wanted to get started tinkering around with it. I have a fresh install of Ubuntu 20 in a Virtual Machine.

I started with the tutorial (https://developer.holochain.org/docs/install/) the Nix package manager installed fine.

When using the one-liner to install Holonix I ran into my first problem when running the command:

$(nix-build https://holochain.love --no-link -A pkgs.holonix)/bin/holonix

No nix-shell is spawned and the output gives me following warning:

warning: the group 'nixbld' specified in 'build-users-group' does not exist

With a little tinkering around to fix the issue, I created a new user and added him to the nixbld group. I don’t know if this is the correct way because in the tutorial it isn’t mentioned to have a user in this group. If someone has a proper/other way of fixing the warning please let me know.

adduser --disabled-password --gecos '' docker
adduser docker sudo
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
addgroup --system nixbld
adduser docker nixbld

After trying the one-line again everything worked fine and the nix-shell spawned like expected.

[nix-shell:~]$ holochain --version
holochain 0.0.100

[nix-shell:~]$ dna-util --version
dna-util 0.0.1

Unfortunately, the “Hello Holo” tutorial (https://redux.developer.holochain.org/docs/tutorials/coreconcepts/hello_holo/) isn’t available yet for the RSM Holochain. Is there a equivalent available that I can take a look at to learn more from that? I have also tried to perform the old tutorial in the new Holochain RSM but it seems that the command “hc” is depreciated. Is there a new command for the “hc” command that I can use to perform the “Hello Holo” tutorial in the Holochain RSM?

Unfortunately the documentation just really isn’t there yet with RSM, so you’ll probably need to jump between the website documentation, the GitHub documentation, the HDK API docs, and the Holochain code. Fortunately, creating a hApp is significantly easier in RSM, so a lack of tooling is much less of an issue than it would be in Redux. There is a link to this document at the bottom of the install instructions which helped me out a lot. It isn’t stated but I gather that the preferred way to interact with the conductor once its running is the Node API (This may be wrong… how do they test newer versions if the API is not compatible with it?). The one thing you need to make sure of is that you’re using the correct version on everything! The conductor must be compatible with the HDK version you used in your zomes/DNA, and the Node conductor Api must be compatible with the conductor. I believe the Node API will dictate which version you use (check the README). I have been trying to develop and run a hApp for three days now without luck, so here’s hoping for a better development experience soon. Good luck!

2 Likes

Thank you for your answer. I will take a look at the two repositories you mentioned. I also have the impression that it is currently difficult to get an overview about the information which is available for the Holochain RSM from the different sources like GitHub, Holochain documentation and the forum.

Have you checked the holochain gym ->

Ping @steveeJ

Thank you for your help @Dudism I have already read about it here in the forum. I have tried the ‘Beginner 1.Elements’ exercise, because I have no knowledge of the programming language Rust I cheated and took the file lib.rs from the solution branch just to see if it works. Unfortunately it didn’t work when I tested it with the ‘cargo test’ command. Am I executing it in the right directory? Maybe you or @guillemcordoba sees what I did wrong.

[nix-shell:~/developer-exercises/basic/1.elements]$ cargo test
    Updating git repository `https://github.com/holochain/holochain`
    Updating crates.io index
error: failed to select a version for `observability`.
    ... required by package `ghost_actor v0.3.0-alpha.1`
    ... which is depended on by `holochain_keystore v0.0.1 (https://github.com/holochain/holochain?rev=8c62cb5888f491f08e6fdf13b6f3991f85a9801a#8c62cb58)`
    ... which is depended on by `holochain_types v0.0.1 (https://github.com/holochain/holochain?rev=8c62cb5888f491f08e6fdf13b6f3991f85a9801a#8c62cb58)`
    ... which is depended on by `elements_exercise v0.1.0 (/home/student/developer-exercises/basic/1.elements)`
versions that meet the requirements `=0.1.1` are: 0.1.1

all possible versions conflict with previously selected packages.

  previously selected package `observability v0.1.3`
    ... which is depended on by `holochain_types v0.0.1 (https://github.com/holochain/holochain?rev=8c62cb5888f491f08e6fdf13b6f3991f85a9801a#8c62cb58)`
    ... which is depended on by `elements_exercise v0.1.0 (/home/student/developer-exercises/basic/1.elements)`

failed to select a version for `observability` which could resolve this conflict

[nix-shell:~/developer-exercises/basic/1.elements]$

Oh wow yeah, didn’t think the gym would pick activity so fast. Yes that seems like an error on my part, I uploaded a fix so can you try again?

For the record, that first elements exercise is about to get revamped, also with the code exercise. And I intend to develop more exercises soon.

Thanks you for your fast answer great community here :grin: :+1:. Yeah I really like the idea of the gym especially for beginners. I am looking forward to see how the gym project will develop in the near future. :relaxed:

I have tested your new version here is my output:

[nix-shell:~/developer-exercises/basic/1.elements]$ cargo test
Compiling elements_exercise v0.1.0 (/home/student/developer-exercises/basic/1.elements)
error: unused import: crate::*
→ src/tests.rs:1:5
|
1 | use crate::*;
| ^^^^^^^^
|
= note: -D unused-imports implied by -D warnings

error: aborting due to previous error

error: could not compile elements_exercise

To learn more, run the command again with --verbose.

[nix-shell:~/developer-exercises/basic/1.elements]$

Oh wow okey, thanks for the feedback. Can you try again? Now it should work.

Thank you it its working! So now it is time for me to learn Rust :grin:. I will take a look at the other exercises when I understand the solution of the first exercise.

[nix-shell:~/developer-exercises/basic/1.elements]$ cargo test
   Compiling elements_exercise v0.1.0 (/home/student/developer-exercises/basic/1.elements)
    Finished test [unoptimized + debuginfo] target(s) in 3.45s
     Running /home/student/target/debug/deps/elements_exercise-3912622730de6bcf

running 4 tests
test tests::tests::header_address ... ok
test tests::tests::test_get_header_timestamp ... ok
test tests::tests::test_contains_entry ... ok
test tests::tests::test_is_header_subconscious ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

   Doc-tests elements_exercise

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
1 Like

@guillemcordoba need help with the gym? Let me know, I’d be happy to help make it more comprehensive - e.g. bring together all resources one might need to consult to complete the gym.

The idea is brilliant but maybe it could have links to more detailed documentation - also happy to help with that.

I myself couldn’t figure out most of the solutions. Note also that (and maybe this is stale) the solutions has a whole additional module utils.rs which is not in the exercise description.

He has a forum entry where he asks for help: [Gym] Help needed! Offer/Request

That meant their ‘smartness’ layer ought to be decentralised too. Initially drawn to blockchain, they quickly realised that it was too slow and not actually all that decentralised. When they discovered Holochain, they decided it was an ideal match.