dagfans / consensus_paper Goto Github PK
View Code? Open in Web Editor NEWClassic papers for distributed consensus
Classic papers for distributed consensus
一个可靠的计算机系统必须处理某些部件出故障的情况,即故障部件向系统的不同部分提供相互冲突的信息。这种情况可以抽象地表示为拜占庭军队的将领们带着他们的军队驻扎在一个敌城周围,只有通过信使才能沟通。将军们必须就作战计划达成一致。然而,他们中的一个或多个可能是试图迷惑他人的叛徒。问题是要找到一种算法来确保所有忠诚的将军们会达成一致。结果表明,如果且仅使用口头传递信息,只有当三分之二以上的将军忠诚时,这个问题才能得到解决,因此一个叛徒就可以迷惑两个忠诚的将军。而如果使用不可伪造的书面信息,则可以允许将军中存在任何数量的叛徒,使得本问题有解。
Reliable computer systems must handle malfunctioning components that give conflicting information to different parts of the system. This situation can be expressed abstractly in terms of a group of generals of the Byzantine army camped with their troops around an enemy city. Communicating only by messenger, the generals must agree upon a common battle plan. However, one or more of them may be traitors who will try to confuse the others. The problem is to find an algorithm to ensure that the loyal generals will reach agreement. It is shown that, using only oral messages, this problem is solvable if and only if more than two-thirds of the generals are loyal; so a single traitor can confound two loyal generals. With unforgeable written messages, the problem is solvable for any number of generals and possible traitors. Applications of the solutions to reliable computer systems are then discussed.
Impossibility
Consensus in the presence of partial synchrony
The problem addressed here concerns a set of isolated processors, some unknown subset of which may be faulty, that communicate only by means of two-party messages. Each non-faulty processor has a private value of information that must be communicated to each other non-faulty processor.
Non-faulty processors always communicate honestly, whereas faulty processors may lie.
The problem is to devise an algorithm in which processors communicate their own values and relay values received from others that allows each non-faulty processor to refer a value for each other processor.The value referred for a non-faulty processor must be that processor's private value, and the value inferred for a faulty one must be consistent with the corresponding value inferred by each other non-faulty processor.
It is shown that the problem is solvable for, and only for, n >= 3m + 1, where m IS the number of faulty processors and n is the total number. It is also shown that if faulty processors can refuse to pass on information but cannot falsely relay information, the problem is solvable for arbitrary n >= m >=0. This weaker assumption can be approximated in practice using cryptographic methods
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.