Witness Uptime Monitoring

This is a little service that submits the following checkpoint to a witness

geomys.org/witness/test-log
1
BCml5C32yqMcl0gjTrcSOeNVx59oPnSdytBzDGBO5k0=

— geomys.org/witness/test-log wHh/9BPsoBNr2x0Ol3qPBYasIN0HI2ZiBg5ac0v3LQq/7F+YO7U4oWbDeJn1VaWVrlbSEM30Gr7WWYQjj2SBxRoJ/Ao=

and checks that the witness responds with a fresh, valid signature.

The witness can be configured with the following log list

https://uptime.geomys.org/witness/log-list

or directly with this log vkey

geomys.org/witness/test-log+c0787ff4+AeMb5VOzy60PTGdGmLPxOKGAa0jNyDGsgv2rnprGju1t

so it will accept the checkpoint.

To run a check, request /witness/add-checkpoint/ followed by the witness vkey, e.g.

https://uptime.geomys.org/witness/add-checkpoint/witness.navigli.sunlight.geomys.org+a3e00fe2+BNy/co4C1Hn1p+INwJrfUlgz7W55dSZReusH/GhUhJ/G

The vkey name must be the submission prefix of the witness.

Since ML-DSA vkeys are too long for some uptime monitoring services, the witness can also be referenced by just its name and key hash, e.g.

https://uptime.geomys.org/witness/add-checkpoint/witness.navigli.sunlight.geomys.org+6bc44249

If the key is one of the known vkeys listed below, the signature is verified and the response is

witness signature valid, timestamp 1757980800

Otherwise, the response is only checked for a fresh cosignature by that key name and hash, without verifying it, and the response is

witness signature present but NOT verified (unknown key), timestamp 1757980800

The known vkeys are

witness.navigli.sunlight.geomys.org+6bc44249+BvKbJzZZb2L5kdgqACS68/hxJoQQ88Zhp7esVL81HYRPQAurY9cfky201kuNm1oSO71BiNPWC8oNHunBo/PnRD/eWIuu/ZPIsiG0Cq9xg8dJsoKuQGXJ2Hu1QLBoyFWUFWAtmURCRi5bXFYJjVy4fFFh5ClS477HTy7av3C6VvnOdYTH1jISdXyIblBTWkQEq24gMc2JZKiS5YleWbXjlVuDKaU3yQjDhyWTd8AZuCvrcC9rE8wOZ7etpkAEf2pPINQ4LnMEHCWTuEE5NZwGWwqcekXvNQvv1jjfWQkhSzXbFvbLmifpWxRFrHn9OSEPGfaCksRUvKoTZzOrIPuFAhAraDIXX0DLwc7xY9hcg2lGpCaDoOXoyAS6m4wGiqerd0kLjFitkgJ7A/tpIcO+m255eyWnZwrevWaFgx+xwN7OjdJTlGMK9Qgd7QJW1Qilmt/h1SqZGpithCfje+/MiUea2eyTKbPBCf5c206/5Axu789uL1v22XZRO5tfDPLpU5lTPYdD0dt9M4I02G/2mHsZ43dbcsSYe0i+oM6GgIV0CoTx833GJMCjOOZbo3Qmlxwf3QFhkwGtc/db16iDfCW0U2NINxuSyDGahEIudOyNldfh+oe3tLyICiNGF3kGRQ1MRLD+e6AakJsjat9wMgjORHWx1rE7r14wCZtxFkSjOjSMpN8DiBXtGySSnWv2jKWnYnLPYhdqTJMEAZLLtd5Elaq+DukrJfmR5Jx348lx0E8AjALfg1oYQSCBKYlUN7h4kJhZhYGu6ahVPp1OBlA+DuBfoMtE6IiTfm11LseSOyNOtNTFe5V508Dw/APhoKuxy0mTAmEDmPnXTBvHhX1PVhl1qHTmfNhpukzxBRPKzsVN7y/FuJuqrX208k7SihRJGtDsXkQK/cFzTmSGvyHEKK+IHoKFpRK0dxEV6muqPJEEzehwZrJ7Rz0ZfkjuKVCiP98md+yD+r7GD2BjIb3IEzhrsbf5Ak7f5NImP4UoL6vy48ZfwmEo6tvn6StSVd912GYobRKHzboTBhUIn8c93VIX7PAQ64exm4l9wUBr3KMzHuykTW9m7C1xw1+Oqf3PGWN9rLHXNMPaR08xnImkTd+W74ls1sHH1CzJiNJB5QZg44zCajgL131L9G62AuTth/zJeGovddDU1m7N3i+e2Qz/omDKILlfUtcwPyyWeSvW/XX0ECFp/o9cDh/l6S5mcaT2Mtiiyn+owXl4Mx85Yppi2ZvVpZudLyhM0AGeoDdRRlfdeaJsvfC7pzBKzbj/1CKs7Ts962kvpCoDyZ5rMBK5PhFLvNXhl9ntKSTIAqUoM3vPgouzrA57Y9G5cWEJ741G4siABCFedWcDKT5zXKO682fncspp2MLjGCqNEWbSRRJ957q/W5mUyI1sDiXsKaaxGq0Xg86qu1AaEd7EBgOLj3i762ANsbZqtButkOdGD+MVeELpgNiOttWPW6Xq0ERM5NcJgezQJghy+y7IKf6zqrud4Ql6pklvjTuzCeLVsfpWQsqfgF4W0ZADldLfPCJIDBby1sxjh32i6hIp2R7QC6Mp87k9PAa5fiFDOqJXqDtGLxKPKu6UPdvbJHfHx4M37F6mfQnst4Bkjgf0kLGkW9isZ7bnids+QclIgfKFjZ5mD+ekGKo835+G44y7zAauKZzj8nBiNMSYwdAEMn6TYHciHn1VyetNEtzSMHInsV30TOnahKfkNgvAuNCuxrIyNvFHCw9t3vRr/J0=
witness-golf.sunlight.geomys.org+285a8d9f+BmXb1ItjzDOpqzbdlBDvu5HD+lM3cZMMdPpnBsskhj99lnA4KDncLD5ck/YXkOgNjani4pFnX4PFKtM5WefU/+3TQv4qyOpXtUVLsExml5qdmiqwaMYb7Oz8WPntgJ+PWLECCOQWhMdgvj50O2MdbaSHZI74MrE2ARVcxalUf16awdvwZD8qLVgZATxMP56NtEmbRmRIHrakSzHLL93iM1RElqjoBW7njk6sBgUpHrY6ljMXRvrL2rLBlZj7zZ6pz6NoKR5fYhw63YAPLTBwf4m2YarWtcPZ7gNHN/4n9I5LheySxcu47cKsOdzKCIsa9+sXbZUEbKW1CBu8Tl3nd/MuPKC/5F3zccaUFURZlqgnS1PKOqeCc1xuXnnUOmulYJbMPosYMmSuxqbuO56q+haO4ZsYYlBeeslN73EoKW2iF7CDxtQCWwBrnKn2WZxf5/3EVTweL4kYXZ+G4DmJkfGHlyUJj/dJRi0V1rj/F8sFLwZNRc/LoNBqhY+CJw5+KdItNVBM3RTNQFoGwAa9oTFAIfBJA2qjlJQ1L1NxxfD1G6MwUvOkDeZpghyVU1fDiyeKdsfxtWBlOeJYd64v2el/Z2CqegQaiWTw5rbWz7EPxNs0f/z2Qg7V8x9warJW7o0ta1YR4MvIUKJy2aIy3kE/94qBF2ai95j9wkazIPxZJjBVjKz+mHGsRw5yH6zC22xD4NLulD9IBWGsbpPL5WGLfVdcYyjelLLdFcwNogAwr25bQHRrW51WCdfxfJp0XubgaXKhV92LyQ5YEwe7YDMi+aOZBaI73Y6Tg7oxsXRTyUBUR6vU0vtkfrWI1PkI35sdK7bDBbZNsPQ0tbtM4MhJIcwUzv8sPnrZMpu7w+LVgvAxhIbd49ITjRz0JA8NomcHX0zCvES/hVtAZmQoH2K4cYTrCX9wbg9jx9Vz02cX5szL6UIf6W0fOI4h8cjTsI1lw/U9rDJxmIfVIatkvLkmJHqzOBfDFe7nY7ASrnMTqr3Ei08eiRVvLgLkqgWyekb1x4GnaOE1OrumCrP1b9dPDQF9XUPZWHRqq4S0lhlGVs0FnykXTRxxF0tF2NrR+66J9z4HFX5PX+4MiwmX/E0Bs6TM8Yr2/loVF4ipzXsKkDI1wfid5i8Xx3PRBtbhFUQ87Oytjyu5L1cdXbhy/iDFBUN5bJ2WEubbKm6f35NAuXdW355B2p6iksgqacARu25vTHDIL26AVT80J18CrJ0Loq1Q3IYIPGWSlS5Eg2mOM2M4JGIPPJEv0+QJ/t+y5+hrjlJNiDbdwtJIUIMv/Gk+NQb2arRahhDzrraqG7VK7yme6B3u3CeNwyrgrfbQXSE4Ikq8HevZcUKuwHWJmeHdjxB1fDVWzDYJoXzLxiXL95iE9esi65I/eFaeL43Rw6Uxu0draErdZTuLnMbRKDw0U4rab5oJIf/AboJmeu7xLCAXP0I9c++S8Ko0djwdsJHRovP9pbRA0zC/Q1Km9gaG5tuzmn+CAH0FuK0Egpx6sIXNpC/hMFDz2Oq/F6mqtxel6DYDfoA6Eim3jqfjtDQfrpCPVrbiA4Cj/zuI2Alb5EJDnWWXY8eunVAJz+P9h0F4ththRna1mvpmh7k00R7UzKfcZdClh9nE65T21RUloSfwV6k/A3Gz7+uUKMr8f6tjfi66DOSxZAsquwG7yoiaGxY7dP3o8bZeXQLcXq3bvO9/LtS6PshWNi/WQX40rAWLTKU1XbjtibbqwudbB6k=

To add a key to the list, open a pull request.

We recommend setting up alerting such that the endpoint is checked from multiple locations, and you are only alerted if all locations hit 503s for more than 15 minutes.

There is also a CT uptime monitoring service at https://uptime.geomys.org/ct/.