diff options
author | Andrew Chow <achow101-lists@achow101.com> | 2017-03-23 19:14:28 -0400 |
---|---|---|
committer | bitcoindev <bitcoindev@gnusha.org> | 2017-03-23 23:14:30 +0000 |
commit | 9257369213e78ad104c400e87f480cfd1eae7cbf (patch) | |
tree | dd1ef50b41e5d4feb490c083911d673f65610f89 | |
parent | 65841c46da6373aed106623767856bacf42e30d5 (diff) | |
download | pi-bitcoindev-9257369213e78ad104c400e87f480cfd1eae7cbf.tar.gz pi-bitcoindev-9257369213e78ad104c400e87f480cfd1eae7cbf.zip |
Re: [bitcoin-dev] Issolated Bitcoin Nodes
-rw-r--r-- | 8c/fdb744fc52fe12b6c3338d24326d9ea4aa301b | 281 |
1 files changed, 281 insertions, 0 deletions
diff --git a/8c/fdb744fc52fe12b6c3338d24326d9ea4aa301b b/8c/fdb744fc52fe12b6c3338d24326d9ea4aa301b new file mode 100644 index 000000000..6d504ca17 --- /dev/null +++ b/8c/fdb744fc52fe12b6c3338d24326d9ea4aa301b @@ -0,0 +1,281 @@ +Return-Path: <achow101-lists@achow101.com> +Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org + [172.17.192.35]) + by mail.linuxfoundation.org (Postfix) with ESMTPS id 7CF2F259 + for <bitcoin-dev@lists.linuxfoundation.org>; + Thu, 23 Mar 2017 23:14:30 +0000 (UTC) +X-Greylist: whitelisted by SQLgrey-1.7.6 +Received: from mail-qt0-f176.google.com (mail-qt0-f176.google.com + [209.85.216.176]) + by smtp1.linuxfoundation.org (Postfix) with ESMTPS id C0BB71E8 + for <bitcoin-dev@lists.linuxfoundation.org>; + Thu, 23 Mar 2017 23:14:29 +0000 (UTC) +Received: by mail-qt0-f176.google.com with SMTP id n21so188897481qta.1 + for <bitcoin-dev@lists.linuxfoundation.org>; + Thu, 23 Mar 2017 16:14:29 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=achow101-com.20150623.gappssmtp.com; s=20150623; + h=subject:to:references:from:message-id:date:user-agent:mime-version + :in-reply-to; bh=YiWT7D99XFsHNcA4yUHJA1jMndmhLsjS7yBriv2iH14=; + b=Y15b/c+VqHFDFbRdlherFnAUiq1OBzy4MDOw+OQgNLvYAFUGGgQamMxgU4M3bCN9ey + AC29xrj5gB6gT4oJUAaHJT5K+qGfI6daOp4AGG1xshPVSKhhfd9ydmF/1627yxFKNskJ + WfpaKXE5KCFWcLftNiqZ5FLZPjSOE1opmXJTAol3OMTuHZZLBh0cCspzz+SCfNMbUgHR + XG59OERwxlycNH3OD5Jn2b7PuTpIRp1/fvjgnbPObhoH/949ImEAVUpsKScfyeXaswCv + EPWaLzNLRVn/kAnySeDbLz6f5auRvZpoZmZfm98Q4OoS8Qa9gYHGL64a8/or9lCbyFn6 + DWRw== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:subject:to:references:from:message-id:date + :user-agent:mime-version:in-reply-to; + bh=YiWT7D99XFsHNcA4yUHJA1jMndmhLsjS7yBriv2iH14=; + b=Mqhq0ypkKCX7YGqnTI4y+V3EdWdmQQ4I1w/qb4fG1Uv/dDPI20zwqoUu8UiG+anvp5 + 9V5io9D/e1raEvpDZ9Din2KpQ1vcz54kwFHuM8ZkiDSA6J7dFFbsSH5TgcUX1lgmaSki + 5ymytzNAr8mWGb/1DQCmMgwkbDfvPYUEkjBCiXJu3nJrYohuo5wi4ZZAeoBKyVZNholN + 98C4oReDSSiKEk44FcfbnA2QHMYogAT9v+GVLr5I8RE5AacFlTrHW1t3b6fRZkLhCjo0 + hubblG2teL0LocDYEfniTy6bjvwGbyvmWiJDfGeZVp7snBtzwS5PIXVRMb7mazcikhma + 9Egg== +X-Gm-Message-State: AFeK/H3SgqmCh2mLm9DPzwAld3gFPNgVQ/vM59KfR5SJrSbU7u6O5WilIavUbQan2ckntw== +X-Received: by 10.237.43.68 with SMTP id p62mr4901408qtd.207.1490310868814; + Thu, 23 Mar 2017 16:14:28 -0700 (PDT) +Received: from ?IPv6:2601:45:8200:e070:cdd4:fd6a:c2b2:a135? + ([2601:45:8200:e070:cdd4:fd6a:c2b2:a135]) + by smtp.gmail.com with ESMTPSA id y3sm328954qke.59.2017.03.23.16.14.28 + (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Thu, 23 Mar 2017 16:14:28 -0700 (PDT) +To: Juan Garavaglia <jg@112bit.com>, + Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org> +References: <SC1P152MB1648D0F9DF4279C49D755233F53F0@SC1P152MB1648.LAMP152.PROD.OUTLOOK.COM> +From: Andrew Chow <achow101-lists@achow101.com> +Message-ID: <3fd9846c-6c57-9b57-0b6e-e5958e644e1d@achow101.com> +Date: Thu, 23 Mar 2017 19:14:28 -0400 +User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 + Thunderbird/45.8.0 +MIME-Version: 1.0 +In-Reply-To: <SC1P152MB1648D0F9DF4279C49D755233F53F0@SC1P152MB1648.LAMP152.PROD.OUTLOOK.COM> +Content-Type: multipart/alternative; + boundary="------------D2C1106ADBA4B982BB3A2F48" +X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, + RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1 +X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on + smtp1.linux-foundation.org +Subject: Re: [bitcoin-dev] Issolated Bitcoin Nodes +X-BeenThere: bitcoin-dev@lists.linuxfoundation.org +X-Mailman-Version: 2.1.12 +Precedence: list +List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org> +List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, + <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe> +List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/> +List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org> +List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help> +List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, + <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe> +X-List-Received-Date: Thu, 23 Mar 2017 23:14:30 -0000 + +This is a multi-part message in MIME format. +--------------D2C1106ADBA4B982BB3A2F48 +Content-Type: text/plain; charset=windows-1252 +Content-Transfer-Encoding: 7bit + +The issue is due to Segwit blocks since Testnet has already activated +Segwit. 0.12.x- nodes will receive a Segwit block with all of the +witnesses stripped. When they relay this block to a 0.13.0+ node, the +block will be rejected because those have Segwit functionality and +require the witnesses to be in the block. Given that Testnet has a +smaller number of nodes and less difficulty, this could result in some +miners using 0.13.0+ mining blocks which do not propagate well and thus +causing multiple chain splits and reorgs as other miners find blocks for +the same height before receiving a block for that height. + + +On 3/23/2017 6:37 PM, Juan Garavaglia via bitcoin-dev wrote: +> +> We notice some reorgs in Bitcoin testnet, while reorgs in testnet are +> common and may be part of different tests and experiments, it seems +> the forks are not created by a single user and multiple blocks were +> mined by different users in each chain. My first impression was that +> the problem was related to network issues but some Bitcoin explorers +> were following one chain while others follow the other one. +> Nonetheless, well established explorers like blocktrail.com or +> blockr.io were following different chains at different heights which +> led to me to believe that it was not a network issue. After some time, +> a reorg occurs and it all comes to normal state as a single chain. +> +> We started investigating more and we identified that the fork occurs +> with nodes 0.12; in some situations, nodes 0.12 has longer/different +> chains. The blocks in both chains are valid so something must be +> occurring in the communication between nodes but not related with the +> network itself. +> +> Long story short, when nodes 0.13+ receive blocks from 0.13+ nodes all +> is ok, and those blocks propagate to older nodes with no issues. But +> when a block tries to be propagated from bitcoind 0.12.+ to newer ones +> those blocks are NOT being propagated to the peers with newer versions +> while these newer blocks are being propagated to peers with older +> versions with no issues. +> +> My conclusion is that we have a backward compatibility issue between +> 0.13.X+ and older versions. +> +> The issue is simple to replicate, first, get latest version of +> bitcoind, complete the IBD after is at current height, then force it +> to use exclusively one or more peers of versions 0.12.X and older, and +> you will notice that the latest version node will never receive a new +> block. +> +> Probably some alternative bitcoin implementations act as bridges +> between these two versions and facilitate the chain reorgs. +> +> I have not yet found any way where/how it can be used in a malicious +> way or be exploited by a miner but in theory Bitcoin 0.13.X+ should +> remain compatible with older ones, but a 0.13+ node may become +> isolated by 0.12 peers, and there is not notice for the node owner. +> +> +> +> +> +> _______________________________________________ +> bitcoin-dev mailing list +> bitcoin-dev@lists.linuxfoundation.org +> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev + + +--------------D2C1106ADBA4B982BB3A2F48 +Content-Type: text/html; charset=windows-1252 +Content-Transfer-Encoding: 8bit + +<html> + <head> + <meta content="text/html; charset=windows-1252" + http-equiv="Content-Type"> + </head> + <body bgcolor="#FFFFFF" text="#000000"> + <p>The issue is due to Segwit blocks since Testnet has already + activated Segwit. 0.12.x- nodes will receive a Segwit block with + all of the witnesses stripped. When they relay this block to a + 0.13.0+ node, the block will be rejected because those have Segwit + functionality and require the witnesses to be in the block. Given + that Testnet has a smaller number of nodes and less difficulty, + this could result in some miners using 0.13.0+ mining blocks which + do not propagate well and thus causing multiple chain splits and + reorgs as other miners find blocks for the same height before + receiving a block for that height.<br> + </p> + <br> + <div class="moz-cite-prefix">On 3/23/2017 6:37 PM, Juan Garavaglia + via bitcoin-dev wrote:<br> + </div> + <blockquote +cite="mid:SC1P152MB1648D0F9DF4279C49D755233F53F0@SC1P152MB1648.LAMP152.PROD.OUTLOOK.COM" + type="cite"> + <meta http-equiv="Content-Type" content="text/html; + charset=windows-1252"> + <meta name="Generator" content="Microsoft Word 15 (filtered + medium)"> + <style><!-- +/* Font Definitions */ +@font-face + {font-family:"Cambria Math"; + panose-1:2 4 5 3 5 4 6 3 2 4;} +@font-face + {font-family:Calibri; + panose-1:2 15 5 2 2 2 4 3 2 4;} +/* Style Definitions */ +p.MsoNormal, li.MsoNormal, div.MsoNormal + {margin-top:0in; + margin-right:0in; + margin-bottom:8.0pt; + margin-left:0in; + line-height:106%; + font-size:11.0pt; + font-family:"Calibri",sans-serif;} +a:link, span.MsoHyperlink + {mso-style-priority:99; + color:#0563C1; + text-decoration:underline;} +a:visited, span.MsoHyperlinkFollowed + {mso-style-priority:99; + color:#954F72; + text-decoration:underline;} +span.EmailStyle17 + {mso-style-type:personal-compose; + font-family:"Calibri",sans-serif; + color:windowtext;} +.MsoChpDefault + {mso-style-type:export-only; + font-family:"Calibri",sans-serif;} +@page WordSection1 + {size:8.5in 11.0in; + margin:1.0in 1.0in 1.0in 1.0in;} +div.WordSection1 + {page:WordSection1;} +--></style><!--[if gte mso 9]><xml> +<o:shapedefaults v:ext="edit" spidmax="1026" /> +</xml><![endif]--><!--[if gte mso 9]><xml> +<o:shapelayout v:ext="edit"> +<o:idmap v:ext="edit" data="1" /> +</o:shapelayout></xml><![endif]--> + <div class="WordSection1"> + <p class="MsoNormal" style="margin-left:.5in">We notice some + reorgs in Bitcoin testnet, while reorgs in testnet are common + and may be part of different tests and experiments, it seems + the forks are not created by a single user and multiple blocks + were mined by different users in each chain.� My first + impression was that the problem was related to network issues + but some Bitcoin explorers were following one chain while + others follow the other one.� Nonetheless, well established + explorers like blocktrail.com or blockr.io were following + different chains at different heights which led to me to + believe that it was not a network issue. After some time, a + reorg occurs and it all comes to normal state as a single + chain.<o:p></o:p></p> + <p class="MsoNormal" style="margin-left:.5in">We started + investigating more and we identified that the fork occurs with + nodes 0.12; in some situations, nodes 0.12 has + longer/different chains. The blocks in both chains are valid + so something must be occurring in the communication between + nodes but not related with the network itself.<o:p></o:p></p> + <p class="MsoNormal" style="margin-left:.5in">Long story short, + when nodes 0.13+ receive blocks from 0.13+ nodes all is ok, + and those blocks propagate to older nodes with no issues. But + when a block tries to be propagated from bitcoind 0.12.+ to + newer ones those blocks are NOT being propagated to the peers + with newer versions while these newer blocks are being + propagated to peers with older versions with no issues.<o:p></o:p></p> + <p class="MsoNormal" style="margin-left:.5in">My conclusion is + that we have a backward compatibility issue between 0.13.X+ + and older versions.<o:p></o:p></p> + <p class="MsoNormal" style="margin-left:.5in">The issue is + simple to replicate, first, get latest version of bitcoind, + complete the IBD after is at current height, then force it to + use exclusively one or more peers of versions 0.12.X and + older, and you will notice that the latest version node will + never receive a new block.<o:p></o:p></p> + <p class="MsoNormal" style="margin-left:.5in">Probably some + alternative bitcoin implementations act as bridges between + these two versions and facilitate the chain reorgs.<o:p></o:p></p> + <p class="MsoNormal" style="margin-left:.5in">I have not yet + found any way where/how it can be used in a malicious way or + be exploited by a miner but in theory Bitcoin 0.13.X+ should + remain compatible with older ones, but a 0.13+ node may become + isolated by 0.12 peers, and there is not notice for the node + owner.<o:p></o:p></p> + <p class="MsoNormal"><o:p>�</o:p></p> + </div> + <br> + <fieldset class="mimeAttachmentHeader"></fieldset> + <br> + <pre wrap="">_______________________________________________ +bitcoin-dev mailing list +<a class="moz-txt-link-abbreviated" href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a> +<a class="moz-txt-link-freetext" href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a> +</pre> + </blockquote> + <br> + </body> +</html> + +--------------D2C1106ADBA4B982BB3A2F48-- + |