What I mean is ‘does the consensus code have to be the same exact code, e.g. a go function that does the exact same thing a c++ function does’?

I know the functionality is needs to be the same to remain in consensus—it’s even in the name lol.

Reply to this note

Please Login to reply.

Discussion

Assuming I understand your question, no the implementation can be different as long as the consensus rules are followed. The only thing is that if you have lots of competing implementations, I believe you can get accidental/unwanted forks in the chain.

Yup which is why knots is pretty much perfect for this use case since it is basically core and has been maintained right alongside it for the majority of core’s existence yet nostr:npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx is frustrated by knots for some reason… so I was wondering if he’d consider using something like btcd… but I don’t think he would for the reasons you mentioned.

Soft and hard forks are distinguished by backward compatibility with previous versions of the Bitcoin software or lack thereof.