Self-Auth, Rest-API, Vaults etc now Functional against actual network!

Hi guys,
It was really pleasing this morning to see the network function end to end. Client was using the mock routing framework to test its functionality of self-auth and rest-api. Routing and Vaults were separately tested and were functional. Now with client, vaults, routing and other crates all actually integrated, there were some unavoidable but only a few changes in some of them related to interfacing with each other. Once that was out of the way (we finished it yesterday with some of us stretching into late evenings too) and a couple of PR’s merged just a few hours back, the whole network could be locally run and we could see the network wonderfully do what it is supposed to do :smiley: . Of-course this is just the 2nd sprint and we have a demo-able product. It does have a lot of print-outs for us to see and test what is happening so the CLI menus sometimes get shadowed by these debug printouts but those are just the matter of beautification and will require a PR or two from here and there to remove those.

So just grab the latest master of client and vaults and then the following:
<1> run at-least 3 vault nodes (in 3 different terminals). The first vault node must be run as
cargo run --release -- --first
and the others (after the 1st one has begun) simply with
cargo run --release

<2> in yet another terminal run client:
cargo run --example rest_api --features "USE_ACTUAL_ROUTING"
cargo run --example self_authentication --features "USE_ACTUAL_ROUTING"
whichever one you please.

<a> Right now the login will seem to hang. Be patient and wait for 10 seconds or so. This is just a temporary thingy to allow enough time for bootstrapping phase to succeed.
<b> The CLI menus might get lost among lot of Debug messages. Needless to say - this is temporary too and just requires to turn off the print outs, not a very critical issue to address as present.
<c> delete the maidsafe_vault.bootstrap.cache file from vault directory root time to time, this will reduce some printouts.

Relax and enjoy the network :smile:

Btw here is the copy-paste of my terminal for Rest-API Demo


Nice, testing the network with @Melvin, getting a “couldn’t compile crust” error when installing the client. Libsodium is installed


1 Like

Can you post the Rust version used for compiling? I think it should compile with the latest nightly version of Rust.
Also try doing, cargo update and then cargo build. Let us know if you still face any issue :smile:

1 Like

running rust 1.2.0-nightly. cargo update+cargo build gives the same error when compiling crust.

Going smooth with nightly 1.3.0 :smiley:. Thanks!


Running the network :smile:.

Is there a workaround to put a video file / image file on it? (we’d like to build a program that connects to the network from an external application and loads the video / image from the network, building application in nodejs, so we need some type of interfacing between the two languages).


That will eventually be done, but not right now - we need to sort things gradually and according to plans/sprint-objectives. If you are keen though, you can start off doing it by writing something that interfaces with client rlib (probably code your binary in rust too for the sake of ease of integration), calls into the rest-interfaces and does what you are looking for. The library is agnostic of what you want to store - you will be giving it binary content. As for some hints for usage take a look at the code in examples - they are there to show the usage too.

But note that these are WIP right now not a release, so expect changes in the next versions.


Works for me :smile:

Does what it says on the tin…

last nights rust, latest git updates of all libraries/crates
Ubuntu 15.04


Yes, I finally got it! I was having the hardest time building the maidsafe_client on my computer! I’ve been trying for the last two weeks to build maidsafe_client with no luck. I think I had a problem with cargo/rust or something. I fixed my build issues by using the rust install command from their site instead of using the binaries.

curl -sSf | sh -s – --channel=nightly

Now my only problem is that the client just hangs with this:
Trying to create an account …
trying to bootstrapped client
Put sent out with message_id 1134424912

Are the vaults supposed to output anything? Right now each terminal just has this:
Running target/release/maidsafe_vault

I’m running the latest version of Fedora, would SELinux be a problem? Or maybe my firewall?

1 Like

That is the binaries :smile:

Yes i.e. ```Downloading routing v0.2.6
Compiling term v0.2.9
Compiling memchr v0.1.3
Compiling sodiumoxide v0.0.5
Compiling aho-corasick v0.2.1
Compiling regex v0.1.38
Compiling docopt v0.6.67
Compiling env_logger v0.3.1
Compiling utp v0.6.0
Compiling crust v0.1.4
Compiling routing v0.2.6
Compiling maidsafe_types v0.2.2
Compiling maidsafe_vault v0.1.0 (file:///home/dirvine/Devel/Rust/safe/maidsafe_vault)
Running target/release/maidsafe_vault --first
ZERO listening on Some(Tcp(V4(, named 6012d7…836984
Started Membrane loop
CRUST::NewConnection on Tcp(V4(
CRUST::NewConnection on Tcp(V4(
CRUST::NewConnection on Tcp(V4(
Added endpoint Tcp(V4( to relay map, named 97bfa4…553a3b
CRUST::NewConnection on Tcp(V4(
RT (size : 1) added connected node 3d44e7…952d3c on Tcp(V4(
Handle CHURN new node 3d44e7…952d3c

[quote="Doomedj2008, post:9, topic:4216"]
would SELinux be a problem? Or maybe my firewall?

It may be if your firewall is set to not allow tcp on some ports or SELinux is banning this also. IF you are using those then do you have a management interface or perhaps look at your log files (syslog, security etc.) If it's blocking things then you should see it there.
1 Like

Ah hah! It was my firewall, thanks! I guess that Fedora is just over-protective, but that’s the way I like it. Here’s a screenshot of it working for me:

Well if you want to be technical… :wink:


Congratulations guys…the new strategy of gradual release is paying off.


I just want to point out that I created “bob_the_blob” inside of “charlie_the_container”. Are you guys jealous? :stuck_out_tongue_closed_eyes: Who knew that “beta” testing could be so much fun?


Yes early and often, so we will all see all the rough edges, but that’s cool. Then we will release via installers for each App bundle (so this one when it’s tidier, probably next Thurs/Fri as we have a few folks off for various reasons this week).

This is much much better and I am not leaving the coal face or doing interviews till this is done now. I am hugely impressed by the speed and the next sprint is looking to be exciting. So we keep going and this will all just get so much better, that was the tough sprint for sure. Downhill now :wink: 'bout time as well.


huh… s’ nuttin…
son #1 brought home another heap of scrap last night - at least this one was driveable and is nominally legal with tax and MOT - so I built a mini database of the family fleet…

Truly testing is cool and will be useful once I work out how this info will survive if I have to log out…


Nice one, great folks can start looking now at apps that can be created. We are nowhere near finished with goodies for you yet :slight_smile: much more to come.

It will last until your network is taken down for now.


So if I opened the correct ports, got someone to connect to my-ip:relevant-port, they could access that data and it would become part of our shared network. Then I could log out, reboot for updates or whatever, log into their network and have access again to my collection of interesting-but-mostly-worthless motors?

Or a meringue and no yum-yum? <----West of Scotland bakery goods joke - nothing to see. move along

Not yet, not yet, haud on tae yer breeks man :slight_smile:

We are just integrating UpNP, you could set your router to forward the ports to your machine etc. and that would work, but we really need to create all the docs first or the barrage of questions will drown us. It is possible though, but yer mate would also have to forward his ports on his router (for now, this will all become automatic) :wink:


Yeah, I know about all the port forwarding. I wanted to try it out a couple of weeks but said mate wasn’t too happy about me messing with port forwarding on HIS router (wimp)
So - Just fired up the laptop and installing all the upgrades. Then that can join the network and store the info in case the big machine has to go down for any reason.
If I keep the battery charged on the laptop, I could have one of the earliest dated documents on the SAFE network, Maybe…

1 Like

Seems like the birth of the network. In may still be in the womb but quickening is there, EEG, heartbeat, viability. At this point could a less exhausted crew jump in and beat the genuine article to launch with a clone?