  Consider an assignment of bits to the vertices of a connected graph $G(V,E)$
with the property that the value of each vertex is a function of the values of
its neighbors. A collection of such assignments is called a {\em storage code}
of length $|V|$ on $G$. The storage code problem can be equivalently formulated
as maximizing the probability of success in a {\em guessing game} on graphs, or
constructing {\em index codes} of small rate.
  If $G$ contains many cliques, it is easy to construct codes of rate close to
1, so a natural problem is to construct high-rate codes on triangle-free
graphs, where constructing codes of rate $>1/2$ is a nontrivial task, with few
known results. In this work we construct infinite families of linear storage
codes with high rate relying on coset graphs of binary linear codes. We also
derive necessary conditions for such codes to have high rate, and even rate
potentially close to one.
  We also address correction of multiple erasures in the codeword, deriving
recovery guarantees based on expansion properties of the graph.
  Finally, we point out connections between linear storage codes and quantum
CSS codes, a link to bootstrap percolation and contagion spread in graphs, and
formulate a number of open problems.
