Where to start?


#1

Hello again,

So, I’m starting to think about how I can start contributing to the SAFE ecosystem but I’m having a bit of difficulty figuring out where to get started.

First of all form the repo level. I see there are 28 repos in the MaidSafe Github. While there are some I can pick out as not code or product website it isn’t always clear which repositories are core parts of MaidSafe and/or are still active. Is there any place that list all the current and active repositories of the MaidSafe project and what they do in the MaidSafe ecosystem?

The other question is from an Issue/PR level. Some projects have their issues labeled for beginners or newbies to the project to get started. Do any core repositories that have this yet or is something like that potentially could be started?

Thanks for any help with this.


#2

From activity it looks like routing is the most active right now so I assume by that it is a core part of MaidSafe.

Crust seems like an interesting project (for more than just MaidSafe) but it seems less active and I’m not sure now perhaps?

safe_vault I would guess is the true core component of what the SAFE Network does but it also does not seem under active development now so I’m worried it is in the process of being replaced with something else and perhaps effort should not go into it?


#3

Crust is the lowest layer for P2P-connections. It does hole punching and connects nodes on IP-Layer.
The Vault is the program that routes data, it also stores chunks on your harddrive. It has a lot of roles (persona’s) as Vault check on each other to see if certain chunks are still stored.
The Launcher is about to be replaced with the browser, but this program connects people to SAFE. It connects to a group of nodes using someone’s Vault as a proxy.

The best place to start is to go to maidsafe.net and try out the different programs. You can’t download a Vault on that website yet, but it gives you a demo_app and Launcher to connect to Alpha 1. These are several hundred nodes running on droplets. You can connect, publish a website and store some data.

We are very close to TEST 12c where you can connect with a Vault from home to the network.

Crust was tested and build in 2016. It works, so no need to do a lot of work on it.


#4

Thanks for all that!

I have been playing with the Launcher and apps so far and have been reading about and playing with the API now as well. Good work on the people that got those written and up online by the way. :slight_smile:

Sounds like the is some fun stuff to look forward to in TEST 12c and the browser. Is there anything I might be able to do to help with getting those projects launched? I see the browser repo but no open issues. Is there a story list somewhere or work yet to be done?

Thanks again. :slight_smile:


#5

You might wanna check the updates on the other forum. There are weekly updates (a new one tonight) which includes the current focus of the devs. If you give them a mention they can reply about where they are and where there’s help needed.


#6

This is an interesting thread,

So does @MaidSafe not keep the repos very open / updated? It’s what it sounds like from this thread

I would think that keeping issues etc current and open would be a great way for developers like him to actually contribute

Is MaidSafe just trying to do everything in house and not really expecting to solicit help from others?


#7

100% not, we have periods of very frantic code changes during testnets though so many updates are not in master branches. They are in other branches or sometimes dev branches, but not private. We do have a couple of private repos for trying wilder things like design ideas and keep these out of the way as it would frustrate community member’s to contribute because we do a lot of work in hangouts that happen fast and furious.

tl;dr Everything is public regarding SAFE code nd libraries, but not always in master. If it’s not in master it is probably changing very fast. Master should never be work in progress it should always be code ready, but it’s not always easy, this is where semver crate versioning helps though. The updates to github always shows high activity in any of the code metrics tools we have seen.


#8

I concur with David. MaidSafe keep as much of the code out in the open as makes sense. Master is just for code that’s ready for the product, and other code will normally be done in branches until then to avoid messing up the master version, or started in a developer repo until ready to be shared with other devs.

It’s good to partition and stage things rather than have code at all different stages in one bucket. That would be a nightmare! :slight_smile:


#9

I have this slide that just shows all the parts of the system we have dedicated whitepapers for and it is huge. Please keep in mind that this project tries to accomplish a big thing and that requires a lot of work on various parts.

As the system has many components, it is hard to say where to “get started”. It really depends whether one is interested in building Apps with/on top of it (safe_app_nodejs probably) and do client side work (safe_client_libs) or is interested in the network layers (crust, routing) or the behaviour of full-nodes (valut).

I appreciate that code is split up into many separate repositories, as that also comes with the idea that these components can be used outside of this project - like self_encryption or system-uri, which even have little other maidsafe dependencies. And many of those aren’t “active” because they are just “stable”. Like self_encryption. It works. It is great. It can be used independently as a command line tool. No need to touch its code base on a weekly basis.

I agree however, that we probably need to provide a map and some guidance on how to understand all of these. There is a lot of space to cover.


#10

Just to add to this that it would be useful for noobs like me to know even basic stuff like launch the beaker browser with the safe auth plugin.

a hello world with safe_app_nodejs as well as how to set up the environment https://github.com/maidsafe/safe_app_nodejs would help a lot.

  1. git clone https://github.com/maidsafe/safe_app_nodejs.git
  2. cd safe_app_nodejs
  3. git submodule update --init
  4. npm install
  5. ?

i get lost at 5. if i cd into example and try to execute one of them i get an error. the example create_public_name.js example states in comments at the top to launch the browser with the authenticator add-on from the terminal but I can’t find any docs telling me how to do that? does the browser already have the plugin?

perhaps this is obvious to those using it on a daily basis but having some examples with explicit documentation would help lower the bar to entry.


#11

Hi @dooglet,

this is all very much work-in-progress. We haven’t made any safe-app-nodejs release for a reason: it isn’t ready yet :wink: . Once it is, we will also provide a getting-started guide to setup development.

Without knowing the exact error message, my guess would be that it tries to open the Authenticator (through the new Browser) via IPC to gain access to the network and as you don’t have the latest development browser with authenticator this fails. We are working on that at the moment.

No. As mentioned before, this isn’t actually fully finished yet. We are also thinking about integrating keytar and similar to provide a quicker setup experience. But we aren’t there yet…


#12

thanks @ben for the insight :slight_smile: i guess i’ll try to build the development version of the browser and try to hack around with that. if i can be of any help please PM me. i’d love to contribute more to helping folks understand the full potential of SAFE and be able to get stuck in :slight_smile: