The invention discloses a byzantine-fault-tolerant
consensus method applied to a block chain. The method comprises the steps of specifying a certain number of right and interest accounts and initial
consensus accounts in an initiated block of the block chain; after a
consensus process is started, for the height h of a current block, selecting a consensus account to initiate a proposal of a new block according to a fixed random
algorithm in a consensus account
list; receiving the proposal and voting a block with the height of h by other consensus nodes; within a period of time, if the number of votes exceeds eta 1, representing that a consensus is formed, and starting the consensus of a block with the height of h+1 in the next round; if the number of votes does not exceed eta 1 but exceeds eta 2, representing that the consensus is possibly formed,
broadcasting a voting request of the block in the previous round, and continuing to wait for a period of time; and if the number of votes does not exceed eta 2, cancelling the proposal in the round and re-performing the proposal of the new block. Therefore, computing resources can be saved; a large amount of blocks can be continuously generated; and computing power competition is avoided.