SAFE API Draft

A draft of the SAFE API has been merged into next. Feedback is practically required. I would encourage people to look at the REST API before the Posix API, which is more complicated.

15 Likes

Excellent the monadic version is very efficient and clean. This will allow all those amazon/google app devs to switch to SAFE super easily with all the benefits of privacy and security. Nice one. I have a feeling this could turn out to be extremely widely used.

4 Likes

This is my favorite so far (warning a bit complex). I need to finish implementing the API, because I desperately want to test it.

I know @ned14 wanted implementations for existing APIs such as Webstor. With this design, I think its possible to provide a SAFE implementation for that API (and other similar ones), but I think there are going to be some issues since the API partially assumes a server that can keep state. That may have to be simulated somehow.

2 Likes

Yes, I think stackless is really great if we can then it is less to keep and we can have billions of them. I have used the stackless co-routines in routing async API for this reason. I think this is all up in the c++17 airt right now, but I see it like this

1: Lots of work to do , cpu busy (use a thread/asio::post etc.)
2: Need to wait on a return from far away (slow) then co-routines
If we need to hold a lot of state and maybe cross thread then copies of stack may be required.
Issue arises when we are not certain of a return (here we are OK as we get at least an error).
3: We need info from far away and are not sure of a reply, in this case what I like is to pass the state with the message across the network.

Routing does 3 as well as 1 & 2 (well 2 stackless) and uses 3 when we try and connect to a remote not close node and they may decide not to. In that case we do not get a reply and don’t care. Its pretty slick as state gets spread across the network and dies with a dead request.

I get worried when we keep state and may not get replies (like a memory leak).

All great stuff though for sure. And again great work here Lee, its impressed a few of us :wink: excellent

2 Likes

Im hitting the road, returning from a holiday in the mountains.

Will dive into this when I return! In many hours.

!!

2 Likes

So glad to see the API coming out!

This is HUGE!

When PUT a Blob of 10 gigabytes and it costs 1 safecoin, if I Update the Blob at that Key with the same data plus 2 gigabytes, so the file is now 12 gigabytes, do I pay .2 safecoin or 1.2 safecoin?

2 Likes

Closer to 0.2 although it may cross a chunk barrier and cost at worst another 0.1 We will see more in testing though, but the content is de-duplicated and you already have most of it so should be good.

2 Likes

has anyone tried the API yet?

lol i’ve been checking this thread every day hoping to see if anyone has given it a go yet… :stuck_out_tongue:

It still needs to be coded @whiteoutmashups, so is not currently being used. What has been published are the design principles that will be used during implementation.

Oh i see,

Thanks for clearing that up for me