[BTC-dev] The Bitcoin Foundation: STATE OF BITCOIN ADDRESS

Shane Kinney modsix at gmail.com
Mon Feb 2 04:47:45 UTC 2015

Hash: SHA512

 ..::[ The Bitcoin Foundation: STATE OF BITCOIN ADDRESS ]::..

     [        Date: 2015.01.31                          ]
     [   Co-Chairs: mod6 [R.01] && ben_vulpes [R.02]    ]

0x00] Introduction

   It is with great honor and privilege that The Bitcoin Foundation embraces
   this opportunity to address the public on the state of current progress,
   obstacles and continuing steps in our mission.

   January saw a blizzard of activity and endless discussion. The Foundation
   spent its time running debuggers, profiling the Reference Implementation's
   memory use, writing scripts to reliably trim the 0.5.3 Satoshi codebase
   into a usable form, and towards the end of the month, patching the very
   servers on which the Reference Implementation testing happens.
   The Foundation and its supporters also laid down many log lines on the
   topics of: ideal blockchain download behaviour; minimum feature set for the
   Reference Implementation "node"; and versioning schemes, among many other

0x01] Accomplishments

   [ Root Cause Out Of Memory Crash / Full Sync Defect ]:

     We spent much time testing, debugging, and memory profiling to track down
     a recurring crash during initial sync. The daemon eventually exhausts all
     available memory, which in turn triggers the kernel to issue the SIGKILL.
     The discovered root cause of the OOM-kill: the mapOrphanBlocks data
     structure grows unboundedly.

   [ Tabling of Checkpoints Patch ]:

     During the course of last month, mod6 developed a patch to remove block
     checkpoints. The removal of this in its entirety is a bit premature and
     will be tabled for the time being.  Later, the configuration for the
     checkpoints will most likely be moved outside of the Reference
     Implementation code and into a configuration file.

   [ Update Version Numbers ]:

     In accordance with The Bitcoin Foundations goal to produce a patched
     release of the source code, a patch was required to update to the new
     version number.  ben_vulpes [R.02] produced this patch [R.03] and the new
     version number has been decided:

   [ Patch & Compile Script ]:

     Throughout the month individuals have requested a script to automate the
     patching and building of the v0.5.3 codebase with submitted patches to
     assist with regression testing.  mod6 [R.01] undertook this task; however,
     this task does come with challenges.  Mainly this comes down to people
     using different environments and different versions of binaries.  We are
     actively working to resolve the issues in the script prototype.  When it's
     ready for general consumption, a link to the script and a signature file
     will be posted to the website [R.04].  The foundation would like to thank
     all of those who helped to test this script.  Also, special thanks to
     jurov [R.05] for his help to squash bugs.

   [ Portatronic ]:

     asciilifeform [R.06] has embarked on a project to convert "Pogo plugs" into
     field-ready 0.5.3 nodes. This entails scripting the coercion of the Pogo
     from its shipped state into one capable of running a full reference node.
     This project is ongoing and been exiting to watch - currently about
     190`000 blocks have been downloaded by the functional prototype.
     The Foundation applauds his work.

0x02] Complications and Obstacles

   [ Orphans / Lost Children / Disconnected Blocks ]:

     The unbounded "orphan blocks" data structure referenced above is a symptom
     of deeper and more concerning flaws in the Reference Implementation
     codebase.  Currently, blocks are consumed from one host until it can no
     longer, then moves on to another host.  Often, these blocks are received
     out of order, which causes these disconnected blocks (a.k.a. ``Orphans'')
     to pile up inside of the data structure until the host has exhausted all
     available memory.

0x03] Continuing Steps

   [ Orphans / Lost Children / Disconnected Blocks ]:

     We will begin to formulate a proposed solution to this issue in the near

   [ Patch & Compile Script ]:

     We are in the home stretch of producing and debugging a robust script that
     takes a vintage 0.5.3 codebase, automatically prunes it and then patches it
     in the correct order. When this script is thoroughly vetted and ready for
     public use we will post it to the Foundation's website.

   [ Release Package ]:

     The Bitcoin Foundation aims to make a release of the patched Reference
     Implementation in February, provided all regression testing passes as
     required.  When the release is complete it will be posted to the
     btc-dev [R.07] mailing list as well as the Foundation website [R.04].

0x04] Conclusion

   The Bitcoin Foundation would like bestow our sincerest thanks and gratitude
   to the contributors and community for its support and insight.

[ References ]:
  [R.01]: 027A 8D7C 0FB8 A166 4372 0F40 7217 05A8 B71E ADAF
  [R.02]: 4F79 0794 2CA8 B89B 01E2 5A76 2AFA 1A9F D2D0 31DA
  [R.03]: http://thebitcoin.foundation/ml/btc-dev/2015-January/000029.html
  [R.04]: http://thebitcoin.foundation
  [R.05]: BBB0 A999 5003 7551 F533 850A 677A BD62 D0AE E7D7
  [R.06]: 1721 5D11 8B72 3950 7FAF ED98 B982 28A0 01AB FFC7
  [R.07]: http://thebitcoin.foundation/mailman/listinfo/btc-dev

Version: GnuPG v1.4.13 (FreeBSD)


More information about the BTC-dev mailing list