Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 0C8CD941 for ; Thu, 15 Dec 2016 03:39:17 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from p3nlsmtpcp01-01.prod.phx3.secureserver.net (p3nlsmtpcp01-01.prod.phx3.secureserver.net [184.168.200.138]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 830E017B for ; Thu, 15 Dec 2016 03:39:16 +0000 (UTC) Received: from p3plcpnl0155.prod.phx3.secureserver.net ([184.168.200.186]) by : HOSTING RELAY : with SMTP id HMs2cs7WPYiSRHMs2crOvg; Wed, 14 Dec 2016 20:38:14 -0700 Received: from [127.0.0.1] (port=58289 helo=p3plcpnl0155.prod.phx3.secureserver.net) by p3plcpnl0155.prod.phx3.secureserver.net with esmtpa (Exim 4.87) (envelope-from ) id 1cHMs2-0004jR-M0 for bitcoin-dev@lists.linuxfoundation.org; Wed, 14 Dec 2016 20:38:14 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 14 Dec 2016 20:38:09 -0700 From: jg@112bit.com To: Bitcoin Dev In-Reply-To: References: Message-ID: <615c88d2a1263810923705c170b25d33@112bit.com> X-Sender: jg@112bit.com User-Agent: Roundcube Webmail/1.1.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - p3plcpnl0155.prod.phx3.secureserver.net X-AntiAbuse: Original Domain - lists.linuxfoundation.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - 112bit.com X-Get-Message-Sender-Via: p3plcpnl0155.prod.phx3.secureserver.net: authenticated_id: jg@112bit.com X-Authenticated-Sender: p3plcpnl0155.prod.phx3.secureserver.net: jg@112bit.com X-Source: X-Source-Args: X-Source-Dir: X-CMAE-Envelope: MS4wfAxZ5WRLDXsA6vh1iFEq9OJ6Z2pBKSaiM4t5yc0tgPrDvlC1f+4Vw1q4UW6egWOzs/yLWWnDEI1phpX2myqFN/EK+6zTKRQy88/E3Zy5wx5AdbnLOn8C MTfWb0m3jhV4viAslgMlCEtyyoHj7djWAbvtxA/p1QF8c5WLRvzRPjRnUDKJjZ9UyDpMRdFPKqd/5iuYBCh/6DTWv87lxCK0PQ6a9b/MRPksCAEnHHnbiTT3 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Thu, 15 Dec 2016 15:57:06 +0000 Subject: [bitcoin-dev] Planned Obsolescence X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Dec 2016 03:39:17 -0000 Today according to the stats at https://bitnodes.21.co/nodes/ the top 10 Bitcoin running node versions are: 1. _Version Satoshi:0.13.1 _Nodes 2071 _38.97% 2. _Version Satoshi:0.12.1 _Nodes 1022 _19.23% 3. Satoshi:0.13.0 _Nodes 604 _11.36% 4. Bitcoin Unlimited:0.12.1 _Nodes 373 _7.02% 5. Satoshi:0.11.2 _Nodes 183 _3.44% 6. Satoshi:0.12.0 _Nodes 131 _2.46% 7. Satoshi:0.13.99 _Nodes 122 _2.30% 8. Satoshi:0.11.0 _Nodes 87 _1.64% 9. BTCC:0.13.1 _Nodes 53 _1.00% 10. Satoshi:0.10.2 _Nodes 52 _0.98% Other _Nodes 617 _11.61% There are 75 different versions of visible nodes on the network. More than 30% of the nodes running Bitcoin Core are running versions older than 0.13.0. For reasons I am unable to determine a significant number of node operators do not upgrade their clients. I also know newer versions require the same or fewer hardware resources to run than the same network requirements as older versions of the client. Older node versions may generate issues because some upgrades will make several of the nodes running older protocol versions obsolete and or incompatible. There may be other hard to predict behaviors on older versions of the client. In order to avoid such wide fragmentation of "Bitcoin Core” node versions and to help there be a more predictable protocol improvement process, I consider it worth it to analyze introducing some planned obsolescence in each new version. In the last year we had 4 new versions so if each version is valid for about 1 year (52560 blocks) this may be a reasonable time frame for node operators to upgrade. If a node does not upgrade it will stop working instead of participating in the network with an outdated protocol version. These changes may also simplify the developer's jobs in some cases by avoiding them having to deal with ancient versions of the client. Regards Juan Garavaglia