  Information propagation on graphs is a fundamental topic in distributed
computing. One of the simplest models of information propagation is the push
protocol in which at each round each agent independently pushes the current
knowledge to a random neighbour. In this paper we study the so-called
coalescing-branching random walk (COBRA), in which each vertex pushes the
information to $k$ randomly selected neighbours and then stops passing
information until it receives the information again. The aim of COBRA is to
propagate information fast but with a limited number of transmissions per
vertex per step. In this paper we study the cover time of the COBRA process
defined as the minimum time until each vertex has received the information at
least once. Our main result says that if $G$ is an $n$-vertex $r$-regular graph
whose transition matrix has second eigenvalue $\lambda$, then the COBRA cover
time of $G$ is $\mathcal O(\log n )$, if $1-\lambda$ is greater than a positive
constant, and $\mathcal O((\log n)/(1-\lambda)^3))$, if $1-\lambda \gg
\sqrt{\log( n)/n}$. These bounds are independent of $r$ and hold for $3 \le r
\le n-1$. They improve the previous bound of $O(\log^2 n)$ for expander graphs.
Our main tool in analysing the COBRA process is a novel duality relation
between this process and a discrete epidemic process, which we call a biased
infection with persistent source (BIPS). A fixed vertex $v$ is the source of an
infection and remains permanently infected. At each step each vertex $u$ other
than $v$ selects $k$ neighbours, independently and uniformly, and $u$ is
infected in this step if and only if at least one of the selected neighbours
has been infected in the previous step. We show the duality between COBRA and
BIPS which says that the time to infect the whole graph in the BIPS process is
of the same order as the cover time of the COBRA process
