D2.2 update

In bash this might be:

upsycle-send () {
  local host=$1
  local port=$2
  local line
  while read line; do
    nc "$host" "$port" <<< "$line"
  done
}
cat > file.txt # e.g. n<enter>S<enter><ctrl-d>
cat file.txt | upsycle-send 127.0.0.1 7001

But to make a nice demo you probably want to send a few commands to the message router A, then to service A1, then to the message router or another service, etc. It might an idea to make a little DSL for this.

s-a1 j # join multicast groups
sleep 5
s-a1 m # send multicast update
mr-a S

with mappings mr-a=mr-a.dream.public.cat:7001, s-a1=dmc-1.dream.public.cat:nnnn in another file.

and then eventually

s-a1 join-multicast-groups <key1> <key2>
sleep 5
s-a1 send-multicast <key1> "hello this is a DMC update"
mr-a show-state

and so on.

1 Like

Although I have gmp installed, I get:

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[ERROR] The compilation of conf-gmp failed at "/home/dream/.opam/opam-init/hooks/sandbox.sh build sh -exc cc -c $CFLAGS -I/usr/local/include test.c".

#=== ERROR while compiling conf-gmp.3 =========================================#
# context     2.0.8 | linux/x86_64 | ocaml-system.4.12.0 | https://opam.ocaml.org#b7eb40e7
# path        ~/.opam/default/.opam-switch/build/conf-gmp.3
# command     ~/.opam/opam-init/hooks/sandbox.sh build sh -exc cc -c $CFLAGS -I/usr/local/include test.c
# exit-code   1
# env-file    ~/.opam/log/conf-gmp-75590-e1320e.env
# output-file ~/.opam/log/conf-gmp-75590-e1320e.out
### output ###
# + cc -c -I/usr/local/include test.c
# test.c:1:10: fatal error: gmp.h: No such file or directory
#     1 | #include <gmp.h>
#       |          ^~~~~~~
# compilation terminated.



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build conf-gmp 3
└─
╶─ No changes have been performed

Looks like it’s missing a dev library. On Debian it would be called libgmp-dev, dunno about Alpine.

It's NixOS. I installed the gmp` package derivation.

So, anyway, just in passing. NixOS 21.05 on the Hetzner Cloud was broken. Now it’s fixed.

5 posts were split to a new topic: Upsycle-router on Alpine Linux

Please note that the commands to generate the keys and to run the components have changed slightly:

The new commands are

example/gen-keys-and-certs
example/run-message-router { a | b | c }
example/run-service { a1 | a2 | a3 | b1 }

(example can also be abbreviated ‘eg’)

Sorry for the late change but it was necessary to properly separate the examples from the non-examples.

1 Like

I guess you mean a1 | a2 | a2 | b1 :slight_smile:

Thank you for this and the Dockerfile.

Today we’re meeting with DataPlayers to discuss RDF. Will look at it tomorrow then. Have a nice day!

thanks, fixed.󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠

1 Like

I’m wondering where the TLS certificates go, so I can copy them from mr-a to mr-b and mr-c. Or are they consistent between hosts (unlikely)?

Is this a question related to this topic?
Do you mean which folder?

Am I really to answer this question? There are at least two threads to move out of this particular topic into their own topic.

I want to be able to copy the certificates from one VM to the next so they match their expected routers. I guess I cannot generate certificates and expect the configurations to magically match each other. :slight_smile:

Oh, sorry. Somehow I thought we were in a different thread.
Anyway, they are in the priv/cert/ directory (from root)

Thanks. Indeed, I moved the posts to another topic :wink:

Ah, dammit, I think I need mr-b up in order to run mr-c. Will look at it later.

Mm, no. C should be able to run without B running. You can try it on debian with the localhost example.
It only says ‘trying to connect to B’ or something like that.

woops, not from root, but from example/

You can control where they get generated: try bin/gen-keys-and-certs -h.

It will indeed hang trying to connect to B the way we have it now. Try changing the remote-routers line in -c.yaml to an empty array: remote-routers: []

Added a -n option to gen-keys-and-certs to generate longer-lasting certificates, see the usage. Otherwise they expire after 1 day.

1 Like

Hi, so we finished the README and (as far as we’re concerned) the announcement page.

The API docs are hosted (due to time-constraints) on an Alleycat server here. Tonight I will revise them and then apply the 0.1.0-alpha1 tag to the repo.

Please note that I’m not working tomorrow. Feel free to ask questions (if I can’t answer I won’t) and I can try to take a look at something in the evening but this is basically it for the release!

Next steps: Arie and I have a few programming todos left. We will work in a separate branch and merge next week with the tag 0.1.0-alpha2, without an announcement.

And after that … the understanding we have with the project now (see previous posts, recent conversations etc.) is that we will take a week or two now that this part is finished and decide whether and if so how we will continue with DREAM.

I’m available for a meeting if P.S. wants to organise one to talk about this release, just not on Tuesdays. Would be nice if @tg-x is there too since it’s his design.

And after October 15 I’ll be unavailable.

It’s been real :heart:

2 Likes