@xiangli-cmu I see it now. I'm fine to push this in now but it does need to be rewritten as an atomic read/write of the whole config and it'll need to be in JSON. Preferably in the format:

```
{
  "peers":[
    ...
  ]
}
```

That way we can add other data to the cluster config (besides peers) if we ever need to. Down the line we should write to a temp file and then swap using `os.Rename()` so that we don't write a half-complete configuration.