  We consider the problem of implementing distributed protocols, despite
adversarial channel errors, on synchronous-messaging networks with arbitrary
topology.
  In our first result we show that any $n$-party $T$-round protocol on an
undirected communication network $G$ can be compiled into a robust simulation
protocol on a sparse ($\mathcal{O}(n)$ edges) subnetwork so that the simulation
tolerates an adversarial error rate of $\Omega\left(\frac{1}{n}\right)$; the
simulation has a round complexity of $\mathcal{O}\left(\frac{m \log n}{n}
T\right)$, where $m$ is the number of edges in $G$. (So the simulation is
work-preserving up to a $\log$ factor.) The adversary's error rate is within a
constant factor of optimal. Given the error rate, the round complexity blowup
is within a factor of $\mathcal{O}(k \log n)$ of optimal, where $k$ is the edge
connectivity of $G$. We also determine that the maximum tolerable error rate on
directed communication networks is $\Theta(1/s)$ where $s$ is the number of
edges in a minimum equivalent digraph.
  Next we investigate adversarial per-edge error rates, where the adversary is
given an error budget on each edge of the network. We determine the exact limit
for tolerable per-edge error rates on an arbitrary directed graph. However, the
construction that approaches this limit has exponential round complexity, so we
give another compiler, which transforms $T$-round protocols into
$\mathcal{O}(mT)$-round simulations, and prove that for polynomial-query black
box compilers, the per-edge error rate tolerated by this last compiler is
within a constant factor of optimal.
