  We study distributed computation in synchronous dynamic networks where an
omniscient adversary controls the unidirectional communication links. Its
behavior is modeled as a sequence of directed graphs representing the active
(i.e. timely) communication links per round. We prove that consensus is
impossible under some natural weak connectivity assumptions, and introduce
vertex-stable root components as a means for circumventing this impossibility.
Essentially, we assume that there is a short period of time during which an
arbitrary part of the network remains strongly connected, while its
interconnect topology may keep changing continuously. We present a consensus
algorithm that works under this assumption, and prove its correctness. Our
algorithm maintains a local estimate of the communication graphs, and applies
techniques for detecting stable network properties and univalent system
configurations. Our possibility results are complemented by several
impossibility results and lower bounds for consensus and other distributed
computing problems like leader election, revealing that our algorithm is
asymptotically optimal.
