It’s being considered as part of a series of internal posts. I thnk we might get there. At least I hope to get membership close to fully crdt, but quite tricky so far. I feel confident, though.
PARSEC is dead, long live PARSEC!
It has passed, is no more. It’s a dead parrot. There will be much more on agreement/consensus in the coming weeks. All v interesting
Is it possible to find out what is possible and what not, by investigating it with some kind of formal logic, before putting anything into actual code? Has it been logically proven, that changes in SAP can be done without having time as a component of the network?
Let’s logically prove time first
No seriously, of course you don’t need time. There is a whole universe out there that works well without watches. However, if you could logically prove you need time in a decentralised system, then that would not be simple.
Here is a good video from years back, "Keeping Time in Real Systems" by Kavya Joshi - YouTube
Hope it helps
We actually try to do this with many meetings, papers and write ups. Then we generally create a mock up and test it. Then create a module/crate and test that, then add it to the network.
It helps but really until the whole thing is running and humans using it then we only get a good guess. i.e. we can only tell it is working when we have folk using it.
Sure, in the end, yes.
But has the network improved in this pre-human phase? I don’t have any grasp about that, because the Comnets had us as part. Every now and then we can read from these updates that stability has improved, but we never hear any metrics. I am not suspecting that it wouldn’t had improved, but it would be nice to know what that improvement means in some terms. More splits and sections? Or, more reliable data handling in one section? Both?
The reason I asked for the logic is that is seems that the split-brain problem of AE lead to Membership thing, because it didn’t work in some edge cases. And it seems that every new approach has it’s own edge cases, where it fails. So I was thinking if there is some underlying impossibility, that can be pushed to the edges, but ultimately, it’s still there?
EDIT: I added an important “not” in the “I am not suspecting…”
Yes, continually. We do test some things and pull them out again if they are not good enough (parsec etc.).
That is not an Ae issue, per se’ but Ae helps for sure as does gossip. There is a really long internal post on consensus and what it means. Perhaps we should post that in next week’s update to allow everyone to dive deep, but in real world terms.
Not an impossibility. Much of this is a tension between theoretical possibilities and real world issues. For instance split brain as described in the post could happen as shown, but with a probability approaching zero if the sections do gossip to each other (which they will) frequently.
So possibilities exist everywhere and guarantees nowhere. Sometimes the theory requires guarantees based on assumptions and that is how math and scientific papers work. I am an assumptions guy, more than a math guy.
A large assumption si the network is still there (I mean the Internet) another tends to be nodes can always speak to each other (never see NAT etc. in papers) and many times prior to crypto take off the assumption was running internal nodes (like Amazons Dynamo), since then the byzantine assumption is more prominent.
When you look at a paper and think, wow that’s brilliant but then think deeply about assumptions, it changes the paper. So I am dead keen on analysing assumptions.
Strict order for instance (consensus), is great, but hard to confine without re-ordering the whole planet. It also relies on some unusual assumptions, which the post I mentioned will show.
I know what you are asking for and appreciate that, but this is really hard to say, but innovations don’t act like a normal project. It can be try/fail a lot.
Overall though we are good, membership is an issue we are poking hard as hell at from many angles. However, even with stable membership (we can stabilise membership by running a stable section on our own machines) , we still have bugs in comms or close to that. Killing those will push us to the brink of launch.
Thank you, your reply was exactly on the level I was after.
Great, that is good.
I decided to post an internal doc regarding consensus etc. it is here
I hope it helps get folk thinking deeply At least, I think some of it will be surprising for many. It’s great to dig in to the guts of things like this. Helps us all.
Thx 4 the update Maidsafe devs
Nice push forward on this week’s update
by David’s write up, I’ll need decades more to understand it
Keep hacking super ants
One of the better updates
Is it reasonable to assume that we should not expect a usable test network until the consensus work is implemented?
Or maybe brink of testnet? Shouldn’t there be code audit, updates, etc. before launch? Or how is the launch defined?
In looking for a definition of the difference between BFT and CFT I was reminded of this update.
Isn’t that just that crash is no response where there should be response and byzantine is wrong kind of response?
BFT is nodes responding with bad info to influence matters, whereas CFT is nodes not responding (usually cause of failures in hardware etc.).
You can think of a Byzantine node as one that is not running our code, but an altered version.
a suggestion, it might be wise to take another peak at IOTA’s L1 low energy use PoW + consensus model for inspiration, last I looked they have taken off the centralized training wheels…
here is the link Shimmer Network and Token Launch - IOTA News
Thank you for the heavy work team MaidSafe! I add the translations in the first post
Privacy. Security. Freedom