SAFE Network Dev Update - March 5, 2020

Baby Fleming Version 1 (Vaults Phase 2a - single-section network)

Today we are releasing the first version of the Baby Fleming SAFE network!! :raised_hands:

We’ll soon set up a public shared network for you to play with, but for now you’ll need to set up your own local network. The instructions in this update walk you through creating a single section multi-node network on a single machine. It is possible to run and connect nodes on different machines over either local networks or machines with public-facing IPs (e.g. DigitalOcean), but at this stage the process for doing this is not straightforward, requiring manual port forwarding and/or vault config file configuration. We recommend that most early adopters stick to a single machine as per this guide, while we make the process for connecting multiple machines together much simpler.

This first Baby Fleming (Vaults Phase 2a) release is about iterating from a single vault network into a multiple vaults (single-section) network. From a user perspective, the exact same type of operations and use cases as Vaults Phase 1 are being supported by Baby Fleming, i.e. test-safecoin, wallets, files, NRS names, SAFE sites, etc.

There have of course been numerous enhancements made to the CLI and other components/libraries since the release of Vaults Phase 1 in preparation for today’s release, which we have been keeping you up to date with in our dev updates along the way.

Please note that the latest available versions of the desktop apps (SAFE Browser and SAFE Network App) and mobile apps (SAFE Authenticator and SAFE Mobile Browser) are not compatible with the Baby Fleming network yet. We are working on releasing new versions which will work with Baby Fleming, hopefully very soon.

UPDATE - we have now released the first v0.17.0 Alpha Desktop Browser version which is compatible with Baby Fleming!

Launching your current Alpha Browser will automatically prompt you to update, or you can download the latest Alpha version from here

Note that ONLY v0.17.0 (Alpha, Beta and full release) and above is compatible with Baby Fleming. v0.17.0 is NOT compatible with vaults Phase 1, i.e. the current Shared Vault - if you intend to use the Shared Vault then please use Browser v0.16.0.

What’s included in this release?

We’ve got new versions of the SAFE CLI (v0.9.0), the Authenticator daemon (v0.5.0) and the Vault binary (v0.21.0).

If you’ve played with previous releases, you’ll need to update the SAFE CLI (safe executable), which will allow you to update the Authenticator daemon (safe-authd binary), and also install the compatible Vault binary (safe_vault) on your system.

If you don’t have the SAFE CLI on your system yet, you can download the new CLI release via our new install script which downloads the binary to the correct location and adds it to your PATH. Builds are available for Windows, macOS and Linux.

How to update your SAFE CLI and Authenticator daemon

Before proceeding, it’s important to make sure there are no instances of either safe_vault or safe-authd running on your system, so please first make sure you stop/kill them before moving forward with the instructions below. If you are already running a Vault from home then you can kill it in the terminal you are running from. If you are unsure whether you are running safe-authd already then you can navigate to the directory where you have the previous version of the SAFE CLI binary (safe), and run:

$ safe auth stop

If you already have a previous version of the SAFE CLI on your machine, to update it you can navigate to the directory that the binary resides in and run it with the update argument:

$ safe update

You can also use the SAFE CLI to update the Authenticator daemon (safe-authd):

$ safe auth update

If you haven’t installed the Authenticator daemon (safe-authd) previously, you can install it using the CLI:

$ safe auth install

Note that for Windows users, to install the Authenticator you’ll need administrator permissions, please take a look at this section of the CLI User Guide for more details.

How to run a local single-section network (Baby Fleming)

A local network is bootstrapped by running several SAFE vaults which automatically interconnect, forming a single-section network.

We therefore first need to install the safe_vault binary on our system, which we can do using the CLI:

$ safe vault install
Latest release found: safe_vault v0.21.0
Downloading https://safe-vault.s3.eu-west-2.amazonaws.com/safe_vault-0.21.0-x86_64-unknown-linux-musl.zip...
[00:00:36] [========================================] 6.28MB/6.28MB (0s) Done
Installing safe_vault binary at ~/.safe/vault ...
Setting execution permissions to installed binary '~/.safe/vault/safe_vault'...
Done!

With the Vault binary downloaded and installed, a single-section SAFE network (Baby Fleming) can be launched locally on our system with a simple command:

$ safe vault run-baby-fleming
Storing vaults' generated data at ~/.safe/vault/baby-fleming-vaults
Launching local SAFE network...
Launching with vault executable from: ~/.safe/vault/safe_vault
Network size: 8 vaults
Launching genesis vault (#1)...
Genesis vault contact info: ["127.0.0.1:55851"]
Launching vault #2...
Launching vault #3...
Launching vault #4...
Launching vault #5...
Launching vault #6...
Launching vault #7...
Launching vault #8...
Done!

Once the local network is running, the connection configuration file will already be in the correct place for your desktop applications (including the CLI) to connect to it. Thus from this point on, you can simply use the CLI or any other desktop application to connect to your local network. Note that depending on the application, you may need to restart it so it uses the new connection information for your local network.

In order to shut down a running local network, the following CLI command can be invoked to kill all running safe_vault processes:

$ safe vault killall
Success, all processes instances of safe_vault were stopped!

Connecting to the single-section network

In order to connect to the network and start uploading data, you’ll need to have an account. To create an account and log in, we need the Authenticator daemon running, which we can launch using the CLI as follows:

$ safe auth start

Note that for Windows users, to start the Authenticator daemon you’ll need administrator permissions, please take a look at this section of the CLI User Guide for more details.

You can now run $ safe auth create-acc --test-coins to create an account. Then run $ safe auth login --self-auth to log in and get the credentials for the CLI application.

You can now use the SAFE CLI to, for example, upload data to the network.

If you want to learn about the commands and use cases supported by the SAFE CLI, please refer to the SAFE CLI User Guide which has step by step instructions, including the information detailed above.

What’s next?

At the moment we recommend you stick to running Baby Fleming on a single machine, or if you are an advanced user you could run nodes on a local network or on machines with public-facing IPs, such as on DigitalOcean. Our next focus is to make it simpler for people to run nodes from home which can connect to other nodes in other homes. To do this we need to navigate home routers and Network Address Translation (NAT). We have good experience in doing this in the past, you may have participated in the Crust tests we set up in late 2018, and work is well underway to get this in place for the next iteration of Baby Fleming.

Contributing and asking for help

As always, you can drop your comments or feedback below this post or, if you prefer, on GitHub in the corresponding repo.

If you need any support, don’t hesitate to pop your question below and we will happily help you out, and for sure users from the community will also be willing to help :slightly_smiling_face:

Other development news

Today is of course all about Baby Fleming so we won’t delve into other updates, but you will see from our GitHub repositories and other resources that other development work is still ongoing at a great pace.

Useful Links


Feel free to send us translations of this Dev Update and we’ll list them here:

As an open source project, we’re always looking for feedback, comments and community contributions - so don’t be shy, join in and let’s create the SAFE Network together :tada:

107 Likes

First! 10 char

25 Likes

MerryThursday whooop!
Thanks to all involved in this effort!
:boom:

31 Likes

Third treasure, y’all know the drill :smile:

Yay for the birth of Baby Fleming, and congrats MaidSafe team!! :tada:

Spreading the news here because the world needs to hear!

32 Likes

Never been this high…

25 Likes

Happy Birthday :baby_chick:
:+1::+1::+1:

27 Likes

Baby Fleming! :tada: :partying_face:
One baby step at a time, a giant new leap for mankind!

29 Likes

I feel so late!

19 Likes

What exactly is the difference between Baby Fleming and Fleming?

15 Likes

All praise be upon the SAFE team. A baby step into a new world.

23 Likes

Great work! This is exciting! I’m very excited! Did I say I’m excited? I’m shouting a lot again!

26 Likes

Excellent stuff!! Thanks to all for their hard work.
But please remember Baby Fleming is just taking its first steps

PARSEC still has large memory requirements.
Don’t try and upload 1Gb+ of photos etc in a oner. I ran out of memory several times this morning with 16GB RAM + the same in swap

safe files put ~/Photos --recursive is a bad idea at this stage
You will only be disappointed and screw up your previously impressive up-time - Do folk still bother about that?

30 Likes

Or… that’s the exact sort of thing we should be doing to document the edge cases :slight_smile: After playing, I do plan to abuse my installation.

22 Likes

To be expected that such steps forward will reboot any content… :thinking:

10 Likes

I’ve been to the edge, baby.

15 Likes

Just add time…

7 Likes

I can’t believe it! We are already at baby Fleming.

Exponential progress… bit by bit then suddenly BOOM!!!

Thank you guys!! :tada: :tada: :tada: :tada: :tada: :tada: :tada:

23 Likes

On which operating systems will baby Fleming work on? Thanks

9 Likes

Guys you are so awesome!! :star_struck: :heart_eyes: :heart_eyes:

11 Likes

Linux, Mac and windows for now all 64bit.

26 Likes