Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should we still ship 32-bit x86 Linux binaries? #17504

Open
laanwj opened this issue Nov 18, 2019 · 19 comments
Open

Should we still ship 32-bit x86 Linux binaries? #17504

laanwj opened this issue Nov 18, 2019 · 19 comments

Comments

@laanwj
Copy link
Member

@laanwj laanwj commented Nov 18, 2019

I don't think there's any hurry to do this, just opening an issue as #17503 made me wonder.

In general, running bitcoind in 64 bit is unarguably better. 64-bit registers result in better validation performance and it allows leveldb to use mmap without worrying about virtual memory usage.

Back in the day, the rationale for removing 32-bit x86 builds for Windows but not Linux was that some cheapo VPS still used x86-32 bit.

Is this still the case in the year of (almost) 2020? Is anyone running x86-32 VMs for other purposes than testing software on that architecture? Even with that, how much testing are these binaries getting?

(to be clear, I'm not arguing to remove support for 32-bit, just to stop building and providing binaries for it. I also think ARM is a different matter.)

@hebasto

This comment has been minimized.

Copy link
Member

@hebasto hebasto commented Nov 18, 2019

Agree to keep building and providing 32-bit binaries for ARM only.

@practicalswift

This comment has been minimized.

Copy link
Member

@practicalswift practicalswift commented Nov 18, 2019

Agreed. I think it makes sense to stop shipping 32-bit x86 Linux binaries.

More generally I think we should avoid providing binaries for obsolete or soon-to-be-obsolete platforms where we are uncertain about the amount of real world testing.

See some additional arguments in the somewhat related PR #16096 ("RFC: Improving testing under the remaining supported 32 bit platforms").

@emilengler

This comment has been minimized.

Copy link
Contributor

@emilengler emilengler commented Nov 20, 2019

I'm neutral on this.
I don't use Bitcoin Core on any 32-bit device but there might be some people who don't know how to compile something and wanna run a full node on a very old (32-bit) computer that is no longer in productive use and I think it should never be complicated to setup a full node. I count the use of bitcoind and compiling as too complicated for the average user.

@laanwj

This comment has been minimized.

Copy link
Member Author

@laanwj laanwj commented Nov 20, 2019

@emilengler The last 32-bit only physical Intel processor for general use was introduced in 2006. I don't think we have to worry that any are usable for running full validating nodes.
I'm only potentially worried about VPS here.

@MarcoFalke

This comment has been minimized.

Copy link
Member

@MarcoFalke MarcoFalke commented Nov 25, 2019

Freedesktop has stopped shipping 32bit runtimes for flatpak: https://gitlab.com/freedesktop-sdk/freedesktop-sdk/commit/1fa7b7b9e590b31601c2091edcd6dc3ea2e4f132 , so we will be unable to distribute the 32 bit flatpak in the long term: flathub/org.bitcoincore.bitcoin-qt#2 (comment)

I think if someone really wants to run on 32 bit, they can simply compile from source.

@MarcoFalke

This comment has been minimized.

Copy link
Member

@MarcoFalke MarcoFalke commented Nov 25, 2019

Also, starting with Ubuntu Bionic 18.04 and Fedora 31, neither OS will ship 32 bit iso images.

@MarcoFalke

This comment has been minimized.

Copy link
Member

@MarcoFalke MarcoFalke commented Nov 25, 2019

Similar to windows XP, what about we send out a tweet and a post to the mailing list asking if it would significantly hinder someone from running Bitcoin Core if the i686 builds were removed?

@A6GibKm

This comment has been minimized.

Copy link

@A6GibKm A6GibKm commented Nov 25, 2019

Independent of the choice, providing support for 32bit should also mean to provide a 32bit binary, and, of course, providing a binary means that there is support for it. So I don't much see space for 32bit support and no 32bit binary being shipped.

@laanwj

This comment has been minimized.

Copy link
Member Author

@laanwj laanwj commented Nov 25, 2019

So I don't much see space for 32bit support and no 32bit binary being shipped.

I disagree. There are more or less orthogonal. There's plenty of architecture/OS combinations that can run bitcoin core, and we'd try to fix (or at least take PRs for) if it no longer worked, but don't ship executables for.

Similar to windows XP, what about we send out a tweet and a post to the mailing list asking if it would significantly hinder someone from running Bitcoin Core if the i686 builds were removed?

Could do that at some point. I don't use twitter myself at the moment. I did ask on mastodon though, but got no response there.

@greenaddress

This comment has been minimized.

Copy link
Contributor

@greenaddress greenaddress commented Dec 16, 2019

If this is about 'shipping' only then no feedback - but in terms of being able to build for linux 32 bit FYI I still use that to make NDK builds (requires arm, arm64, i686 and x86_64) - although I imagine not many new devices are i686 now

@laanwj

This comment has been minimized.

Copy link
Member Author

@laanwj laanwj commented Dec 16, 2019

@A6GibKm

This comment has been minimized.

Copy link

@A6GibKm A6GibKm commented Dec 17, 2019

It would be still interesting to know how many clients are i686. But I am sure that even reporting arch is a bad practice from a privacy perspective.

@luke-jr

This comment has been minimized.

Copy link
Member

@luke-jr luke-jr commented Jan 3, 2020

A 32-bit VPS is likely to be to reduce RAM usage (which is usually the bottleneck on cheap VPSs). So 32-bit users are also likely to not have the RAM to compile their own (on the VPS).

That being said, I don't know that it makes sense to support cheap VPSs: full nodes exist for providing trust/security, and cheap VPSs are generally insecure by nature.

@MarcoFalke

This comment has been minimized.

Copy link
Member

@MarcoFalke MarcoFalke commented Jan 9, 2020

I sent a note out to the mailing list: https://lists.linuxfoundation.org/pipermail/bitcoin-core-dev/2020-January/000085.html
Could someone do the same for our twitter, maybe?

@laanwj

This comment has been minimized.

Copy link
Member Author

@laanwj laanwj commented Jan 10, 2020

So 32-bit users are also likely to not have the RAM to compile their own (on the VPS).

OTOH compilation takes a lot less memory on 32 bit, too. But it's a good point.

@sha-265

This comment has been minimized.

Copy link

@sha-265 sha-265 commented Jan 10, 2020

How much RAM do I need to compile 32-bit build? I'm using the 32-bit build and I'm trying to figure out if I'll be able to compile it myself.

@MarcoFalke

This comment has been minimized.

Copy link
Member

@MarcoFalke MarcoFalke commented Jan 10, 2020

With debug symbols disabled and clang, it should use less than 1 GB. See https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md#memory-requirements

@sha-265

This comment has been minimized.

Copy link

@sha-265 sha-265 commented Jan 10, 2020

Thanks, I think I will be able to compile by myself.

@cryptozeny

This comment has been minimized.

Copy link

@cryptozeny cryptozeny commented Jan 10, 2020

Should we still ship 32-bit x86 Linux binaries?

in case VPS, i guess nobody use linux32 binary or architecture.

So 32-bit users are also likely to not have the RAM to compile their own (on the VPS).

good point

In general, running bitcoind in 64 bit is unarguably better. 64-bit registers result in better validation performance and it allows leveldb to use mmap without worrying about virtual memory usage.

totally agreed

Is anyone running x86-32 VMs for other purposes than testing software on that architecture? Even with that, how much testing are these binaries getting?

i feel nobody use linux32 on their VPS nowadays

I also think ARM is a different matter.

yeah

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
10 participants
You can’t perform that action at this time.