This change brings back the pluggable consensus initially added in #2091, but reverted (#2109) due to a bug, which is fixed in this PR.
Benefits
Pluggable consensus is back.
Possible Drawbacks
I do not fully understand why the fix works O_o.
Usage Examples or Tests [optional]
Run iroha in release build with several peers in the genesis block (they do not need to be reachable). It does not crash anymore, and valgrind does not report unitialized memory usage.
Description of the Change
This change brings back the pluggable consensus initially added in #2091, but reverted (#2109) due to a bug, which is fixed in this PR.
Benefits
Pluggable consensus is back.
Possible Drawbacks
I do not fully understand why the fix works O_o.
Usage Examples or Tests [optional]
Run iroha in release build with several peers in the genesis block (they do not need to be reachable). It does not crash anymore, and valgrind does not report unitialized memory usage.