Bachelor Thesis Advice/Ideas

Hey there,

I have posted here before in August, when I was researching possible technologies for a semester project at university (a secure voting system). I ultimately decided to use Ethereum for the project, as I couldn’t figure out how to properly use the SAFE network and its APIs.

Now I am back and have to come up with a topic for my Bachelor thesis. I’m still interested in the SAFE network and think it could be an interesting topic to not only analyse it in comparison with traditional Client-Server architectures and also technologies like IPFS, but also to develop a prototype. I can either do an analytical or implementation project (or a mix of both), but I would of course prefer to develop some kind of prototype.

The question I now have is how feasible you think this is. I have read up on the progress since August and it looks promising with the Vaults and CLI. However, I can’t seem to figure out to what extent the network is currently operational, if at all? Is it possible to develop a prototype at the moment without fear of constant network resets and changes that would break it? Or is it also possible to locally “simulate” the network to develop a prototype?

I also remember that there were beginner guides on the DevHub to get started with SAFE using Electron, C#, etc., but it seems to have been removed (or at least I can’t find it). All example DApps listed on the DevHub also seem to be developed for Alpha 2, which is not active any more to my understanding?

My question boils down to basically the question if you guys think it is a good idea to write a thesis about this (there is currently not much literature about it from what I can tell, so that’s great), and how one would go about setting up a development environment to start prototyping. I unfortunately couldn’t find a complete guide to do that, only snippets for each part of the network, but I’m missing an overview of how they are all connected and what is needed to get started.

Thank you for reading, I’m looking forward to your suggestions! :slight_smile:


Depends what you want. The whole network is not up and running in the sense of decentralised network. If it’s apps you are looking at then you can use a local vault/shared vault (likely to scrub) or a local network. If it’s network infrastructure then that is more complex right now as we are heading to a Fleming launch and there we have a lot of fast moving parts.

Apps are fine though, you will get plenty of help. Try out the CLI with vault and perhaps play around there to get a feel?


That’s what I figured, and that’s totally fine. I could build a local app and present that as a prototype, it doesn’t have to actually be connected to the network. The point would more be to explain the overall architecture and purpose, and then present a prototype which can have limitations like that. I will try that then, thanks!


Correct, right now development is approaching another alpha (Flemming) release, and alpha 2 is offline. Docs & tutorials haven’t been updated yet.


There’s also a good chance that you’ll be able to move to a live network before you finish.

I think the area of uncertainty is around what features you need, whether they are available now or likely to be available in time for your prototype. Because while we have a very good idea what features will be available, the precise details are still being reviewed and some of the APIs are incomplete, or not documented.

I’m waiting on these too. There is enough to authorise with the network and give an app permission to do the operations you will find in the CLI, but access to the underlying data types is not feasible just now. I’m not sure when that will change, hopefully soon, but you will need to be sure there’s enough for what you want to build.

So you could begin knowing that you can do a mostly analytical piece, but if things become available that enable you to prototype more areas, then shift the balance towards the practical.

Either way, I’m sure a lot of people here would like to see you use SAFE and would be willing to help out.