If I want to architect a peer-to-peer application that needs to achieve consensus, what are some of the provably correct protocols/algorithms?
I am not interested in "web3/crypto" solutions. Just pure theoretical papers that describe how one might go about solving this problem from first principles. The closest analogy would be Two Phase Commit for distributed databases.
If you can cite the papers or provide links that would be great.
https://www.hashicorp.com/resources/raft-consul-consensus-pr...
You might also look into the pBFT subject
Hyperledger Fabric, is a blockchain framework but not web3 / crypto that might be interesting too, if you are surveying widely