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

Okay I feel stupid for asking this but what does this WIP release actually do? Can I generate safecoin? Can I save files onto the network? Can I encrypt with it? What are the practical applications here? I’m as excited as the rest of you to see the progress being made and am considering trying to get it all installed just for the sake of making sure it can work but I’m wondering how functional it is at this point.

1 Like

This is the SAFE equivalent of Amazon/Google/Azure back end storage. So an API for devs to create data centric applications with.

3 Likes

I played today with the tutorials we’ve been having on forum and I want to let you guys know the results. Maybe there will be more people like me that want to re-do the examples just to get a little bit of insight before launch :
1.Self_encryption --encrypted and de-crypted a music file without problems
2.CRUST --managed to create a peer and ran the simple receiver and sender example
3.Routing – tried it and created a couple of terminals which communicated among them but the “get” command didn’t seem to work. It didn’t show the value of the key as expected. I’ve also noticed that the name of the compiled .rs file was not “routing” no more but “simple_key_value_store”.
4.Self-Auth,REST-API, Vaults --awesomest thing ran without a hitch :smile:

My setup (preformatted text is CLI commands -starting after “$”):

  • VMware Player
  • Ubuntu 15.04 64-bit
  • Rust nightly v1.3.0 as of today:
    $ curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly
  • gcc : $ sudo apt-get install gcc
  • Libsodium : Download the archive first then run commands while in your Downloads dir:
    $ tar xzf libsodium-1.0.3.tar.gz
    cd libsodium-1.0.3/ ./configure
    make make check
    sudo make install sudo ldconfig
    $ ./configure

One question I have now, does it help to learn RUST?
I don’t want to become a core developer but I am thinking about creating apps.

[EDIT:] 2nd question:
I just created an account and a container with a couple of blobs all this while having 3 terminals running vaults and 1 the maidsafe_client. I ended the maidsafe_client terminal with CTRL+Z and closed it then reopened a new terminal where I restarted a maidsafe_client. IN all this time the vaults have not been touched.I was expecting that once I enter the credentials of my pre-created account,after it logs in, to get the container with my blobs but that was not the case.It was as if once I closed the first maidsafe_client terminal ,the data has been lost. Should it?

4 Likes

You know this backgrounds a process not close it. To close CTRL+C. You may still be logged in the other terminal and not stored your session? I am not 100% sure though this literally just worked and we posted the instructions. So not undergone extensive tests yet. Good to try anyhow.

I just tried CTRL+C after I created the container and two blobs.
This seems to end the session so I close the terminal and re-open a new one, re-do the

cargo run --example rest_api --features "USE_ACTUAL_ROUTING"

use the pre-created credentials to log in but when I list the containers I get none.
If I’m missing something obvious I apologize it’s late here and barely see anymore :smiley:
If it should not work (yet) as I thought then I will carrty on and follow your developments

thanks

We may not yet be storing the session in that case. If not it’s a simple thing, but were just pushing very fast with features so it will be fully able to do all this. Next sprint will show much more than this on a real network (cross routers, multi protocol etc.). Routing lib has just made a huge efficiency change as well which is not in that example. I know a few bits also pushed last night so again will be missing as we never pushed new crates yet. You will see a few changes early in the week and installers during the week.

See also Rust has now got full Musl support so fully static (zero dependencies) binaries for linux. So expect some really cool updates very soon.

2 Likes

My reply time is usually late into the night :wink: seeing is for normal folk, touch type in the dark :smiley:

3 Likes

I have compiled maidsafe client on 32-bit Windows 7 running MinGW_w64 32-bit version. To fix this error, set the environment variable for gcc, CFLAGS, to something which will allow more cpu functionality, I found advise to use this value and it worked in my case:
-march=native
I think it uses your own processor to enable features. I think there are also individual feature flags like -mmx or -sse? but this one flag seems to cover the bases. I am an amateur at this this though, so I may be very wrong. Good luck!

2 Likes

So, the conclusion: always use “-march=native” when compiling codes for local use

Updated the rest_api.rs and saved it as a gist. The updated example will ask for the user to register or login and then try the rest api.

So for the first time ran the client example and registered with the network, then created a container and closed the terminal. Ran the client example again and this time logged in using the registered credentials and fetched the previous saved data. Just a quick example to showcase the functionality :smiley:

Copy and replace the code from the gist and should be able to test it.

5 Likes

Just tried it and works great! :smile:

Was it only a matter of storing the session in the vaults?

1 Like

I just added one more functionality in the example to enable users to login again.

In the previous example, we had to create a new account each and every time. So added one more option to login with the created account and work on the data saved previously.

6 Likes

Everything runs like a charm in here … yesterday forgot to install libsodium :hatched_chick:

1 Like

I was trying to figure out how to do this. Thank you very much for the example.

2 Likes

works well here within the LAN - containers created on PC, blobs placed in containers on the laptop, contents read from both PC and laptop :smile:

Now lets see if we can get the port forwarding right to do this between continents :smile:

3 Likes

Also, don’t forget that MaidSafeCoin holders would “vote” on which network to join and support by authorising transfer to a particular network. It doesn’t make sense for holders to join a rival having invested in the MaidSafe team, so a rival network would have a mountain to climb in terms of gaining a community of support. It would therefore be a rival network with a lot of disadvantages, not least of course not having the MaidSafe team behind it, but also lack of numbers in terms of backers, App devs, farmers etc who all start with an allegiance to this network.

P.S. I just built and am running a one machine testnet… I now hope to cross compile for ARM and try linking it up first with my two remote Odroids, and then with @Southside & Co. What do you say!? :slight_smile:

5 Likes

DM me with IP:port whenever you are ready - though you may have more luck initially with @Doomedj2008 who has his running on a cloud server with static IP and port. Again DM him for details.
I am still struggling with the correct portforwarding to connect to his server.
Check post 40 from @dirvine who I sincerely hope is outside enjoying the sunshine in Troon and having a wee break. Don’t want him or any ot the team burning out. Sunburn is unlikely however…

1 Like

Will do, thanks.

BTW do you know where the chunks are being stored? I can’t find them. @ustulation?

I’ve been looking around too. Haven’t been able to find them yet. Man I wish my coding was better. Getting there, but I can’t just skim and figure it out yet.

1 Like

Still playing around with this on the local LAN. I notice occaisionally when starting a further client on any machine that the client will hang after login and no menu is presented. However I can then open another terminal and login again successfuly to the existing account and interact as normal.
I know there are major changes to the code coming and the devs are (hopefully) taking a well earned break today so I am reluctant to open yet another issue.
Has anyone else noticed similar behaviour?
I will attempt to reproduce this and log it with

cargo run --example rest_api --features "USE_ACTUAL_ROUTING" --verbose |tee client-n.log

where n = 1 to 3

The logs will be fairlly large so I wont post them unless specifically asked. As I said this may be something that is covered with the expected cleaned up client code.

1 Like