Parity supports the Tendermint consensus engine (experimental). You can use it to run a private PBFT-based network, i.e., by adding the following to your chain configuration:
"engine": {
"tendermint": {
"params": {
"gasLimitBoundDivisor": "0x400",
"validators" : {
"list": [
"0x37f93cfe411fa244b87ff257085ee360fca245e8",
"0x610a3a37b98bf0c91c35442e489c246096739324"
]
}
}
}
}
"gasLimitBoundDivisor"
determines how fast the gas limit should adjust, most of the time 0x400
is fine
"validators"
is the list of addresses of the entities which will be allowed to issue blocks
Optional:
"blockReward"
determines the reward given to issuing authority
"timeoutPropose"
"timeoutPrevote"
"timeoutPrecommit"
"timeoutCommit"
"registrar"
address of a contract containing registry, used for UI
"seal": {
"tendermint": {
"round": "0x0",
"proposal": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"precommits": [
"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
]
}
}
The genesis seal should not be changed unless a hard fork is conducted.
Disclosure, I work for Parity.