This partially revert f51b8ad998.
We should way until a proper configuration-less discovery mechanism
based on ipv6_multicast is re-enabled before to use it by default in
the tests.
The client registers three commands.
- demo tests an echo RPC,
- fail tests an always failing RPC,
- bake creates a new block with empty protocol content.
This is to replace the default UNIX timeout that can be very long (30s
or so). In the context of baking, it is not acceptable to wait for
such a long time to connect to e.g. a signer daemon whenever there is
multiple addresses available for load balancing.
If 'max_connections' is already reached, this modification will
enable one additional incoming connection if 'Random.bool()' is
true. This will allow a kind of connections diversification by
enabling a call to P2p_maintenance.too_many_connections, which
will close some connection with a low score (depending on the
chosen scoring criterion)
This commit fixes the tests (except those from voting.ml) which failed when the value
of tokens_per_roll (from src/proto_alpha/lib_protocol/src/constants_repr.ml) changes.
Notably, 2 functions were deleted with get next baker by priority from double_baking.
They were used only in one test and they were creating pairs of baker and index,
but this index did not necessarily correspond to the baker's priority.
There is no notion of unauthenticated connection, since the function
`authenticate` is immediately called on a
`P2p_io_scheduler.connection` and returns an authenticated connection,
or nothing. So, we only deal with authenticated connections. The
identifier of a connection is the same one as the one of the
`P2p_io_scheduler.connection` underneath.