* srml/authority-discovery: Abstract session key type
Previously `srml/authority-discovery` dependet on the `srml/im-online`
session key type directly. With this patch `srml/authority-discovery` is
generic over the session key type it is going to use, as long as it
implements the RuntimeAppPublic trait.
With this patch one can use the `srml/authority-discovery` module
without the `srml/im-online` module.
Next to the above, this patch configures `node/runtime` to use the babe
session keys for the authority discovery module.
* srml/authority-discovery: Fix line length
* srml/authority-discovery/Cargo: Move babe to dev-dependencies
* node/runtime: Bump implementation version
* srml/authority-discovery: Add doc comment for authority discovery Trait
In order to have authorities (validators) discover each other, they need
to publish their public addresses by their ip address on the Kademlia
Dht indexed by their public key. This payload needs to be signed by a
key identifying them as a valid authority.
Code inside `/core` does not know the current set of authorities nor
can it assume what kind of cryptography primitives are currently in use.
Instead it can retrieve its public key and the current set of
authorities from the runtime and have it sign and verify Dht payloads.
This commit enables code in `/core` to do so by introducing a srml
module and runtime api to:
1. Retrieve own public key.
2. Retrieve public keys of current authority set.
3. Sign a Dht payload.
4. Verify a Dht payload.
This commit makes the logic from the previous commit
(`core/consensus/common/primitives.ConsensusApi`)
cf80af9255 obsolete and thus removes it.