-
Notifications
You must be signed in to change notification settings - Fork 139
mdlint and vale editorial updates in Concepts/Consensus-Protocols directory #180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
MadelineMurray
merged 17 commits into
besu-eth:master
from
grantnoble:grantnoble-consensus-protocols-mdlint-vale
Feb 20, 2020
Merged
Changes from 14 commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
42ffc78
Added default data location (#123)
MadelineMurray ba0bd47
Moved license note (#129)
MadelineMurray 0aa7d4e
Windows is now supported in the quickstart (#143)
EdJoJob 1ff67b8
quickstart updates all round (#141)
joshuafernandes 3a9784b
Fixed typo (#150)
MadelineMurray d38283c
Add multi-tenancy information. (#131)
bgravenorst af2e662
Apply renames for the quickstart repo (#152)
EdJoJob 59fd71f
Added content on protocol upgrades (#132)
MadelineMurray e0d843a
Fixed Ansible link and renamed topic (#168)
MadelineMurray 38f2315
permissioning (#170)
wslyvh d6a72e3
Vale and mdlint editorial updates - DCO.md (#162)
124c249
mdlint and vale editorial updates in the Concepts/Consensus-Protocols…
dc52685
updated para on IBFT 2.0
6cdd871
Merge branch 'master' into grantnoble-consensus-protocols-mdlint-vale
429b516
Merge branch 'master' into grantnoble-consensus-protocols-mdlint-vale
ac32181
Consensus protocols stem sentence update
8ce40c3
Merge branch 'master' into grantnoble-consensus-protocols-mdlint-vale
MadelineMurray File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,67 +1,66 @@ | ||
| *[Byzantine fault tolerant]: Ability to function correctly and reach consensus despite nodes failing or propagating incorrect information to peers. | ||
| *[Byzantine fault tolerant]: The ability to function correctly and reach consensus despite nodes | ||
| failing or propagating incorrect information to peers. | ||
|
|
||
| # Comparing Proof of Authority Consensus Protocols | ||
| # Comparing Proof of Authority consensus protocols | ||
|
|
||
| Besu implements the Clique and IBFT 2.0 Proof of Authority consensus protocols. Proof of Authority | ||
| consensus protocols are used when participants are known to each other and there is a level of trust between them. | ||
| For example, in a permissioned consortium network. | ||
| Besu implements the Clique and IBFT 2.0 Proof of Authority consensus protocols. Proof of Authority | ||
| consensus protocols work when participants know each other and there is a level of trust between | ||
| them. For example, in a permissioned consortium network. | ||
|
|
||
| Proof of Authority consensus protocols allow faster block times and have a much greater throughput of transactions | ||
| than the Ethash Proof of Work consensus protocol used on the Ethereum MainNet. | ||
| Proof of Authority consensus protocols have faster block times and a much greater transaction | ||
| throughput than the Ethash Proof of Work consensus protocol used on the Ethereum MainNet. | ||
|
|
||
| In Clique and IBFT 2.0, a group of nodes in the network act as signers (Clique) or validators (IBFT 2.0). These nodes propose, validate, | ||
| and add blocks to the blockchain. Nodes are added to or removed from the signer/validator pool by the existing group of nodes voting. | ||
| In Clique and IBFT 2.0, a group of nodes in the network act as signers (Clique) or validators | ||
| (IBFT 2.0). The existing nodes in the signer/validator pool vote to add nodes to or remove nodes | ||
| from the pool. | ||
|
|
||
| !!! note | ||
| For the rest of this page, the term validator is used to refer to signers and validators. | ||
|
|
||
| ## Properties | ||
|
|
||
| Properties to consider when comparing Clique and IBFT 2.0 are: | ||
|
|
||
| * Immediate finality | ||
| * Minimum number of validators | ||
| * Liveness | ||
| * Speed | ||
|
|
||
| ### Immediate Finality | ||
|
|
||
| IBFT 2.0 has immediate finality. When using IBFT 2.0 there are no forks and all valid blocks are included in the main chain. | ||
| For the rest of this page, the term validator is used to refer to signers and validators. | ||
|
|
||
| Clique does not have immediate finality. Implementations using Clique must be aware of forks and chain reorganizations occurring. | ||
|
|
||
| ### Minimum Number of Validators | ||
|
|
||
| IBFT 2.0 requires 4 validators to be Byzantine fault tolerant. | ||
|
|
||
| Clique can operate with a single validator but operating with a single validator offers no redundancy if | ||
| the validator fails. | ||
| ## Properties | ||
|
|
||
| Properties to consider when comparing Clique and IBFT 2.0 are: | ||
|
|
||
| ### Liveness | ||
| * Immediate finality | ||
| * Minimum number of validators | ||
| * Liveness | ||
| * Speed. | ||
|
|
||
| Clique is more fault tolerant than IBFT 2.0. Clique tolerates up to half to the validators failing. IBFT 2.0 networks | ||
| require greater than or equal to 2/3 of validators to be operating to create blocks. For example, in an IBFT 2.0 network of: | ||
| ### Immediate finality | ||
|
|
||
| * 4-5, 1 unresponsive node is tolerated | ||
| * 6-8, 2 unresponsive nodes are tolerated | ||
| IBFT 2.0 has immediate finality. When using IBFT 2.0 there are no forks and all valid blocks get | ||
| included in the main chain. | ||
|
|
||
| Networks with 3 or less validators are able to produce blocks but do not guarantee finality when operating | ||
| in adversarial environments. | ||
| Clique does not have immediate finality. Implementations using Clique must be aware of forks and | ||
| chain reorganizations occurring. | ||
|
|
||
| !!! important | ||
| We recommend not using IBFT 2.0 networks with 3 nodes for production purposes. | ||
| ### Minimum number of validators | ||
|
|
||
| ### Speed | ||
| To be Byzantine fault tolerant, IBFT 2.0 requires a minimum of four validators. | ||
|
|
||
| Reaching consensus and adding blocks is faster in Clique networks. For Clique, the probability of a fork | ||
| increases number as the of validators increases. | ||
| Clique can operate with a single validator but operating with a single validator offers no | ||
| redundancy if the validator fails. | ||
|
|
||
| For IBFT 2.0, the time to add new blocks increases as the number of validators increases. | ||
| ### Liveness | ||
|
|
||
| Clique is more fault tolerant than IBFT 2.0. Clique tolerates up to half of the validators failing. | ||
| IBFT 2.0 networks require greater than or equal to two-thirds of validators to be operating to | ||
| create blocks. For example, an IBFT 2.0 network of: | ||
|
|
||
| * Four to five validators tolerates one unresponsive validator | ||
| * Six to eight validators tolerates two unresponsive validators. | ||
|
|
||
| Networks with three or less validators can produce blocks but do not guarantee finality when | ||
| operating in adversarial environments. | ||
|
|
||
| !!! important | ||
|
|
||
| Using IBFT 2.0 networks with three nodes for production purposes is not recommended. | ||
|
|
||
| ### Speed | ||
|
|
||
| Reaching consensus and adding blocks is faster in Clique networks. For Clique, the probability of a | ||
| fork increases number as the of validators increases. | ||
|
|
||
| For IBFT 2.0, the time to add new blocks increases as the number of validators increases. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if this is just me but does adding including here make it sound like the consensus protocols listed here are a subset of consensus protocols implemented in Besu rather than being all of them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated.