5 ms·
This seems like a really, really bad idea. However, if everyone had that attitude we'd never improve on the existing art. So I'm glad some people are willing t
by eloff 8y ago
This seems like a really, really bad idea.
However, if everyone had that attitude we'd never improve on the existing art. So I'm glad some people are willing to risk it.
But just to reiterate, if you're thinking of rolling your own consensus - or even implementing an existing consensus algorithm yourself (although that's much worse for Paxos than for Raft) - you're almost certainly making a big mistake.
- cremp 8y agoJust to drive it home. Those who actually make their own encryption libraries know their stuff, and have been in the space for years. You should never, ever, roll your own encryption. If it's a requirement, then change your damn requirements, because just like consensus; it is not easy to get right, and the pros make mistakes.
- zzzcpan 8y agoConsensus is not crypto, it's ridiculously trivial in comparison and usually so useless, that nobody even bothers doing it correctly all the way to the end user.
- dlubarov 8y agoI think it's worth distinguishing a few cases here: 1. Reimplementing an existing cryptographic primitive, such as SHA-256. 2. Inventing a new cryptographic primitive, with a reduction to existing cryptographic assumptions, and implementing it. A recent example is SPHINCS-256, which was proven secure in the random oracle model. 3. Postulating a new cryptographic hardness assumption, inventing a new cryptographic primitive based on it, and implementing it. Recent examples are IOTA's Curl hash function and StarkWare's Jarvis cipher. #1 is risky, but at least the risk can be mitigated by having qualified peers review the implementation. #2 is riskier, but still, it can be mitigated by having qualified peers review the proof. #3 seems far more dangerous, since it involves conjecture. What the Tupelo team is doing is like #2 -- risky, yes, but not comparable to #3.
- zzzcpan 8y agoIf you have enough background in distributed systems to choose a consensus algorithm you are definitely capable of implementing one yourself and even invent your own. It's not a bad idea either, most existing consensus-based systems are absolute garbage. People just hugely overestimate how much those algorithms matter for production systems. EDIT: Note, I'm not talking about blockchains and byzantine fault tolerance, but in context of Paxos/Raft.
- eloff 8y agoThat's like saying if you have some crypto background you can implement your own crypto library. It's TERRIBLE advice. Read the Google paper on their chubby distributed locking system using paxos. They had a hard time getting it right - unless you think you're so much better than them. IIRC Leslie Lamport works (worked?) for them. Use an existing, well used, well scrutinized implementation of a known algorithm.
- kjeetgill 8y agoAre you sure? I thought Lamport has been at Microsoft Research since forever.
- eloff 8y agoAh the vagaries of the human memory.
- therein 8y agoYou're correct. Lamport has joined MSR in 2001 right after publishing "Time, Clocks, and the Ordering of Events in a Distributed System" and has been there ever since. I am not sure if he is still at the MV office but he was one of the reasons why MSR kept a presence in MV for a while.
- lou1306 8y agoActually "Time, Clocks..." is a paper from the late 70s. Maybe you were thinking of the Paxos paper, "The Part-Time Parliament" (1998)?