)]}'
{
  "commit": "f05e80af8721a0b0ccf5425c4775695d84d09fdf",
  "tree": "1f4f15962293b345b02ae66e588a9aad35ce2be3",
  "parents": [
    "a9b455f2be1fb9dbda3217adb69bc0076113a814"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Tue Oct 12 11:53:34 2021 +0200"
  },
  "committer": {
    "name": "Sergiusz Bazanski",
    "email": "serge@monogon.tech",
    "time": "Thu Dec 16 16:32:51 2021 +0000"
  },
  "message": "m/n/core/consensus: refactor for reliability and multinode support\n\nThis implements a big refactor of our consensus service/runnable.\n\nFirst, we move away from the old bespoke API for retrieving the\nconsensus status (and consensus clients) into using Event Values, as the\nrest of the codebase does.\n\nSecond, we move away from the bespoke PKI library used to generate\ncertificates in-memory and then commit them to etcd into using the\nstandard metropolis pki library. We then change the bootstrap process to\nstart a PKI-less etcd instance first, generate the PKI data directly on\nthe running instance, and then restart into a fully PKI-supporting etcd\ninstance.\n\nWe also move away from using etcd-specific private keys into reusing the\nnode\u0027s private key. This makes management slightly easier, but reviewers\nshould consider the security implications of this change.\n\nFinally, we implement and test multi-member cluster support, which is\ndone by exposing an AddNode method to the newly exposed status, and a\nJoinCluster option in the node configuration.\n\nChange-Id: Iea2bf6114cb699d3792efd45d06de2fa5a48feb1\nReviewed-on: https://review.monogon.dev/c/monogon/+/466\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b9b7ef2963b5f619c311629729cb3b395021c881",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/cluster_bootstrap.go",
      "new_id": "d83913de772c1b58520a94176a6c814efd747b6c",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster_bootstrap.go"
    },
    {
      "type": "modify",
      "old_id": "d7b682b99dfbc7fb8a06e3fec4cf8cec6eea8532",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/BUILD.bazel",
      "new_id": "f6e30e79746202f407db3a37da945b939fb9673a",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/BUILD.bazel"
    },
    {
      "type": "delete",
      "old_id": "4731852de09807b6d3e6f549a52e92fb5144eca3",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/ca/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e0c56b06be7c23408962e4f01834abb9245d0d25",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/ca/ca.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1e7cff669fe4504482fa6c79c26fc062afd9468f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/configuration.go"
    },
    {
      "type": "modify",
      "old_id": "d0fe83f81bf1b85ca60ffb43164c2c3dab5f539e",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/consensus.go",
      "new_id": "f19e92381776f3c438e9d573618405dc9d97aacd",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/consensus.go"
    },
    {
      "type": "modify",
      "old_id": "16d6f7633ed5d8037fc57d87e198b076d1f77d65",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/consensus_test.go",
      "new_id": "8028dd99ee2cd328af80a1c440370a49a1df9eec",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/consensus_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04b13fafec86d4b3f65304d224563482348d7e89",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/status.go"
    },
    {
      "type": "modify",
      "old_id": "b9ab3a0f63ae0ed92febe42b97f5f4541c9b4180",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/localstorage/directory_pki.go",
      "new_id": "cddf395210f2fd1515a1556cf3ed121d1296039e",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/localstorage/directory_pki.go"
    }
  ]
}
