[prev in list] [next in list] [prev in thread] [next in thread]
List: bitcoin-dev
Subject: Re: [bitcoin-dev] Bitcoin Archaeology
From: Dan Bryant via bitcoin-dev <bitcoin-dev () lists ! linuxfoundation ! org>
Date: 2020-11-21 22:59:36
Message-ID: CAAUFj12m2cQhsEtk0XcFQjurgwKHtJHHpfWZ3shZWeM3Ac==uw () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
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 <dkbryant@gmail.com> 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 <dkbryant@gmail.com> 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 <dkbryant@gmail.com> 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
>>>
>>>
[Attachment #5 (text/html)]
<div dir="ltr">I've gathered all the source archives from v0.1.0 to v0.9.0 with \
the exception of one.<div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>First and last sighting of it on \
Web Archive:</div><div><br></div><div>* <a \
href="http://web.archive.org/web/20091127010808/http://sourceforge.net/projects/bitcoi \
n/files">http://web.archive.org/web/20091127010808/http://sourceforge.net/projects/bitcoin/files</a></div><div>* \
<a href="http://web.archive.org/web/20101210071124/http://sourceforge.net:80/projects/ \
bitcoin/files/Bitcoin/">http://web.archive.org/web/20101210071124/http://sourceforge.net:80/projects/bitcoin/files/Bitcoin/</a><br></div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Nov 14, 2020 at 11:41 \
PM Dan Bryant <<a href="mailto:dkbryant@gmail.com">dkbryant@gmail.com</a>> \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>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.</div><div><br></div><a \
href="https://github.com/brianddk/bitcoin-archaeology" \
target="_blank">https://github.com/brianddk/bitcoin-archaeology</a><br><div><br></div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Nov 14, 2020 at 11:00 \
AM Dan Bryant <<a href="mailto:dkbryant@gmail.com" \
target="_blank">dkbryant@gmail.com</a>> wrote:<br></div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr">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.<div><br></div><div>1. The Makefile points to \
/wxWidgets/lib/vc_lib/ where it should really point to /wxWidgets/lib/gcc_lib/
</div><div>2. The Makefile points to /OpenSSL/include where it should really point to \
/OpenSSL/outinc
</div><div>3. The Makefile builds to /obj without first creating the \
directory</div><div><br></div><div>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.</div><div><br></div><div>For anyone wanting to give it a \
shot...</div><div><br></div><div>* <a \
href="https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2012" \
target="_blank">https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2012</a><br>* \
<a href="https://download.virtualbox.org/virtualbox/6.1.12/VirtualBox-6.1.12-139181-Win.exe" \
target="_blank">https://download.virtualbox.org/virtualbox/6.1.12/VirtualBox-6.1.12-139181-Win.exe</a><br>* \
<a href="https://downloads.sourceforge.net/gnuwin32/zlib-1.2.3-bin.zip" \
target="_blank">https://downloads.sourceforge.net/gnuwin32/zlib-1.2.3-bin.zip</a><br>* \
<a href="https://downloads.sourceforge.net/gnuwin32/bzip2-1.0.5-bin.zip" \
target="_blank">https://downloads.sourceforge.net/gnuwin32/bzip2-1.0.5-bin.zip</a><br>* \
<a href="https://downloads.sourceforge.net/gnuwin32/libarchive-2.4.12-1-bin.zip" \
target="_blank">https://downloads.sourceforge.net/gnuwin32/libarchive-2.4.12-1-bin.zip</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/binutils-2.19.1-mingw32-bin.tar.gz" \
target="_blank">https://downloads.sourceforge.net/mingw/binutils-2.19.1-mingw32-bin.tar.gz</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/gcc-core-3.4.5-20051220-1.tar.gz" \
target="_blank">https://downloads.sourceforge.net/mingw/gcc-core-3.4.5-20051220-1.tar.gz</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/gcc-g++-3.4.5-20051220-1.tar.gz" \
target="_blank">https://downloads.sourceforge.net/mingw/gcc-g++-3.4.5-20051220-1.tar.gz</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dev.tar.gz" \
target="_blank">https://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dev.tar.gz</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dll.tar.gz" \
target="_blank">https://downloads.sourceforge.net/mingw/mingwrt-3.15.2-mingw32-dll.tar.gz</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz" \
target="_blank">https://downloads.sourceforge.net/mingw/w32api-3.13-mingw32-dev.tar.gz</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/mingw32-make-3.81-20080326-2.tar.gz" \
target="_blank">https://downloads.sourceforge.net/mingw/mingw32-make-3.81-20080326-2.tar.gz</a><br>* \
<a href="https://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe" \
target="_blank">https://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe</a><br>* <a \
href="https://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe" \
target="_blank">https://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe</a><br>* <a \
href="http://strawberryperl.com/download/5.8.8/strawberry-perl-5.8.8.2.zip" \
target="_blank">http://strawberryperl.com/download/5.8.8/strawberry-perl-5.8.8.2.zip</a><br>* \
<a href="https://github.com/bitcoin/bitcoin/archive/v0.1.5.zip" \
target="_blank">https://github.com/bitcoin/bitcoin/archive/v0.1.5.zip</a><br>* <a \
href="https://downloads.sourceforge.net/wxwindows/wxWidgets-2.8.11.zip" \
target="_blank">https://downloads.sourceforge.net/wxwindows/wxWidgets-2.8.11.zip</a><br>* \
<a href="https://github.com/openssl/openssl/archive/OpenSSL_0_9_8h.zip" \
target="_blank">https://github.com/openssl/openssl/archive/OpenSSL_0_9_8h.zip</a><br>* \
<a href="https://download.oracle.com/berkeley-db/db-4.7.25.NC.zip" \
target="_blank">https://download.oracle.com/berkeley-db/db-4.7.25.NC.zip</a><br>* <a \
href="https://downloads.sourceforge.net/boost/1.37.0/boost_1_37_0.zip" \
target="_blank">https://downloads.sourceforge.net/boost/1.37.0/boost_1_37_0.zip</a><br>* \
<a href="https://downloads.sourceforge.net/boost/boost-jam/boost-jam-3.1.17-1-ntx86.zip" \
target="_blank">https://downloads.sourceforge.net/boost/boost-jam/boost-jam-3.1.17-1-ntx86.zip</a><br></div><div><br></div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 11, 2020 at 9:06 AM \
Dan Bryant <<a href="mailto:dkbryant@gmail.com" \
target="_blank">dkbryant@gmail.com</a>> wrote:<br></div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>TLDR; How to build old OpenSSL \
releases in MSYS/MinGW v1.0.11</div><div><br></div>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.<div><br></div><div>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 <a href="http://mk1mf.pl" \
target="_blank">mk1mf.pl</a> [ref2] Perhaps there was a bad version of perl in MSYS \
v1.0.11, I'm not sure.</div><div><br></div><div>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?</div><div><br></div><div>My options so far seem to \
be.</div><div><br></div><div>1. Try to find out how Satoshi did the MinGW OpenSSL \
build back in 2009.</div><div>2. Try to do the OpenSSL build through Cygwin which \
could cross-complile to MinGW at the time</div><div>3. Try to do the
OpenSSL build through Msys2 with later versions of perl and libc</div><div>4. Buy \
some sketchy version of VC 6 on ebay and try that</div><div>5. Patch Bitcoin 0.1.0 to \
use OpenSSL v1.0.0 where they fixed the perl bug</div><div>6. Give up and use a \
precompiled OpenSSL release</div><div>7. Give up and use the Linux build methods \
introduced in Bitcoin v0.1.6</div><div><br></div><div>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.</div><div><br></div><div>Thoughts?</div><div><br></div><div>For those \
interested. The <a href="http://mk1mf.pl" target="_blank">mk1mf.pl</a> 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.</div><div><br></div><div>* ref1: <a \
href="https://satoshi.nakamotoinstitute.org/code/" \
target="_blank">https://satoshi.nakamotoinstitute.org/code/</a></div><div>* ref1: <a \
href="https://github.com/openssl/openssl/blob/OpenSSL_0_9_8h/util/mk1mf.pl" \
target="_blank">https://github.com/openssl/openssl/blob/OpenSSL_0_9_8h/util/mk1mf.pl</a><br></div><div><br></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic