Safe Network Dev Update - December 10, 2020

I like that - alot!

It’s ethereal, beautiful and futuristic, while ancient at the same time … Elders and Adults, is possibly leading thoughts more to tribalism…(?) But at the same time, it’s easier to understand maybe.

2 Likes

Infants, Adults and Elders, as originally conceived, work for me. It doesn’t give connotations of tribalism to me, but of game-playing roles and Lord of the Rings characters.

1 Like

Infants, Adults and Elders is concise, memorable, easy to understand, very cross cultural and will be easily translated.

It also conveys the progression without needing it to be stated.

It seems odd for a Titan to be expected to become an Oracle, so it’s more work to convey and remember this. Which way round was it, etc?

7 Likes

But marketing! Titan sounds cooler.

1 Like

Only “Elder” will need marketing. That will be the target for everyone. Makes me think of Gandalf.

Yeah, this is the crux.

But I agree with sock-man that they are way cooler :smile:

Elder could be put into a similar ancient/futuristic context if choosing something else than Adult to go with it. Adult is a quite plain and mundane word, not that exciting (and in some sentences we see some slightly awkward connotations with it :joy: ).

Simple is king though.

4 Likes

Plus infant->adult->elder fits with the concept of node aging much better. I like the new idea but it just misses the mark for me. Plus now with projects like chainlink, even newer not so technical people kind of get what an “oracle” is and they might conflate what an elder/oracle is doing on our network, with the service chain link and other similar projects provide.

Also @tfa I think of it less slave and master and more adults are able to do physical heavy lifting like actions and elders (being wise) make important decisions that it takes age and experience to acquire. They work together to survive and their survival depends on them managing and protecting data. I agree with @jlpell. The naming as is makes sense I would hate to lose infant as well because it solidifies the whole concept.

8 Likes

I agree with this. Oracle has other similar meanings in the context and the role of a Titan isn’t clear from the name, cool as it is, nor is the idea of progression from one type to another. Instead of Adult how about Guardian? Similar connotations, slightly less generic, suggests something about its role. Or, depending if we’re keeping the farming analogy (not sure I’m in favour, but that’s another topic) Rancher or Herder.

1 Like

If adults work is lighter, then continuing it shouldn’t be a problem in that case.

So a very powerful device is needed to be an elder and I like that because an attack to get control of a section is harder to implement.

Furthermore, I would find unfair that any requirement for elders be less constraining than for adults. It could be storage (capacity and speed), cpu, download, upload, …

I wouldn’t be alone, and the risk is a perceived injustice damaging for the network success if the requirement could be lighter in one of the dimensions (say for example storage capacity).

The only way to ensure this is that elders work is additive to adults work. If the work is different we can’t be sure of that or at least it might be difficult to convince people of that.

1 Like

Please excuse my basic lack of knowledge here.
When we say elders won’t store blobs, do we mean blobs of data?
Will elders store any data?
I’m just wondering if I had a node with lots of storage capacity, and got promoted to elder, would that storage capacity then sit mainly unused?

2 Likes

Yes, I like the simple theme of infant->adult->elder. It’s easy to hold three concepts in one’s mind simultaneously. If you want to bring in other contexts then I would build upon this simplicity if more specialization is required. As a fun thought experiment I’m going to expand upon the greek mythology theme. For example, consider the following extra levels of complexity:

Infant → Child → Adult → Elder → Ancient → Oracle → Titan

Having 7 levels of node age and role/responsibility needs to have a purpose. The purpose of extra roles is unclear right now. Here are some example descriptions for the other roles beyond Infant,Adult, and Elder that come to mind based on conversations we’ve had on the forum. REPEAT: THIS IS JUST A MINI BRAINSTORM… MAYBE SOMETHING TO CONSIDER POST BETA.

Child: A node becomes a Child once it has completed the work required by an Infant and has been accepted into a network section. It is given valuable work to do, but not as much as an Adult, and must pass additional tests and audits before graduating to become a full adult.

Ancient: An Elder that has reached a significantly high age and trust level. Ancient nodes are given more responsibilities and can test/audit Elders. Ancients manage the backup of entire sections by coordinating with Ancients in other sections. For example (A copy of section A is stored in section B and section C, a copy of section B is stored in section C and A, etc.) They might also aggregate section performance data or other health metrics.

Oracle: These nodes specialize in network computation. They also manage groups of Adult nodes in a section which have been determined capable of performing a dedicated computation role. Oracles also fulfill pure network computation needs on their own. They might receive information from the Elders about which Adults are best suited for computation, or perform their own specialized resource proofs.

Titan: These nodes (as a group) have a “god-view” of the network and aggregate mult-section information. Titans can inform oracles and ancients that there may be a problem in a section that needs further investigation, or that the majority of ancients/elders in a section are malicious and should be purged and the section needs to be reincarnated from a backup. To become a Titan, an Elder must have first been promoted to Ancient, followed by a promotion to Oracle.

Here is an example communications partition scheme:

  1. Infant nodes can only communicate with Elders.
  2. Child nodes can only communicate with Elders.
  3. Adult nodes can only communicate with Elders and Oracles.
  4. Elder nodes communicate with Infant, Child, Adult, Elder, and Ancient nodes.
  5. Ancient nodes communicate with Adult, Elder, Ancient, and Oracle nodes.
  6. Oracles can communicate with Adults, Ancients, Oracles, and Titans.
  7. Titans communicate with Ancients, Oracles and other Titans.

The hierarchy would look something like this:

                          Titan         
                       /         \
                Ancient --------- Oracle   
                   |   \          /
                 Elder---\       /      
               /   |       \   /
         Infant  Child     Adult

For malice detection and governance, this structure could follow a rule of three. For example:

  1. Elders rule over section membership (join/purge) of Infant, Child, and Adult nodes.
  2. Ancients rule over the membership of Elders and Oracles.
  3. Oracles can create or kill Titans.
  4. Titans can purge from 1 to all Elders and Ancients in a section.

Default rules for class membership are simply that adults are promoted based on age until minimum quorums for 2/3 majority rule are obtained? Unsure what the devs are doing now.

Other interesting concepts:
Tie-breakers: If a group of Elders cannot reach 2/3 majority consensus on a decision to purge an Adult node, they could appeal to the Ancients. Same could be true for Ancients appealing to Oracles for their decision processes, etc.

7 Likes

The vault code has completely changed since July, so I am basing my remarks on @dirvine quote and if I understand correctly adults store chunks of immutable data, whereas elders store all other kind of data.

In July elders were storing a super set of data (see https://github.com/maidsafe/sn_node/blob/869508d9d9f9001b608fcbeb8d6b3f2e5360b648/src/data_handler/mod.rs)

This is a move that I find risky and yes, if the size of immutable data is bigger than other kind of data then your storage capacity will sit mainly unused and your accumulated chunks will be useless.

3 Likes

Mutable data will be stored on those disks of an Elder. There is no way that can be in memory, only what needs to be in memory. So SectionChain, mutable data, keys and more will all be on disk. So an Elders disk access will be important as well as just capacity. We need to find out the balance of immutable (blobs) and mutable (crdts etc.) as we go, but there are far fewer elders and than adults, so likely a higher disk space requirement.

7 Likes

This probably would not work outside of the UK
but,
Apprentices, Journeymen, Craftsmen/folk

How about this?

Deity → Immmortal → Emperor → King → Prince → Archduke → Duke → Margrave → Earl → Viscount → Baron → Imperial → Warlord → Knight → Gentry → Settler → Serf.

Better would be layers/levels though.
Level 0 → Level 1 → …

2 Likes

I want to get a T-shirt that says “i’m a Safenetwork Titan”

2 Likes

Well if you’re a “Safe Network Titan”, then I’m a “Safe Network Diety”!

1 Like

Novice - - > Experienced - - > Master

2 Likes

How will be rewarded elders than?
They should cover bigger maintenance than adults, so bigger traffic will compensate that ?

1 Like

5 Likes