Describir: Consensus-based methods for distributed systems, blockchain, and voting: a survey