From 0c6bcfee632d4ad9009ac34da4fb5e7974d4902a Mon Sep 17 00:00:00 2001 From: nadams Date: Thu, 18 May 2017 08:18:52 -0700 Subject: [PATCH] Edited ch10.asciidoc with Atlas code editor --- ch10.asciidoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ch10.asciidoc b/ch10.asciidoc index 5862f756..42d8b9dd 100644 --- a/ch10.asciidoc +++ b/ch10.asciidoc @@ -775,12 +775,13 @@ A "fork" occurs whenever there are two candidate blocks competing to form the lo In <>, we see two miners (Node A and Node B) who mine two different blocks almost simultaneously. Both of these blocks are children of the star block, and extend the chain by building on top of the star block. To help us track it, one is visualized as a triangle block originating from Node A, and the other is shown as an upside-down triangle block originating from Node B. -Let's assume, for example, that a miner Node A finds a Proof-of-Work solution for a block "triangle" that extends the blockchain, building on top of the parent block "star." Almost simultaneously, the miner Node B who was also extending the chain from block "star" finds a solution for block "upside-down triangle," his candidate block. Now, there are two possible blocks; one we call "triangle," originating in Node A; and one we call "upside-down triangle," originating in Node B. Both blocks are valid, both blocks contain a valid solution to the Proof-of-Work, and both blocks extend the same parent (block "star"). Both blocks likely contain most of the same transactions, with only perhaps a few differences in the order of transactions. - [[fork2]] +[role="smallereighty"] .Visualization of a blockchain fork event: two blocks found simultaneously image::images/mbc2_1003.png["Visualization of a blockchain fork event: two blocks found simultaneously"] +Let's assume, for example, that a miner Node A finds a Proof-of-Work solution for a block "triangle" that extends the blockchain, building on top of the parent block "star." Almost simultaneously, the miner Node B who was also extending the chain from block "star" finds a solution for block "upside-down triangle," his candidate block. Now, there are two possible blocks; one we call "triangle," originating in Node A; and one we call "upside-down triangle," originating in Node B. Both blocks are valid, both blocks contain a valid solution to the Proof-of-Work, and both blocks extend the same parent (block "star"). Both blocks likely contain most of the same transactions, with only perhaps a few differences in the order of transactions. + As the two blocks propagate, some nodes receive block "triangle" first and some receive block "upside-down triangle" first. As shown in <>, the network splits into two different perspectives of the blockchain; one side topped with a triangle block, the other with the upside-down-triangle block. In the diagram, a randomly chosen "Node X" received the triangle block first and extended the star chain with it. Node X selected the chain with "triangle" block as the main chain. Later, Node X also received the "upside-down triangle" block. Since it was received second, it is assumed to have "lost" the race. Yet, the "upside-down triangle" block is not discarded. It is linked to the "star" block parent and forms a secondary chain. While Node X assumes it has correctly selected the winning chain, it keeps the "losing" chain so that it has the information needed to reconverge if the "losing" chain ends up "winning."