{"id":27358946,"url":"https://github.com/checkernetwork/node","last_synced_at":"2025-04-13T00:21:44.812Z","repository":{"id":92467792,"uuid":"605597243","full_name":"CheckerNetwork/node","owner":"CheckerNetwork","description":"Station is a visionary network that connects your computer's idle resources to the Filecoin network and rewards you with FIL","archived":false,"fork":false,"pushed_at":"2025-04-11T14:52:49.000Z","size":33470,"stargazers_count":35,"open_issues_count":21,"forks_count":13,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-11T15:54:19.229Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://filstation.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CheckerNetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-23T13:53:54.000Z","updated_at":"2025-04-11T14:52:52.000Z","dependencies_parsed_at":"2023-10-25T18:44:40.186Z","dependency_job_id":"b2400b31-8fd5-4820-b367-e092b40465a9","html_url":"https://github.com/CheckerNetwork/node","commit_stats":{"total_commits":893,"total_committers":5,"mean_commits":178.6,"dds":0.4400895856662934,"last_synced_commit":"3316b30930d84d850587867aa8c567a8340ff2cf"},"previous_names":["checkernetwork/core","filecoin-station/core"],"tags_count":153,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CheckerNetwork%2Fnode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CheckerNetwork%2Fnode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CheckerNetwork%2Fnode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CheckerNetwork%2Fnode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CheckerNetwork","download_url":"https://codeload.github.com/CheckerNetwork/node/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248648476,"owners_count":21139305,"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":"2025-04-13T00:21:44.110Z","updated_at":"2025-04-13T00:21:44.802Z","avatar_url":"https://github.com/CheckerNetwork.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\t\u003cbr\u003e\n\t :artificial_satellite:\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\tChecker Node\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\u003c/h1\u003e\n\n\u003e Checker Node is a node implementation for the\n\u003e [Checker Network](https://checker.network), suitable for running on all kinds\n\u003e of servers..\n\n[![CI](https://github.com/CheckerNetwork/node/actions/workflows/ci.yml/badge.svg)](https://github.com/CheckerNetwork/node/actions/workflows/ci.yml)\n\n## Deployment\n\nChecker Node supports different deployment options:\n\n- [Docker](#docker)\n- [Manual Deployment (Ubuntu)](#manual-deployment-ubuntu)\n\n## Installation\n\n\u003e **Note**: Checker Node requires Node.js, we recommend using the latest LTS\n\u003e version. You can install Node.js using your favorite package manager or get\n\u003e the official installer from\n\u003e [Node.js downloads](https://nodejs.org/en/download/).\n\nWith Node.js installed, run `npm` to install Checker Node.\n\n```bash\n$ npm install -g @checkernetwork/node\n```\n\n## Usage\n\n```bash\n$ FIL_WALLET_ADDRESS=... PASSPHRASE=... checker\n```\n\n## Common Configuration\n\nChecker Node is configured using environment variables (see\n[The Twelve-Factor App](https://12factor.net/config)).\n\nThe following configuration options are shared by all Checker commands:\n\n- `$CACHE_ROOT` _(string; optional)_: Checker stores temporary files (e.g.\n  cached data) in this directory. Defaults to\n  - Linux: `${XDG_CACHE_HOME:-~/.cache}/checker-network-node`\n  - macOS: `~/Library/Caches/network.checker.node`\n  - Windows: `%TEMP%/Checker Network Node`\n- `$STATE_ROOT` _(string; optional)_: Checker stores logs and subnet state in\n  this directory. Defaults to\n\n  - Linux: `${XDG_STATE_HOME:-~/.local/state}/checker-network-node`\n  - macOS: `~/Library/Application Support/network.checker.node`\n  - Windows: `%LOCALAPPDATA%/Checker Network Node`\n\n  **IMPORTANT:** The`$STATE_ROOT` directory must be local to the computer\n  running the Checker. This directory must not be shared with other computers\n  operated by the user, e.g. via Windows Domain profile or cloud storage like\n  iCloud Drive, Dropbox and OneDrive.\n\n## Commands\n\n### `$ checker`\n\nStart a new Checker process. The Checker will run in foreground and can be\nterminated by pressing Ctrl+C.\n\nThis command has the following additional configuration in addition to common\nthe configuration options described in\n[Common Configuration](#common-configuration):\n\n- `FIL_WALLET_ADDRESS` _(string; required)_: Address of the Filecoin wallet that\n  will receive rewards. The value must be a mainnet address starting with\n  `f410`, `0x`.\n\n  `f1` addresses currently are not supported. Rewards for Checker operators are\n  administered by a FEVM smart contract. It is currently technically complex to\n  make payments to f1 addresses.\n\n  If you just want to give `core` a quick spin, you can use the address\n  `0x000000000000000000000000000000000000dEaD`. Please note that any earnings\n  sent there will be lost.\n\n- `PASSPHRASE` _(string; optional)_: a passphrase to protect the Checker\n  instance private key stored in a file inside the `STATE_ROOT` directory.\n\n- `SUBNET_FILTER` _(string; optional)_: Run only the subnet with the given name.\n  Eg:\n  - `SUBNET_FILTER=spark`\n\nThis command outputs metrics and activity events:\n\n```bash\n$ checker\n{\n  \"totalJobsCompleted\": 161,\n  \"rewardsScheduledForAddress\": \"0.041033208757289921\"\n}\n[4/19/2023, 9:26:54 PM] INFO  Saturn Node will try to connect to the Saturn Orchestrator...\n[4/19/2023, 9:26:54 PM] INFO  Saturn Node was able to connect to the Orchestrator and will now start connecting to the Saturn network...\n...\n```\n\n```bash\n$ checker --json\n{\"type\":\"jobs-completed\",\"total\":161}\n{\"type\":\"activity:info\",\"subnet\":\"Saturn\",\"message\":\"Saturn Node will try to connect to the Saturn Orchestrator...\"}\n{\"type\":\"activity:info\",\"subnet\":\"Saturn\",\"message\":\"Saturn Node was able to connect to the Orchestrator and will now start connecting to the Saturn network...\"}\n...\n```\n\nFor the JSON output, the following event types exist:\n\n- `jobs-completed`\n  - `total`\n- `activity:info`\n  - `subnet`\n  - `message`\n- `activity:error`\n  - `subnet`\n  - `message`\n\nSet the flag `--experimental` to run subnets not yet considered safe for\nproduction use. _Run this at your own risk!_\n\nChecker Modules currently in experimental mode:\n\n- [Arweave](https://github.com/CheckerNetwork/arweave-checker/)\n- [Walrus](https://github.com/CheckerNetwork/walrus-checker/)\n\n### `$ checker --help`\n\nShow help.\n\n```bash\n$ checker --help\nUsage: checker [options]\n\nOptions:\n  -j, --json                      Output JSON                          [boolean]\n      --experimental              Also run experimental subnets        [boolean]\n      --recreateCheckerIdOnError  Recreate Checker ID if it is corrupted\n                                                                       [boolean]\n  -v, --version                   Show version number                  [boolean]\n  -h, --help                      Show help                            [boolean]\n```\n\n### `$ checker --version`\n\nShow version number.\n\n```bash\n$ checker --version\n@checkernetwork/node: 1.0.1\n```\n\n## Docker\n\nDeploy Checker with [Docker](https://www.docker.com/). Please replace\n`FIL_WALLET_ADDRESS` and ensure the passed `state` folder is persisted across\nmachine restarts.\n\n```bash\n$ docker run \\\n\t--name checker \\\n\t--detach \\\n\t--env FIL_WALLET_ADDRESS=0x000000000000000000000000000000000000dEaD \\\n        -v ./state:/home/node/.local/state/\n\tghcr.io/CheckerNetwork/node\n```\n\n## Manual Deployment (Ubuntu)\n\nOn a fresh [Ubuntu](https://ubuntu.com/) machine:\n\n```bash\n# Install node.js\n$ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - \u0026\u0026\\\nsudo apt-get install -y nodejs\n\n# Install core\n$ npm install -g @checkernetwork/node\n\n# Create systemd service\n# Don't forget to replace FIL_WALLET_ADDRESS and User\n$ sudo tee /etc/systemd/system/checker.service \u003e /dev/null \u003c\u003cEOF\n[Unit]\nDescription=Checker Network Node\nDocumentation=https://github.com/CheckerNetwork/node\nAfter=network.target\n\n[Service]\nEnvironment=FIL_WALLET_ADDRESS=XYZ\nType=simple\nUser=XYZ\nExecStart=/usr/bin/checker\nRestart=always\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\n# Start service\n$ sudo systemctl daemon-reload\n$ sudo systemctl start checker\n$ sudo systemctl status checker\n\n# Read logs\n$ journalctl -u checker.service\n```\n\n## Disclaimer\n\nThe CLI uses [Sentry](https://sentry.io) for error tracking.\n[InfluxDB](https://www.influxdata.com/) is used for stats.\n\n## Development\n\nPublish a new version:\n\n```bash\n$ npm run release\n```\n\n## Migration guide from Station Core\n\nStation Core was recently rebranded to Checker Node. Read more here:\nhttps://blog.checker.network/posts/why-web3-needs-the-checker-network\n\nHere is what changed:\n\n- Node module `@filecoin-station/core` is now `@checkernetwork/node`\n- CLI `core` is now `checker`\n- Environment variable `MODULE_FILTER` is now `SUBNET_FILTER`\n- CLI flag `--recreateStationIdOnError` is now `--recreateCheckerIdOnError`\n- Activity event property `.module` is now `.subnet`\n- Default state and cache paths have changed. However, when Checker Node detecs\n  that, it will perform an automatic migration\n- Repository `filecoin-station/core` is now `checkernetwork/node`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheckernetwork%2Fnode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheckernetwork%2Fnode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheckernetwork%2Fnode/lists"}