Ask HN: Could Nix make crypto mining more efficient?

2 points by elbear ↗ HN
For those who don't know, Nix[0][1] is a package manager that allows you to specify exactly: - the build environment - the dependencies - and the steps of the build

This translates into 2 main benefits: - if you made the build run now, it will run in the future (reproducibility) - it reduces bloat, because you can generate an environment or OS image with only the software needed to run a specific program or service

My guess is that a big efficiency gain would come from the second point, because you don't waste CPU on code that you don't use.

Does this make sense? Has anyone explored this?

[0]: https://nixos.org [1]: https://en.wikipedia.org/wiki/Nix_(package_manager)

9 comments

[ 3.2 ms ] story [ 38.0 ms ] thread
No.
If you're against crypto, making its operations more efficient would also have a positive environmental impact. Because it looks like it's here to stay.
My friend I know you just discovered nix but "don't have processes we don't need using cpu cycles" is low hanging fruit. If you really care then you'd use a bare linux kernel.

Of course mining is done on ASICs. If you care about latency you implement the network interface into the ASIC, and don't even use a CPU.

Parent's answer wasn't anti-crypto.

I didn't just discover Nix, but thank you for actually giving an explanation.
No it wouldn't, this is a fundamental misunderstanding of what mining is - the difficulty of mining scales automatically. Bitcoin went from CPU to GPU to ASIC and had massive efficiency improvements at each stage, but the total power consumption has only gone up. The nature of mining is that it prevents Sybil attacks by tethering consensus decisions to scarce physical resources, and so it only works if it keeps those resources scarce - the faster a block is mined, the more difficult the next one will be to keep the rate of blocks relatively constant.
I see. Thank you for explaining.
(comment deleted)

    you don't waste CPU on code that you don't use
You don't waste _CPU_ on code you don't use EVER, Nix or not - that's what "not used" means!
Ok, then maybe potential improvements would come from making the deployment setup itself reproducible. But maybe that's not so significant.