I think Luke maintains one called BitcoinKnots. There's also at least 2 implementations in Rust.
A very important difference between Luke's Knots and the Rust implementations is that Knots shares all the same consensus-related source code with Bitcoin Core. The Rust implementations are total rewrites. Threre's a long, long, history of people attempting to rewrite Bitcoin Core in other languages and failing. Computer science just isn't ready to get the levels of compatibility necessary between code bases necessary for Bitcoin to function.
This means that while Knots is a potential alternative to Core, the Rust implementations (and all other rewrites) just aren't. If miners started using them, we'd get massive consensus failures.
Fair enough. Yeah maybe my previous post was too hand-wavy... AFAIK there is no implementation with bitwise symmetry to Core's consensus.
I guess if Core went rogue there would be disruption to global consensus, but my overall point is that theoretically there's nothing that stops everyone from abandoning core and migrating to an existing or a new alternative in the future.
I think there's even compelling reasons why Core should be abandoned in the future for a memory safe alternative like a rust implementation because of security reasons alone. I think ~30%+ of CVEs are memory safety issues, which a Rust implementation (with its own consensus engine) would be immune to by default.
reply
Bitcoin Core has a good track record with memory safety. So its not clear that Rust would be worth the risk of consensus failures in this case. But maybe. Certainly if you are going to take the risk, Rust would be maybe the only language worth switching to from C++.
reply