{"id":13564762,"url":"https://github.com/strangelove-ventures/half-life","last_synced_at":"2025-04-03T21:31:33.586Z","repository":{"id":37892953,"uuid":"459826630","full_name":"strangelove-ventures/half-life","owner":"strangelove-ventures","description":"Cosmos validator monitoring and alerting utility","archived":true,"fork":false,"pushed_at":"2023-07-05T21:11:15.000Z","size":306,"stargazers_count":42,"open_issues_count":3,"forks_count":39,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-04T17:48:04.564Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strangelove-ventures.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-16T02:39:14.000Z","updated_at":"2024-02-22T17:19:16.000Z","dependencies_parsed_at":"2024-01-14T03:49:17.619Z","dependency_job_id":"ecfda484-18d3-429d-8135-cf812e5a6cd8","html_url":"https://github.com/strangelove-ventures/half-life","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangelove-ventures%2Fhalf-life","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangelove-ventures%2Fhalf-life/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangelove-ventures%2Fhalf-life/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangelove-ventures%2Fhalf-life/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strangelove-ventures","download_url":"https://codeload.github.com/strangelove-ventures/half-life/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247083482,"owners_count":20880850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:35.530Z","updated_at":"2025-04-03T21:31:33.136Z","avatar_url":"https://github.com/strangelove-ventures.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# !!!!!!!! DEPRECATION NOTICE !!!!!!!!\n\nStrangelove has moved to a [Prometheus](https://prometheus.io) monitoring and alerting stack. As such, we\nwill no longer monitor chains through HalfLife. In the near future, this repository will be archived and made read-only.\n\nStrangelove will no longer maintain HalfLife. Please fork and use as you see fit.\n\nWe will only accept critical bug fix contributions. New features will not be accepted.\n\n# HalfLife\n\nHalfLife is a Cosmos-based blockchain validator monitoring and alerting utility\n\nMonitors and alerts for scenarios such as:\n- Slashing period uptime\n- Recent missed blocks (is the validator signing currently)\n- Jailed status\n- Tombstoned status\n- Individual sentry nodes unreachable/out of sync\n- Chain halted\n\nDiscord messages are created in the configured webhook channel for:\n- Current validator status\n- Detected alerts\n\n## Quick start\n\n### Download\n\nBinaries are available on the [releases](https://github.com/strangelove-ventures/half-life/releases) page.\n\n### Setup config.yaml\n\nCopy `config.yaml.example` to `config.yaml` and populate with your discord and validator information.\nYou can optionally provide the `sentries` array to also monitor the sentries via grpc.\n`rpc-retries` can optionally be provided to override the default of 5 RPC retries before alerting, useful for congested RPC servers.\n`fullnode` can be set to `true` to only monitor reachable and out of sync for the provided `sentries`. `address` is not required when `fullnode` is `true`.\n`sentry-grpc-error-threshold` can be provided for each validator to tune how many grpc errors are detected (roughtly 30 seconds between checks) before issuing a notification.\n\nSee [here](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) for how to create a webhook for a discord channel.\n\nOnce you've created the webhook, copy the URL. It'll look something like this: `https://discord.com/api/webhooks/978129125394247720/cwM4Ks-kWcK3Jsg4I_cboauYjOa48ngI2VKaS76afsMwuY7-U4Frw3BGcYXCJvZJ2kWD`\n\nThis will be used later to be put into the config.yaml. The webhook id is `978129125394247720` (from the URL), and webhook token is `cwM4Ks-kWcK3Jsg4I_cboauYjOa48ngI2VKaS76afsMwuY7-U4Frw3BGcYXCJvZJ2kWD`\n\nSave the values as follows (note these values are from the URL):\n```yml:\nwebhook:\n  id: 978129125394247720\n  token: cwM4Ks-kWcK3Jsg4I_cboauYjOa48ngI2VKaS76afsMwuY7-U4Frw3BGcYXCJvZJ2kWD\n```\n\n### Start monitoring\n\nBegin monitoring with:\n\n```bash\nhalflife monitor\n```\n\nBy default, `half-life monitor` will look for `config.yaml` in the current working directory. To specify a different config file path, use the `--file`/`-f` flag:\n\n```bash\nhalflife monitor -f ~/config.yaml\n```\n\nWhen a validator is first added to `config.yaml` and halflife is started, a status message will be created in the discord channel and the ID of that message will be added to `config.yaml`. Pin this message so that the channel's pinned messages can act as a dashboard to see the realtime status of the validators.\n\n![Screenshot from 2022-02-28 14-29-36](https://user-images.githubusercontent.com/6722152/156061805-330d1c76-acfa-4089-b327-f35f686fa0e7.png)\n\nAlerts will be posted when any error conditions are detected, and follow up messages will be posted when those errors are cleared.\n\n![Screenshot from 2022-02-16 10-53-43](https://user-images.githubusercontent.com/6722152/154326098-12aa787f-389e-4abf-af56-93918090ddc1.png)\n\nFor high and critical errors, the configured discord user IDs will be tagged\n\n![Screenshot from 2022-02-16 11-38-00](https://user-images.githubusercontent.com/6722152/154333667-af823075-73fc-4d41-97ce-40432f3450ac.png)\n\n## Build from source\n\n### Install Go\n\nGo is necessary in order to build `half-life` from source.\n\n```\n# install\nwget https://golang.org/dl/go1.18.2.linux-amd64.tar.gz\nsudo tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz\n\n# source go\ncat \u003c\u003cEOF \u003e\u003e ~/.profile\nexport GOROOT=/usr/local/go\nexport GOPATH=$HOME/go\nexport GO111MODULE=on\nexport PATH=$PATH:/usr/local/go/bin:$HOME/go/bin\nEOF\nsource ~/.profile\ngo version\n```\n\n### Install halflife binary\n\n```\ncd ~/half-life\ngo install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrangelove-ventures%2Fhalf-life","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrangelove-ventures%2Fhalf-life","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrangelove-ventures%2Fhalf-life/lists"}