Boost C++ won't even install on a 2GB Server

in #blogyesterday (edited)

Thanks for all the supporters for Proposal: Fixing Steemd Build Dependencies in the Latest OS

Progress Update

I have a spare server which is due to expire in 2 months, but it only has 2GB of RAM. It is from cloudcone, and while it’s not particularly powerful, I thought I’d try to put it to some use before it gets decommissioned. One of my side projects lately has involved working with legacy blockchain software, and I figured it might be interesting to try compiling Steem on this box to see if I could turn it into a lightweight full node or at least a seed node for some experiments.

However, I quickly ran into trouble during the build process. The Steem codebase has a heavy dependency on Boost C++, and unsurprisingly, the installation failed midway due to memory exhaustion. Boost’s compilation process is infamously resource-intensive—it tries to parallelize by default, and on a system with just 2GB of RAM and no swap configured, it's a recipe for out-of-memory errors and processes being killed by the OOM killer.

I tried mitigating the issue by reducing parallel build jobs (-j1) and even creating a temporary swap file, but it still wasn't stable enough to complete a full build reliably. This highlighted the unfortunate reality that 2GB is now borderline unusable for most modern development workflows that involve compiling large C++ codebases from source. Containerized builds or pre-built binaries might help here, but Steem is picky about its build environment, and official binaries are long outdated.

Now I’m weighing whether to repurpose the server for something lighter—perhaps as a proxy node, a caching layer, or a load testing instance—or if it’s even worth putting in the time given its limited specs and short remaining lifespan. One alternative might be to build Steem on a beefier machine and transfer the binaries over, assuming no major compatibility issues arise with the CloudCone kernel or glibc version.

image.png

Steem to the Moon🚀!

Sort:  

@justyy, this is a fantastic, real-world glimpse into the challenges of working with legacy blockchain software! I found your experiment of trying to compile Steem on a humble 2GB server incredibly insightful. It's a great reminder of the resource-intensive nature of blockchain development and the limitations we sometimes face.

Your detailed account of the Boost compilation struggles and the OOM killer is something many developers can relate to. The ideas you're considering – proxy node, caching layer, or building elsewhere and transferring – are all smart approaches.

I'm curious to see which direction you ultimately take. Perhaps the community has some clever suggestions too! Thanks for sharing this practical exploration; it adds a valuable, technical perspective to the Steem ecosystem. What other low-resource tasks might be useful to the Steem blockchain, aside from the functions you mentioned?