Developing the SAFE network in rural communities

Okay I’m going to use where I grew up as an example community for this however I’m sure there are other places just like this that are out in the middle of nowhere with slow internet.

Givens:

  1. Said community has slow internet.

  2. The ISP overcharges for internet and uses severe data caps.
    http://belco.bc.ca/?page_id=84

  3. The population is concentrated in some areas (in this case the downtown area and various subdivisions throughout the valley) and scattered about in others. So different models of connectivity will be required.

  4. Cell phone coverage is limited at best and does not cover the entire area nor is it overly popular (for that very reason). There are maybe one or two carriers.

From what I understand so far you need 4 nodes to start up a local network and this network can function perfectly well until you connect to the larger internet. So wouldn’t it be possible to set up a local safenetwork and then generate safecoin locally and use that to upload the larger internet based network? Also is there a way to focus primarily on one’s local network while farming or severely limit the amount of internet resources one would allocate towards farming, as opposed to local mesh resources? Because in this case it wouldn’t matter if one connected to a local mesh network but if one connected to the SAFE network via the net they’d be racking up a hefty internet bill really fast.

Is there any way SAFE could be made to work for this situation and get a community off dependence upon such a draconian ISP?

2 Likes

Yup. Start a meshnet community. Have them install cjdns in their routers or computers. Have maidsafe run ontop of it.

As for safecoin farming goes, there would be higher chance of collusion if multiple communities run maidsafe locally, then work towards globally. It’s only 4.3 billion coins. How does larger net knows this small cluster - out of reach- obtains the coin? It can’t. It is a gamble on this case.

There is a dev that is working skycoin and skywire. It is suppose to enchant cjdns, and ability to sell bandwidth to users. There are some updates here and there but it may take another year or two before we’ll see it. This would be a nice step to get community to start their own ISP and make monies.

Each Obelisk node (Skycoin Consensus Node) has a public key (an
identity) and personal blockchain (a public broadcast channel).
Consensus decisions and communication happen within the personal
blockchains of each Obelisk node. This is a public record of everything a
node does. This allows the community to audit nodes for cheating and
collusion. It gives the community a way identify nodes which are
participating in attacks on the network and it makes public how
decisions in the network are being made and which nodes are influencing
those decisions.

Also, it is possible to set up cjdns tunnel to the internet 1.0. However, you must inform the community that you are connecting to the internet 1.0. The reason for this, there is a major flaw in cjdns tunneling, it goes from ipv6 to ipv4. it expose your ipv6 address to the world which pose a security risk. Any of the community members who are connected to you could be exposed too.

Big edit here. This has potential to get users to start a local meshnet.

The local mesh gathers clustercoins(sub of safecoin, for collusion prevention purposes). Once the community able to connect to the world, it exchange clustercoin for safecoins for compensation. The compensation algorithm is determined by the weight(resources) of the cluster, and the world.

It’s like buying silver certification back in 1800s. It is the best way to transfer value since one does not have to move silver if there already silver in his area. He could take certification to the silver bank, and gather that silver. That silver bank would take the certification back to the owner, and gather the actual silver. This was the best way to handle situation back then. American dollars was backed by silver at that time.

This could be a good solution to incentive locals to use maidsafe. The only compromise here is the anonymity (up to 64 nodes).

Hmmm well can’t speak for every rural community but people in Bella Coola do value their anonymity and individuality, it’s one of the reasons people stay there as opposed to moving somewhere else. Is there a way to maintain anonymity beyond 64 nodes? What creates that limit? Also wouldn’t the safe network in and of itself give one anonymity? I mean we’re talking about putting a mesh network on top of a mesh network basically.

My original response.

I then realized that I might be wrong but I still want to keep that in mind for further research. Two things…

IP gets scrubbed after the first hop. It then uses XOR space.

The only peer you are connected to is 100 percent trusted, like your family member, or a friend. That is your first hop. After the hop, you get a xor space address. This means you will keep anonymity 100 percent of the time. Even you are connected to your trusted cjdns peer, your peer doesn’t know the data; it is encrypted data inside of encrypted packet. Jesus, how much more encryption do we need?!

So yeah, this will fit perfectly for Bella Coola community.

Don’t forget about promoting fiber, meshfiber need to compete against google fiber. Don’t you want blazing fast speeds with secured anonymous system? Of course everybody does.

Edited: I’m might build a wiki; A potential guide to building a successful mesh net community.

2 Likes

That would be useful. Keep in mind most people in the valley are poor so hardware would need to be on the cheap. But if this could all be set up it might offer a viable alternative. And if we can build mesh networks for rural communities and for urban communities we can build mesh networks in the middle as well in small towns as well. Basically it’s about figure out both ends of the spectrum.

When you share data to others in a local meshnet, the chances of them knowing it was you posted that data is based on the fractions; user/node. Surely it takes 4 to start one…But if you share a data, one of the 4 will know who you posted that data with the explanation post above ie your trusted peer.

A couple of things about cjdns:

(1) you don’t need to ask the community’s permission for anything, such as opening a tunnel to Internet… you’d only need to ask your meshnet if applicable. Hyperboria is the largest meshnet, so I’m guessing they have rules about this. If you’re trying to connect rural areas to SAFEnet, I don’t think you’d want to be connected to Hyperboria. It would be a lot of extra bandwidth. You’d just create a local mesh with your rural community.

(2) cjdns doesn’t really provide anonymity. Messages indicate exactly who they came from and where they’re going (via IPv6). Granted, they’re encrypted.

1 Like

Yeah that’s why I was asking about SAFE in particular instead of putting SAFE on top of another system like cjdns. It seems SAFE should support mesh networking in and of itself.

To clarify, I think cjdns would be useful (if it is actually compatible with SAFE, not sure). I just don’t think you’d need to connect to Hyperboria, which is one particular meshnet using cjdns. You’d use cjdns to create your own meshnet.

And as far as anonymity, what I described isn’t really a criticism against cjdns, more so it’s just indicative of ambiguity around what “anonymous” means on a technical level.

I guess I am not explaining well enough. I am offering a great solution, and it is completely compatible. You do not need to connect to hyberbora.

You failed to understand that you need IP Address to connect to the network with other peers. Maidsafe does not produce IP address. It is not a meshnet in itself. It is decentralized software on top of monopolized ISP. This means you now have two options here; Use the draconian ISP and hope they don’t block your packets. Or use cjdns, and control your packets.

The key here is the packets and how it is transmitted.

Of course there are other mesh such as batman but that is not encrypted, nor the ip address are encrypted. It is just an open packet bouncing everywhere, unsecured. Cjdns is the only alternative solution.

You should really read the whitepaper. From the introduction,

Imagine an Internet where every packet is cryptographically protected from source to destination against espionage and forgery, getting an IP address is as simple as generating a cryptographic key, core routers move data without a single memory look up, and denial of service is a term read about in history books. Finally, becoming an ISP is no longer confined to the mighty telecoms, anyone can do it by running some wires or turning on a wireless device.

This is the vision of cjdns.

Here is an important detail…

Another issue is how are we going to route packets in a world where the global routing table is simply too large for any one router to hold it all? Despite the heroic efforts of core network engineers, the growth of the global routing table seems an unstoppable march. Cisco router company has proposed a plan called Locater/Identifier Separation Protocol, or LISP which aims to solve this by re-aggregating the routing table without forcing people to change their precious IP addresses. A different view of this problem is IP address allocation, currently it is done by a central organization which assigns IP addresses in such a way as to make the routing table as small as possible. Unfortunately this creates a bar of entry to the ISP sphere because aspiring network operators must register with the central organization and apply for an allocation of IP addresses while demonstrating that they will not be wasted. It is always easier to show that you need IP addresses if you already have a network.

And another most important detail…( from the whitepaper. I emphasis that you should really read every bit of it. )

A more technical issue with the Internet, and one of which many people are unaware, is address space deaggregation. Every computer connected to the Internet needs an address, a number which uniquely identifies it and which is attached to every piece of data which is to be sent to that computer. At every
stop along its path through the Internet, a packet (unit of data) has its address field examined by a router so it can decide which wire that packet should be sent down. Routers have an easier time if addresses are in big blocks so that a router can look quickly at the first numbers in the address and know, for example, that it is destined for somewhere in China, not exact but enough to know which wire to send it though. People naturally want as many addresses as they can possibly get and they want them in the smallest blocks possible, this is so they can then control (or buy and sell) these small blocks independently. The smaller the blocks of addresses which are announced, the larger the routing
tables become and the more work the Internet’s core routers must do in order to send a packet in the right direction. There have been attempts to aggregate addresses back in to groups but nonetheless, the number of small announcements in the global routing table has grown every year.

Lastly

cjdns is built on the idea that the ISPs and hosting providers which exist now will never upgrade, not to LISP, not to DNSSEC, not even to IPv6 in any meaningful way. Building new systems to be compatible with old systems is catering to the audience you will never have. Asking existing ISPs to upgrade
for the common good is asking them to take a risk with no immediate benefit. cjdns is about throwing out the book and redefining the specifications in a way that will be fast, secure, and most importantly, easy for the next generation of ISPs to deploy and use.

I never said it was anonymous. It is simply a friend to friend meshnet with awesome perks. This design removes the entire concept of OSI model, and uses a new model. It uses it’s own packets, not draconian isp packets. you control your own packets. It gives every user a encrypted IPV6 private key, and public key. Users(ISP) can now connect to any other users(ISP). Now think about that for a second here. Can maidsafe do that at all, no. Again, Maidsafe is a decentralized software on top of the network. CJDNS is a decentralized IP routing table, and decentralized physical network. It takes chuck of physical wires and shift to house to house. Friends to Friends.

So really, we do not need to build another solution which already exist, and is stable. It works on majority of devices, and modems/routers/switchers. There is a dev working to get cjdns on android devices. LoT benefit greatly from this amazing piece of technology.

As you see, I explicitly stated that if you want a community mesh, you need a network protocol that provides IP address. The only option is Cjdns. Do you understand now?

TL:DR

CJDNS = Provides encrypted IPV6 routing table, and controls your own encrypted packets. Nothing more.

Maidsafe = Provides XOR address table, requires IP address. Packets are either controlled by Dracions ISP or cjdns.

1 Like

Pleeeease do! It would be very helpful. :grinning:

A quick fix might be to install the launcher on a router and extend the launcher logic to bind the hard-drive of a local machine to act as the vault. Heck, If the team wanted to, they could build that kind of mesh functionality in one 3-4 week sprint with a greater degree of sophistication.

Edit: The first handful of routers would manually assign themselves router ID to mimic IP addresses/routing. As the mesh grows each router would then be automatically assigned a router ID by a set of quorum routers further simulating IP assignment in the current system. From there SAFE takes over to encrypt and anonymize the user base in the way it normally would. The only thing needed for this is a simple and abuse free way of assigning router ID’s. SAFE can handle the rest.

2 Likes

Sounds like an RFC is in order.

one node will know your IP address. It has to because that is the design.

I’m going repeat this again. cjdns utilize safe far greater than anybody here thinks. Your ip address are only given out to your trusted peers. You could turn a router into a relay node.

A quick fix might be to install the launcher on a router

No no. Don’t put any more workload on the router. The router job is to transmit data, nothing else. It has to be dumb.

The first handful of routers would manually assign themselves router ID to mimic IP addresses/routing

Changing IP address to ID address is still the same thing. I don’t see a solution here.

We already have a solution.

Install cjdns on router. Have peers connect to your routers. Peers fire up safe. You know their IP, and they trust you to hold that information. Otherwise, they would remove you, and find other router that does a better job trusting, and retain information.

Okay man how about this: When SAFE is built, or developed to a sufficient level, you can build a working model for us using SAFE + cjdns, show us how it works, and we can copy you. Deal?

Keep in mind for this to work for the average joe setup of this kind of system needs to be as simple as possible. If specialized skills are required then that usually means paying for those specialized skills. And by specialized skills I mean anything more complicated that using an install wizard as a lot of people think “tech savvy” is cleaning the malware off their computers and updating their antivirus.