So Bitcoin core has no official specs written down, if someone wants to rebuild it from scratch, let's say in a different language, how do you do it?

Reply to this note

Please Login to reply.

Discussion

Bitcoin has "official" specs: the C++ source code of Bitcoin Core.

That's the thing you need to match in reality. And getting that bug-for-bug compatible is a nightmare that no one has ever perfectly achieved.

Yeah, that's a bit of a problem. And reading C++ sucks.

Reading English sucks even more for consensus critical protocols. It's extremely difficult to be sure you've interpreted an English specification correctly; code specifications can at least be executed to check if your understanding is correct.

Fair point. It's still so much easier with lightning BOLTS though because it's a series of stuff you make sure you support.

Just ask ChatGPT. Another problem solved.

We would end up with Bitcoin Cash written in Rust if we ask it.

It seems like an unfortunate point of centralization that Bitcoin's "official" spec is maintained by a single organization in a language that makes it difficult to run alternative implementations while ensuring consensus.

Computer science is what makes that difficult. Getting bit-for-bit compatibility is extraordinarily difficult.

It is easier to try to reimplement a specification written in code than it is to reimplement a specification written in English. The former can at least be tested by actually running the code. The latter will always be unclear.