I’ve been working on providing the builds for ARM. I’ve submitted a PR to resolve the issue raised by @folaht , so the Aarch64 build will be available shortly.
Since some people were asking, I just wanted to provide some info on these builds.
They’ve been built using the cross project, which very nicely uses Docker containers to wrap all the tedious configuration for cross compilation. In terms of testing, the sn_node ARM builds pass a large subset of the tests defined in the safe_network repo. Of the tests that didn’t pass, most of the failures were actually due to the configuration of the containers used by cross in the test run. We’ll definitely be able to fix those. The other tests that didn’t pass were ‘prop’ tests that are very CPU intensive and were just taking a very long time to run with the limited container resources.
There have been no tests on actual ARM hardware yet, but in the coming days, I’m going to test and run the builds on a Raspberry Pi 4.
If you please feedback any findings or issues with the builds in this thread, I’ll be happy to assist in any way I can. I’ll be checking the forum regularly from now on and look forward to hearing from anyone who’s interested.
Sure thing, it would help us a lot. So running baby fleming may bee too much for odroid, but we have not tried it yet. As we cut out more inefficiencies then it’s worth a try.
We are just updating cli etc. let’s see if @joshuef and @chriso have some input (although Josh is ODD today (supposed to be)) and Chris finished after midnight last night. So may be a wee while to reply.
Thanks for the feedback. I’ll see if I can reproduce this on my own Pi later today. I’ll definitely get back to you, but it may not be today. We’ll keep track of the issue.
And I can confirm baby-flemming now starts and works properly with the provided binaries for ARM arch64:
ubuntu@instance-20210709-0856:~$ safe -V
sn_cli 0.32.1
ubuntu@instance-20210709-0856:~$ safe node bin-version
safe_network 0.7.26
ubuntu@instance-20210709-0856:~$ safe node run-baby-fleming
Creating '/home/ubuntu/.safe/node/baby-fleming-nodes' folder
Storing nodes' generated data at /home/ubuntu/.safe/node/baby-fleming-nodes
Launching local Safe network...
Launching with node executable from: /home/ubuntu/.safe/node/sn_node
Version: safe_network 0.7.26
Network size: 11 nodes
Using RUST_LOG 'safe_network=debug'
Launching genesis node (#1)...
Connection info directory: /home/ubuntu/.safe/node/node_connection_info.config
Genesis node contact info: ["127.0.0.1:47999"]
Common node args for launching the network: ["-vv", "--idle-timeout-msec", "5500", "--keep-alive-interval-msec", "4000"]
Launching node #2...
Launching node #3...
Launching node #4...
Launching node #5...
Launching node #6...
Launching node #7...
Launching node #8...
Launching node #9...
Launching node #10...
Launching node #11...
Done!
ubuntu@instance-20210709-0856:~$ safe keys create --test-coins --for-cli
New SafeKey created: "safe://hyryyyybg5brp9jn975na4gfqbqtqxzjuopqzfh1iusmtktcdn6rc4xcpyo"
Key pair generated:
Public Key = 26d848dfa45feec58d18ae0ba2e7dd33835d72f2559d971545831788cd3d8d04
Secret Key = 390c88daa91a1c6e1c0a72bcc6e47bf92a8e2cb0fc55552a9f72cc9d41e48734
Setting new SafeKey to be used by CLI...
New credentials were successfully stored in /home/ubuntu/.safe/cli/credentials
Safe CLI now has write access to the network
ubuntu@instance-20210709-0856:~/.safe$ safe files put braveheart.jpg.gallery.jpg
FilesContainer created at: "safe://hyryyrbcz9m9skgt8ed3e4r5ugj6qsefpkost3wj797wf6gtauiyipp77prnra"
+ braveheart.jpg.gallery.jpg safe://hygoygym757et4dydz9kb6noq6pzzxtgbc4m4hsusssferkt84cue3yh19w
On file get though, I get:
ubuntu@instance-20210709-0856:~/.safe$ safe files get safe://hygoygym757et4dydz9kb6noq6pzzxtgbc4m4hsusssferkt84cue3yh19w
[safe_network::client::connections::listeners] ERROR 2021-07-18T02:17:07.259830475 [/cargo/registry/src/github.com-1ecc6299db9ec823/safe_network-0.7.18/src/client/connections/listeners.rs:45] Error while processing incoming message: MessagingProtocol(FailedToParse("Client message payload as Msgpack: missing field `event`")). Listening for next message...
[safe_network::client::connections::listeners] ERROR 2021-07-18T02:17:07.281596656 [/cargo/registry/src/github.com-1ecc6299db9ec823/safe_network-0.7.18/src/client/connections/listeners.rs:45] Error while processing incoming message: MessagingProtocol(FailedToParse("Client message payload as Msgpack: missing field `event`")). Listening for next message...
[safe_network::client::connections::listeners] ERROR 2021-07-18T02:17:07.285522780 [/cargo/registry/src/github.com-1ecc6299db9ec823/safe_network-0.7.18/src/client/connections/listeners.rs:45] Error while processing incoming message: MessagingProtocol(FailedToParse("Client message payload as Msgpack: missing field `event`")). Listening for next message...
Could it be that my configuration is messed up? (I’ve been installing binaries on top of previous build)
The last safe network version that I got to work was 0.6.1
Try safe node update and see what version that offers.
willie@gagarin:~/.safe/node$ safe node update
Starting logging to stdout
Jul 18 12:23:50.775 INFO sn_node: Checking for updates...
Current version is '0.6.1'
No releases are available for updates
To me this means that whilst the devs are powering ahead, the latest version suitable for use by non-devs is 0.6.1 unless you REALLY know what you are doing
Congratulations on your work so far, Im very keen to join in as soon as I get some time.
Glad you got it going. That error means the CLI build isn’t compatible with your network build. (CLI is updated out of step from main).
I had a script to get this compatability info into the release post on github somewhere… Will try and dig that out and get it applied to CLI repo for more clarity there.
Thanks @joshuef , I thinking I’m getting the gist of this.
So, most recent sn_node version compatible with the latest CLI (sn_cli v0.32.1) is the one in safe_network v0.7.18. Pity is, no ARM release for that version.
No drama, I downloaded source and built that version for Aarch64.
So now I have ARM versions:
safe_network v0.7.18 sn_cli v0.32.1
This combo satisfies my very intensive test…(upload and download 1 file)
ubuntu@instance-20210709-0856:~$ safe node run-baby-fleming
Creating '/home/ubuntu/.safe/node/baby-fleming-nodes' folder
Storing nodes' generated data at /home/ubuntu/.safe/node/baby-fleming-nodes
Launching local Safe network...
Launching with node executable from: /home/ubuntu/.safe/node/sn_node
Version: safe_network 0.7.18
Network size: 11 nodes
Using RUST_LOG 'safe_network=debug'
Launching genesis node (#1)...
Connection info directory: /home/ubuntu/.safe/node/node_connection_info.config
Genesis node contact info: ["127.0.0.1:48808"]
Common node args for launching the network: ["-vv", "--idle-timeout-msec", "5500", "--keep-alive-interval-msec", "4000"]
Launching node #2...
Launching node #3...
Launching node #4...
Launching node #5...
Launching node #6...
Launching node #7...
Launching node #8...
Launching node #9...
Launching node #10...
Launching node #11...
Done!
ubuntu@instance-20210709-0856:~$ safe keys create --test-coins --for-cli
New SafeKey created: "safe://hyryyyygaokmifzsouppfmenptntwyqwp4tjy549cohqthq7eo9tup9gsio"
Key pair generated:
Public Key = d8829752ded09b5a55a04d88a3403a8dd4520debec871d1e3ba887e336fcd6ac
Secret Key = c6f49a11ffea2df06b8b6b22a1087745aa3d1cae553094f5ece800e4a01f6df3
Setting new SafeKey to be used by CLI...
New credentials were successfully stored in /home/ubuntu/.safe/cli/credentials
Safe CLI now has write access to the network
ubuntu@instance-20210709-0856:~/.safe$ safe files put braveheart.jpg.gallery.jpg
FilesContainer created at: "safe://hyryyrbkr6prwhw5p8q8nyquq7r87rmmm7zkq8pfo1di1h9a51r6tght6shnra"
+ braveheart.jpg.gallery.jpg safe://hygoygym757et4dydz9kb6noq6pzzxtgbc4m4hsusssferkt84cue3yh19w
ubuntu@instance-20210709-0856:~$ safe files get safe://hyryyrbkr6prwhw5p8q8nyquq7r87rmmm7zkq8pfo1di1h9a51r6tght6shnra
File [1 of 1]: braveheart.jpg.gallery.jpg
File [1 of 1]: braveheart.jpg.gallery.jpg
File [1 of 1]: braveheart.jpg.gallery.jpg
[00:00:00] [########################################] 35.81KB/100B (11.79KB/s, 0s) File
⠉ [00:00:00] [########################################] 35.81KB/35.81KB (247.48KB/s, 0s) Tran [00:00:00] [########################################] 35.81KB/35.81KB (247.48KB/s, 0s) Transfer
Done. Retrieved 1 files to .
Why am I doing this? donnow…I suppose I don’t like to leave things halfway…
So @Southside , looks like the cli - node combo above works properly.
I suppose I could try to open this ARM-based, cloud hosted test net to the community? @folaht you did this before, right; what does that entail?
You mean join the test net?
I’m currently more busy with just writing how to install the thing than to even play around with it,
but I have these commands written on my dockerfile for the earliest test net and it still seems to connect to several IPs.
@stout@folaht As others join, can their addresses be added to the bootstrap list and the config file updated?
IIRC their was 30+ Digital Ocean nodes in the last testnet and that may be too many for one person to set up.