  We consider regenerating codes in distributed storage systems where
connections between the nodes are constrained by a graph. In this problem, the
failed node downloads the information stored at a subset of vertices of the
graph for the purpose of recovering the lost data. Compared to the standard
setting, regenerating codes on graphs address two additional features. The
repair information is moved across the network, and the cost of node repair is
determined by the graphical distance from the helper nodes to the failed node.
Accordingly, the helpers far away from the failed node may be expected to
contribute less data for repair than the nodes in the neighborhood of that
node. We analyze regenerating codes with nonuniform download for repair on
graphs. Moreover, in the process of repair, the information moved from the
helpers to the failed node may be combined through intermediate processing,
reducing the repair bandwidth. We derive lower bounds for communication
complexity of node repair on graphs, including repair schemes with nonuniform
download and intermediate processing, and construct codes that attain these
bounds.
  Additionally, some of the nodes may act as adversaries, introducing errors
into the data moved in the network. For repair on graphs in the presence of
adversarial nodes, we construct codes that support node repair and error
correction in systematic nodes.
