Return-Path: Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 3D9D2C0891 for ; Sat, 21 Nov 2020 22:59:48 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 29E4D86765 for ; Sat, 21 Nov 2020 22:59:48 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PYRFuKjXpHkz for ; Sat, 21 Nov 2020 22:59:46 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-io1-f66.google.com (mail-io1-f66.google.com [209.85.166.66]) by whitealder.osuosl.org (Postfix) with ESMTPS id 62B49864E6 for ; Sat, 21 Nov 2020 22:59:46 +0000 (UTC) Received: by mail-io1-f66.google.com with SMTP id s10so13846778ioe.1 for ; Sat, 21 Nov 2020 14:59:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to; bh=eO1fgBFhSfV659hJdttE/kyw4D9RiX96bMWzSW1wxDw=; b=Z8WA/CTyIXULoSegMIpNRFfMbbkOgeSOWR3fRlqD8PyDEID5IxqeC0ZaP6Rt4sq2ik VddDrXIbIe753w7LTbLnYistzjOJ7bC3VtOlNgOaO2AbYSrPbtWzGD3Rbo8weCZUcudy X8rqjZRSPzOTJqoKHZghjdazHH8vy30Raj5Olj0H61x53+/A2Po7gHNOpPxXvXbmSTKt 7s1wj+tnLNcQy1RroTkJVvjpsPC1/iK4A7tO00FcgAIe/SSBdz1+SuETFzGxN2mG/r5H dnuhWzkfLmvFfBiL5h/Lo4WdRopfrLmCbLR1nsxa3iaB0IiDwSPK+dLfbN7C49dZ+3lY qZSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to; bh=eO1fgBFhSfV659hJdttE/kyw4D9RiX96bMWzSW1wxDw=; b=dMo+gTTNI70n3JVP1i8Ts5M5KPhSyl8ZMwVOdNHObJQpMymzZpLts4eieCAhbYJ3ae blDJHSnwgurw22UQsmJ2cyfRKdb0AR6iaLqGlkjHXSEd1aUDSBltBIZGEIJv6eaXth0z mto7TZeaw8nwjfJQtDLx4Skfnh0WiGKfnN84kASNFezWLOWkByWTBo09uKxJWHyJAyT3 pZNuKOjq2htsmQMYaeTXmRCKRuhX2K1cO5EmzgIL+j98Fh8NIeFZGeO60YfAFEflUtZu b3X3Xp6IHOHo0xPjnuFQ4L3BSgJFypjCmiC2jFaQVYgQPsvuRiVDdmYR5gV9jRZqiG12 sYyw== X-Gm-Message-State: AOAM532cNLIeoJwAMH3Brs04ILbKkyvjgUOkebFegKqqq8Vvgd+MVDVO 2mcX1cOnoYA2mM6b0bGIsoVeNS7bcp5EuCoyXMhz0Q2AJOk= X-Google-Smtp-Source: ABdhPJw1PiY1K/8BfIGm/yzOxvuwf8J3Y05IAI8Du0snmdYZjvY6PSTvnvH9cu4hy859B46FcdJmcnb2qo0Y+48W4ao= X-Received: by 2002:a02:335b:: with SMTP id k27mr23188644jak.82.1605999585442; Sat, 21 Nov 2020 14:59:45 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: Reply-To: DKBryant@gmail.com From: Dan Bryant Date: Sat, 21 Nov 2020 16:59:36 -0600 Message-ID: To: Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="000000000000ccc6c605b4a5ea4f" X-Mailman-Approved-At: Sun, 22 Nov 2020 00:33:43 +0000 Subject: Re: [bitcoin-dev] Bitcoin Archaeology X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Nov 2020 22:59:48 -0000 --000000000000ccc6c605b4a5ea4f Content-Type: text/plain; charset="UTF-8" I've gathered all the source archives from v0.1.0 to v0.9.0 with the exception of one. I can't get v0.1.2 anywhere. None of the crawlers from Web Archive seemed to have captured it. I realize the build was recalled, but I would still like to examine it purely out of curiosity. Does anyone know of a mirror or have a personal copy of "bitcoin-0.1.2.rar" from 2009 / 2010 that they would be willing to share? Even a checksum would be nice so I could verify what I had if I ever come across it in the future. First and last sighting of it on Web Archive: * http://web.archive.org/web/20091127010808/http://sourceforge.net/projects/bitcoin/files * http://web.archive.org/web/20101210071124/http://sourceforge.net:80/projects/bitcoin/files/Bitcoin/ On Sat, Nov 14, 2020 at 11:41 PM Dan Bryant wrote: > I think I'm set now. I should have everything I need from v0.1.0 to > 0.3.13 when they changed the compiler. I'll refine it a bit more then > eventually start posting the binary builds on the repo below. I might go > ahead and disable the IRC bot to ensure people don't inadvertently spam the > `#bitcoin` IRC. Since I have a patch process worked out it should be > fairly straight forward. Since the official builds pickup at v0.8.6, I'll > likely stop there. > > https://github.com/brianddk/bitcoin-archaeology > > > On Sat, Nov 14, 2020 at 11:00 AM Dan Bryant wrote: > >> Finally got it working,but was a bit harder than I expected. I had to >> forgo the OpenSSL modifications that Satoshi originally suggested. I also >> switched to Strawberry Perl. Those two changes seemed to fix the OpenSSL >> build. Everything else was all essentially as documented in v0.4.0, which >> is the first version to put all the build steps out in detail. The one >> exception is the bitcoin build itself. There are three minor issues that >> can be worked around with copy commands. >> >> 1. The Makefile points to /wxWidgets/lib/vc_lib/ where it should really >> point to /wxWidgets/lib/gcc_lib/ >> 2. The Makefile points to /OpenSSL/include where it should really point >> to /OpenSSL/outinc >> 3. The Makefile builds to /obj without first creating the directory >> >> That covers v0.1.5, and I think it will probably be smooth sailing from >> there all the way to v0.4.0. I'll verify that my v0.1.5 toolchain can >> build v0.1.0 and v0.1.3 as well. For anyone interested, here are the >> binaries I used to create the build environment. All of them are >> vintage and would have been accessible to Satoshi with the exception of >> Win2012 and VirtualBox. I'll try to reproduce my work on a Win2000 which >> is now quasi-open-domain. >> >> For anyone wanting to give it a shot... >> >> * https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2012 >> * >> https://download.virtualbox.org/virtualbox/6.1.12/VirtualBox-6.1.12-139181-Win.exe >> * https://downloads.sourceforge.net/gnuwin32/zlib-1.2.3-bin.zip >> * https://downloads.sourceforge.net/gnuwin32/bzip2-1.0.5-bin.zip >> * https://downloads.sourceforge.net/gnuwin32/libarchive-2.4.12-1-bin.zip >> * >> https://downloads.sourceforge.net/mingw/binutils-2.19.1-mingw32-bin.tar.gz >> * >> https://downloads.sourceforge.net/mingw/gcc-core-3.4.5-20051220-1.tar.gz >> * https://downloads.sourceforge.net/mingw/gcc-g++-3.4.5-20051220-1.tar.gz >> * >> https://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dev.tar.gz >> * >> https://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dll.tar.gz >> * https://downloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz >> * >> https://downloads.sourceforge.net/mingw/mingw32-make-3.81-20080326-2.tar.gz >> * https://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe >> * https://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe >> * http://strawberryperl.com/download/5.8.8/strawberry-perl-5.8.8.2.zip >> * https://github.com/bitcoin/bitcoin/archive/v0.1.5.zip >> * https://downloads.sourceforge.net/wxwindows/wxWidgets-2.8.11.zip >> * https://github.com/openssl/openssl/archive/OpenSSL_0_9_8h.zip >> * https://download.oracle.com/berkeley-db/db-4.7.25.NC.zip >> * https://downloads.sourceforge.net/boost/1.37.0/boost_1_37_0.zip >> * >> https://downloads.sourceforge.net/boost/boost-jam/boost-jam-3.1.17-1-ntx86.zip >> >> >> On Wed, Nov 11, 2020 at 9:06 AM Dan Bryant wrote: >> >>> TLDR; How to build old OpenSSL releases in MSYS/MinGW v1.0.11 >>> >>> In a similar vein to the Github Artic Code Vault, and the Nakamoto >>> Institute, I thought it would be educational to do a build of the first >>> three versions of Bitcoin (v0.1.0, v0.1.3, and v0.1.5) [ref1]. Don't >>> worry, I will keep these on a VLAN and not spam the IRC channel. >>> >>> Wanting to be as accurate as possible, I spun up some VMs to try to >>> recreate the vintage Oct 2009 toolchains that were used. The original >>> Satoshi posts seem to imply that the builds could be done using Visual C++ >>> version 6.0 or MinGW and MSYS (which were at v1.0.11). Since it looks like >>> most versions of VC 6 have been purged from the internet, the only option >>> left is MinGW which is still up on sourceforge. Most things seemed to >>> build OK, with the exception of OpenSSL, which looks to fail due to some >>> issues in mk1mf.pl [ref2] Perhaps there was a bad version of perl in >>> MSYS v1.0.11, I'm not sure. >>> >>> So my question is.. Has anyone been here long enough to recall the >>> steps to build OpenSSL v0.9.8h in MSYS 1.0.11? Or, does anyone know where >>> to find a non-sketchy copy of Visual C++ 6.0? >>> >>> My options so far seem to be. >>> >>> 1. Try to find out how Satoshi did the MinGW OpenSSL build back in 2009. >>> 2. Try to do the OpenSSL build through Cygwin which could >>> cross-complile to MinGW at the time >>> 3. Try to do the OpenSSL build through Msys2 with later versions of >>> perl and libc >>> 4. Buy some sketchy version of VC 6 on ebay and try that >>> 5. Patch Bitcoin 0.1.0 to use OpenSSL v1.0.0 where they fixed the perl >>> bug >>> 6. Give up and use a precompiled OpenSSL release >>> 7. Give up and use the Linux build methods introduced in Bitcoin v0.1.6 >>> >>> I realize this all sounds like a fool's folly, but it seems important >>> (at some level) to be able to reproduce these old builds. But perhaps it's >>> just my OCD. >>> >>> Thoughts? >>> >>> For those interested. The mk1mf.pl bug seems to be in parsing the list >>> of headers through either the var_add, clean_up_ws, or do_copy_rule subs. >>> I see both the headers and header directories being parsed, but the >>> directories are dropped when building the make rules causing make to assume >>> all headers are at root, failing the build. Perhaps there is a version >>> sed, basename or dirname that is missing in MSYS, but I've failed to find >>> the dependency yet. >>> >>> * ref1: https://satoshi.nakamotoinstitute.org/code/ >>> * ref1: >>> https://github.com/openssl/openssl/blob/OpenSSL_0_9_8h/util/mk1mf.pl >>> >>> --000000000000ccc6c605b4a5ea4f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I've gathered all the source archives from v0.1.0 to v= 0.9.0 with the exception of one.

I can't get v0.1.2 = anywhere.=C2=A0 None of the crawlers from Web Archive seemed to have captur= ed it.=C2=A0 I realize the build was recalled, but I would still like to ex= amine it purely out of curiosity.

Does anyone know= of a mirror or have a personal copy of "bitcoin-0.1.2.rar" from = 2009 / 2010 that they would be willing to share?=C2=A0 Even a checksum woul= d be nice so I could verify what I had if I ever come across it in the futu= re.

First and last sighting of it on Web Archive:<= /div>


I think I'= ;m set now.=C2=A0 I should have everything I need from v0.1.0 to 0.3.13 whe= n they changed the compiler.=C2=A0 I'll refine it a bit more then event= ually start posting the binary builds on the repo below.=C2=A0 I might go a= head and disable the IRC bot to ensure people don't inadvertently spam = the `#bitcoin` IRC.=C2=A0 Since I have a patch process worked out it should= be fairly straight forward.=C2=A0 Since the official=C2=A0builds pickup at= v0.8.6, I'll likely stop there.

https://github.= com/brianddk/bitcoin-archaeology


On Sat, Nov 14, 2020= at 11:00 AM Dan Bryant <dkbryant@gmail.com> wrote:
Finally got it working,but was = a bit harder than I expected.=C2=A0 I had to forgo the OpenSSL modification= s that Satoshi originally suggested.=C2=A0 I also switched to Strawberry Pe= rl.=C2=A0 Those two changes seemed to fix the OpenSSL build.=C2=A0 Everythi= ng else was all essentially as documented in v0.4.0, which is the first ver= sion to put all the build steps out in detail.=C2=A0 The one exception is t= he bitcoin build itself.=C2=A0 There are three minor issues that can be wor= ked around with copy commands.

1. The Makefile points to= /wxWidgets/lib/vc_lib/ where it should really point to /wxWidgets/lib/gcc= _lib/
2. The Makefile points to /OpenSSL/include where it should reall= y point to /OpenSSL/outinc
3. The Makefile builds to /obj without first creating the direct= ory

That covers v0.1.5, and I think it will probab= ly be smooth sailing from there all the way to v0.4.0.=C2=A0 I'll verif= y that my v0.1.5 toolchain can build v0.1.0 and v0.1.3 as well.=C2=A0 For a= nyone interested, here are the binaries I used to create the build environm= ent.=C2=A0 All of them are vintage=C2=A0and would have been accessible to S= atoshi with the exception of Win2012 and VirtualBox.=C2=A0 I'll try to = reproduce my work on a Win2000 which is now quasi-open-domain.
For anyone wanting to give it a shot...

* https://www.microsoft.com/en-us/evalcenter/= evaluate-hyper-v-server-2012
* https://download.virtualbox.org/virtualbox/6.1.12/VirtualBox-6.1.12-139181= -Win.exe
* https://downloads.sourceforge.net/gnuwin= 32/zlib-1.2.3-bin.zip
* https://downloads.sourcefo= rge.net/gnuwin32/bzip2-1.0.5-bin.zip
* htt= ps://downloads.sourceforge.net/gnuwin32/libarchive-2.4.12-1-bin.zip
= * https://downloads.sourceforge.net/mingw/bin= utils-2.19.1-mingw32-bin.tar.gz
* https:= //downloads.sourceforge.net/mingw/gcc-core-3.4.5-20051220-1.tar.gz
*= https://downloads.sourceforge.net/mingw/gcc-g++= -3.4.5-20051220-1.tar.gz
* https://down= loads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dev.tar.gz
* https://downloads.sourceforge.net/mingw/mingwrt-3.= 15.2-mingw32-dll.tar.gz
* https://download= s.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz
* https://downloads.sourceforge.net/mingw/mingw32-make-3.= 81-20080326-2.tar.gz
* https://downloads.sourceforge.net/= mingw/MSYS-1.0.11.exe
* https://downloads.sourceforge.n= et/mingw/msysDTK-1.0.1.exe
* http://strawber= ryperl.com/download/5.8.8/strawberry-perl-5.8.8.2.zip
* htt= ps://github.com/bitcoin/bitcoin/archive/v0.1.5.zip
* https://downloads.sourceforge.net/wxwindows/wxWidgets-2.8.11.zip* https://github.com/openssl/openssl/archive/OpenSSL_0_9= _8h.zip
* https://download.oracle.com/berkeley-db/db-4.7= .25.NC.zip
* https://downloads.sourceforge.net/bo= ost/1.37.0/boost_1_37_0.zip
* http= s://downloads.sourceforge.net/boost/boost-jam/boost-jam-3.1.17-1-ntx86.zip<= /a>


TLDR; How to build old OpenSSL releases in MSYS/MinG= W v1.0.11

In a similar vein to the Github Artic Code Va= ult, and the Nakamoto Institute, I thought it would be educational to do a = build of the first three versions of Bitcoin (v0.1.0, v0.1.3, and v0.1.5) [= ref1].=C2=A0 Don't worry, I will keep these on a VLAN and not spam the = IRC channel.

Wanting to be as accurate=C2=A0as possible,= I spun up some VMs to try to recreate the vintage Oct 2009 toolchains that= were used.=C2=A0 The original Satoshi posts seem to imply that the builds = could be done using Visual C++ version 6.0 or MinGW and MSYS (which were at= v1.0.11).=C2=A0 Since it looks like most versions of VC 6 have been purged= from the internet, the only option left is MinGW which is still up on sour= ceforge.=C2=A0 Most things seemed to build OK, with the exception of OpenSS= L, which looks to fail due to some issues in mk1mf.pl [ref2]=C2=A0 Perhaps there was a bad version o= f perl in MSYS v1.0.11, I'm not sure.

So my qu= estion is..=C2=A0 Has anyone been here long enough to recall the steps to b= uild OpenSSL v0.9.8h in MSYS 1.0.11?=C2=A0 Or, does anyone know where to fi= nd a non-sketchy=C2=A0copy of Visual C++ 6.0?

My o= ptions so far seem to be.

1. Try to find out how S= atoshi did the MinGW OpenSSL build back in 2009.
2. Try to do the= OpenSSL build through Cygwin which could cross-complile=C2=A0to MinGW at t= he time
3. Try to do the=C2=A0 OpenSSL build through Msys2 with later versions of perl and libc
= 4. Buy some sketchy version of VC 6 on ebay and try that
5. Patch= Bitcoin 0.1.0 to use OpenSSL v1.0.0 where they fixed the perl bug
6. Give up and use a precompiled=C2=A0OpenSSL release
7. Give u= p and use the Linux build methods introduced in Bitcoin v0.1.6
I realize this all sounds like a fool's folly, but it seem= s important (at some level) to be able to reproduce=C2=A0these old builds.= =C2=A0 But perhaps it's just my OCD.

Thoughts?=

For those interested.=C2=A0 The mk1mf.pl bug seems to be in parsing the li= st of headers through either the var_add,=C2=A0clean_up_ws, or=C2=A0do_copy= _rule subs.=C2=A0 I see both the headers and header directories being parse= d, but the directories are dropped when building the make rules causing mak= e to assume all headers are at root, failing the build.=C2=A0 Perhaps there= is a version sed, basename or dirname that is missing in MSYS, but I'v= e failed to find the dependency yet.


--000000000000ccc6c605b4a5ea4f--