Basic implementation of block-authoring logic.
Example
// The first step is to create a `ProposerFactory`.
let mut proposer_factory = new;
// From this factory, we create a `Proposer`.
let proposer = proposer_factory.init;
// The proposer is created asynchronously.
let proposer = block_on.unwrap;
// This `Proposer` allows us to create a block proposition.
// The proposer will grab transactions from the transaction pool, and put them into the block.
let future = proposer.propose;
// We wait until the proposition is performed.
let block = block_on.unwrap;
println!;
License: GPL-3.0-or-later WITH Classpath-exception-2.0