mirror of
https://github.com/seigler/dash-docs
synced 2025-07-28 02:06:13 +00:00
Describe Soft And Hard Forks
Based on a suggestion made by @petertodd to the -devel mailing list and the discussion in that thread by him and other participants. * We've been using the term "consensus", but this commit introduces a formal definition for it and "consensus rules" as part of the block chain introduction. * Describe that consensus rules may change and may happen when they do: hard or soft forks. * Describe how full nodes can detect hard or soft forks, then describe how SPV clients can detect hard and soft forks using the more limited information available to them.
This commit is contained in:
parent
2147b830f1
commit
2e8ceb26df
9 changed files with 462 additions and 6 deletions
47
img/dev/en-soft-fork.dot
Normal file
47
img/dev/en-soft-fork.dot
Normal file
|
@ -0,0 +1,47 @@
|
|||
digraph {
|
||||
|
||||
size=6.25;
|
||||
rankdir=LR
|
||||
//splines = ortho;
|
||||
ranksep = 0.2;
|
||||
nodesep = 0.1;
|
||||
|
||||
edge [ penwidth = 1.75, fontname="Sans" ]
|
||||
node [ penwidth = 1.75, shape = "box", fontname="Sans", label = "", width=0.3, height=0.3 ]
|
||||
graph [ penwidth = 1.75, fontname="Sans" ]
|
||||
|
||||
invis1 [ shape = "none", label = "Blocks\nFrom\nUpgraded\nNodes" ]
|
||||
invis0 [ shape = "none", label = "Blocks\nFrom Non-\nUpgraded\nNodes" ];
|
||||
|
||||
subgraph cluster_honest {
|
||||
block0 [ label = "Follows\nOld\nRules" ];
|
||||
block1 [ label = "Follows\nOld\nRules" ];
|
||||
block2_1 [ label = "Follows Old Rules\nBut Violates\nNew Rules", style = "filled" ];
|
||||
|
||||
block2_1 -> block4 [ style = "invis", minlen = 2 ];
|
||||
|
||||
block4 [ label = "Follows\nOld\nRules" ];
|
||||
|
||||
style = "invis";
|
||||
}
|
||||
|
||||
|
||||
subgraph cluster_attack {
|
||||
block2 [ label = "Follows\nOld & New\nRules" ];
|
||||
block3 [ label = "Follows\nOld & New\nRules" ];
|
||||
|
||||
style = "invis"
|
||||
}
|
||||
|
||||
|
||||
|
||||
invis0 -> block0 [ minlen = 2, style = "dashed" ];
|
||||
|
||||
block0 -> block1 -> block2 -> block3 -> block4;
|
||||
|
||||
block1 -> block2_1
|
||||
|
||||
|
||||
|
||||
label = "A Soft Fork: Blocks Violating New Rules Are Made Stale By The Upgraded Mining Majority"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue