Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebrand to Checker. #2048 #2053

Draft
wants to merge 38 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
cb805e4
checker (wip)
juliangruber Feb 11, 2025
618f696
"Filecoin Station" -> "Checker"
juliangruber Feb 11, 2025
ecde678
station -> checker (wip)
juliangruber Feb 11, 2025
e5c6b81
docs
juliangruber Feb 11, 2025
9499282
fix set config migration version
juliangruber Feb 11, 2025
b2971cf
clean up
juliangruber Feb 11, 2025
7d53f60
clean up
juliangruber Feb 11, 2025
63807db
clean up
juliangruber Feb 11, 2025
496d603
clean up
juliangruber Feb 11, 2025
fe3fff9
clean up
juliangruber Feb 11, 2025
91ea130
clean up
juliangruber Feb 11, 2025
7f4f6bd
clean up
juliangruber Feb 11, 2025
29c5e78
clean up
juliangruber Feb 11, 2025
49ec966
add migrate seed phrase
juliangruber Feb 11, 2025
2f500dd
fix old password key
juliangruber Feb 11, 2025
26be343
clean up
juliangruber Feb 11, 2025
df61100
clean up
juliangruber Feb 11, 2025
d735dcc
clean up
juliangruber Feb 11, 2025
403ef8d
clean up
juliangruber Feb 11, 2025
68b982d
module -> subnet
juliangruber Feb 11, 2025
692595c
save
juliangruber Feb 11, 2025
4c058c2
checker -> station
juliangruber Feb 11, 2025
c253b04
clean up
juliangruber Feb 11, 2025
5704adf
station -> checker
juliangruber Feb 11, 2025
fdd665f
clean up
juliangruber Feb 11, 2025
9df3c33
update package lock
juliangruber Feb 11, 2025
8903735
use checker logo in app
juliangruber Feb 11, 2025
f60abc3
"on" icon
juliangruber Feb 11, 2025
c0dec08
update icons off, update-macos*, update-*
juliangruber Feb 11, 2025
d0b96be
simplify icons
juliangruber Feb 11, 2025
5305a06
start with "ok" icon
juliangruber Feb 11, 2025
14c03a8
save
juliangruber Feb 11, 2025
34c3324
start in "online" state
juliangruber Feb 11, 2025
88d850f
update onboarding text
juliangruber Feb 12, 2025
9ce3d5d
update author
juliangruber Feb 12, 2025
378067a
update icons
juliangruber Feb 12, 2025
ba2f1bc
update more assets
juliangruber Feb 12, 2025
befe27c
update tray
juliangruber Feb 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Filecoin Station
# Checker

[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai/)
[![](https://img.shields.io/badge/project-Filecoin-blue.svg?style=flat-square)](https://filecoin.io/)
[![ci](https://github.com/filecoin-station/desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/filecoin-station/desktop/actions/workflows/ci.yml)
[![ci](https://github.com/CheckerNetwork/app/actions/workflows/ci.yml/badge.svg)](https://github.com/CheckerNetwork/app/actions/workflows/ci.yml)

Filecoin Station is a desktop app that connects your computer’s idle resources
Checker is a desktop app that connects your computer’s idle resources
to the Filecoin network and rewards you with Filecoin. Taking part is simple,
just launch the app and start earning. Learn more at
[filstation.app](https://filstation.app).
[app.checker.network](https://app.checker.network).
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: https://app.checker.network/ redirects to filstation.app, which is confusing


## Install

Release notes and all versions of Filecoin Station can be found on the
[releases page](https://github.com/filecoin-station/desktop/releases).
Release notes and all versions of Checker can be found on the
[releases page](https://github.com/CheckerNetwork/app/releases).

Each release has packages for desktop platforms:

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ as a security vulnerability, .
## Reporting a non security bug

For non-security bugs, please simply file a GitHub
[issue](https://github.com/filecoin-station/desktop/issues/new).
[issue](https://github.com/CheckerNetwork/app/issues/new).
Binary file modified assets/tray/off-macos.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/off.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/on-macos.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/on.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/update-macos.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/update-off-macos.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/update-off.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tray/update-on.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion build/after-pack.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ exports.default = async function (context) {
{
cwd: join(
context.appOutDir,
'Filecoin Station.app',
'Checker.app',
'Contents',
'Resources',
'core'
Expand Down
Binary file modified build/icon.icns
Binary file not shown.
Binary file modified build/icon.ico
Binary file not shown.
Binary file modified build/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified build/installerSidebar.bmp
Binary file not shown.
Binary file modified build/installerSidebar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions docs/DEVELOPING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

```mermaid
graph
fil-stat-repo(github.com/filecoin-station/desktop) --> fil-stat-main(Station main process)
fil-stat-repo --> fil-stat-webui(Station WebUI)
fil-stat-repo(github.com/CheckerNetwork/app) --> fil-stat-main(Checker main process)
fil-stat-repo --> fil-stat-webui(Checker WebUI)

saturn-l2-repo(https://github.com/filecoin-project/saturn-l2)
--> saturn-l2-go(Saturn L2 Node binary)
Expand All @@ -23,7 +23,7 @@ graph

Repositories:

- https://github.com/filecoin-station/desktop
- https://github.com/CheckerNetwork/app
- https://github.com/filecoin-saturn/L2-node
- https://github.com/filecoin-project/saturn-webui

Expand All @@ -32,8 +32,8 @@ Repositories:
1. `filecoin-project/saturn-webui` publishes a new release with WebUI assets
2. `filecoin-saturn/L2-node` is updated to use the new `saturn-webui` version
3. `filecoin-saturn/L2-node` publishes a new release
4. `filecoin-station/desktop` is updated to use the new `L2-node` version
5. `filecoin-station/desktop` publishes a new release
4. `CheckerNetwork/app` is updated to use the new `L2-node` version
5. `CheckerNetwork/app` publishes a new release

## Development workflow

Expand Down
10 changes: 5 additions & 5 deletions docs/RELEASE_PROCESS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Overview

Filecoin Station uses
Checker uses
[electron-build/auto-update](https://www.electron.build/auto-update) and a
modified flow from
[Electron Builder Action](https://github.com/samuelmeuli/action-electron-builder#electron-builder-action):
Expand Down Expand Up @@ -38,12 +38,12 @@ modified flow from
```

1. Wait for GitHub Actions CI to upload the binaries to a draft release
[here](https://github.com/filecoin-station/desktop/releases) (a new
[here](https://github.com/CheckerNetwork/app/releases) (a new
one will be created if you haven't drafted one).
1. Review and publish the release draft.
- Once a release is published, users will receive the app update
- The `latest.yml, latest-mac.yml, latest-linux.yml` files attached to
[/releases](https://github.com/filecoin-station/desktop/releases)
[/releases](https://github.com/CheckerNetwork/app/releases)
are used by the desktop app to determine when an app update is available.
1. Done!

Expand All @@ -56,12 +56,12 @@ modified flow from
4. Publish local changes and the tag to the GitHub repo:
`git push && git push origin vA.B.C`.
5. Wait for GitHub Actions CI to upload the binaries to a draft release
[here](https://github.com/filecoin-station/desktop/releases) (a new
[here](https://github.com/CheckerNetwork/app/releases) (a new
one will be created if you haven't drafted one).
6. Review and publish the release draft.
- Once a release is published, users will receive the app update
- The `latest.yml, latest-mac.yml, latest-linux.yml` files attached to
[/releases](https://github.com/filecoin-station/desktop/releases)
[/releases](https://github.com/CheckerNetwork/app/releases)
are used by the desktop app to determine when an app update is available.
7. Done!

Expand Down
42 changes: 21 additions & 21 deletions docs/MODULE_INTERFACE.md → docs/SUBNET_INTERFACE.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
# Station module interface
# Checker subnet interface

1. A module itself is a long-running executable, which
1. A subnet itself is a long-running executable, which
- performs its business logic
- writes informative messages to `stdio`
- exposes stats via a builtin webserver

1. A module needs to have its __binaries hosted__ on HTTPS accessible URLs, so that Station can download updates. Path patterns are flexible, GitHub Releases would be nice.
1. A subnet needs to have its __binaries hosted__ on HTTPS accessible URLs, so that Checker can download updates. Path patterns are flexible, GitHub Releases would be nice.

Example:
```
https://github.com/filecoin-saturn/L2-node/releases
```

1. A module should run on as many operating systems as possible, without requiring any prior setup before executing its binary. On macOS, x86 is required, arm64 nice to have.
1. A subnet should run on as many operating systems as possible, without requiring any prior setup before executing its binary. On macOS, x86 is required, arm64 nice to have.

2. A module can provide a custom __command string__ for launching its executable. Ideally a module doesn't require any extra arguments when launching.
2. A subnet can provide a custom __command string__ for launching its executable. Ideally a subnet doesn't require any extra arguments when launching.

Example:
```bash
$ bacalhau # ideal
$ bacalhau --foo=bar
```

3. A module's executable gets passed the following environment variables:
3. A subnet's executable gets passed the following environment variables:
- `FIL_WALLET_ADDRESS` The user's Filecoin wallet address
- `STATE_ROOT` The long-lived working directory on disk. The module must store
- `STATE_ROOT` The long-lived working directory on disk. The subnet must store
all of its permanent files inside (subdirectories of) this directory. The directory
isn't expected to be backed up or shared across machines in any way.
- `CACHE_ROOT` The temporary working directory on disk. The module must store
- `CACHE_ROOT` The temporary working directory on disk. The subnet must store
all of its caches inside (subdirectories of) this directory. The directory
isn't expected to be backed up or shared across machines in any way.

Expand All @@ -36,17 +36,17 @@
$ FIL_WALLET_ADDRESS=f1... STATE_ROOT=~/.local/state/bacalhau CACHE_ROOT=~/.cache/bacalhau bacalhau
```

4. A module communicates activity by writing to its `stdout` stream:
- `API: $1` The module has launched and `$1` can be queried for fetching module stats (see below)
- `INFO: $1` `$1` will be displayed to the user inside Station's Activity Log
- `ERROR: $1` `$1` will be displayed to the user inside Station's Activity Log, with a warning icon
- `$1` all log lines will be stored in a module-specific log file, which can be submitted to Sentry for error handling
4. A subnet communicates activity by writing to its `stdout` stream:
- `API: $1` The subnet has launched and `$1` can be queried for fetching subnet stats (see below)
- `INFO: $1` `$1` will be displayed to the user inside Checker's Activity Log
- `ERROR: $1` `$1` will be displayed to the user inside Checker's Activity Log, with a warning icon
- `$1` all log lines will be stored in a subnet-specific log file, which can be submitted to Sentry for error handling

5. A module is expected to have provided its `API` URL in `<=500ms`
5. A subnet is expected to have provided its `API` URL in `<=500ms`

6. A module's `stderr` will be stored in the same module-specific log file as its `stdout`, to be used for post-mortem debugging.
6. A subnet's `stderr` will be stored in the same subnet-specific log file as its `stdout`, to be used for post-mortem debugging.

7. A module exposes its stats via HTTP(S), on an address communicated via
7. A subnet exposes its stats via HTTP(S), on an address communicated via
`stdout` (see above `API:`). The response will be a JSON object with at least
the following fields:

Expand All @@ -57,12 +57,12 @@ the following fields:
```

The number of jobs completed is expected to be a monotonically increasing
number. It's the responsibility of the module to persist this number across
number. It's the responsibility of the subnet to persist this number across
process restarts, somewhere in `ROOT_DIR`.

The module may include additional fields in the JSON response, although
these will be ignored by Station.
The subnet may include additional fields in the JSON response, although
these will be ignored by Checker.

7. A module can be told to shut down via signal `SIGTERM`
7. A subnet can be told to shut down via signal `SIGTERM`

8. A module can shut down at any time, which is always considered an error. Its exit will be shown in Station's UI, and the last 100 lines of its output streams forwarded to Sentry. The module won't automatically be restarted by Station (for now).
8. A subnet can shut down at any time, which is always considered an error. Its exit will be shown in Checker's UI, and the last 100 lines of its output streams forwarded to Sentry. The subnet won't automatically be restarted by Checker (for now).
6 changes: 3 additions & 3 deletions electron-builder.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
appId: io.filecoin.station
appId: network.checker.app
generateUpdatesFilesForAllChannels: true

extraMetadata:
Expand Down Expand Up @@ -58,8 +58,8 @@ nsis:

linux:
artifactName: ${name}-${os}-${arch}.${ext}
executableName: filecoin-station
icon: filecoin-station
executableName: checker
icon: checker
category: Network;FileTransfer;P2P
synopsis: A desktop client for Filecoin Retrieval Markets
maintainer: [email protected]
Expand Down
2 changes: 1 addition & 1 deletion main/activities.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class Activities {
/** @type {Activity[]} */
#activities = []
#online = {
spark: false,
spark: true,
voyager: false
}

Expand Down
6 changes: 3 additions & 3 deletions main/app-menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ function setupAppMenu (/** @type {import('./typings').Context} */ ctx) {

// File menu
menu.items[1].submenu?.insert(0, new MenuItem({
label: 'Save Module Logs As…',
click: () => { ctx.saveModuleLogsAs() }
label: 'Save Subnet Logs As…',
click: () => { ctx.saveSubnetLogsAs() }
}))

Menu.setApplicationMenu(menu)
Expand All @@ -37,7 +37,7 @@ function setupCheckForUpdatesMenuItem (ctx, menu) {
visible: false
})

// Filecoin Station menu
// Checker menu
menu.items[0].submenu?.insert(1, checkForUpdates)
menu.items[0].submenu?.insert(2, checkingForUpdates)
}
Expand Down
39 changes: 32 additions & 7 deletions main/station-config.js → main/checker-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ const Store = require('electron-store')
const log = require('electron-log').scope('config')

const ConfigKeys = {
OnboardingCompleted: 'station.OnboardingCompleted',
TrayOperationExplained: 'station.TrayOperationExplained',
StationID: 'station.StationID',
FilAddress: 'station.FilAddress',
DestinationFilAddress: 'station.DestinationFilAddress'
OnboardingCompleted: 'checker.OnboardingCompleted',
TrayOperationExplained: 'checker.TrayOperationExplained',
CheckerID: 'checker.CheckerID',
FilAddress: 'checker.FilAddress',
DestinationFilAddress: 'checker.DestinationFilAddress'
}

// Use this to test migrations
Expand All @@ -18,6 +18,31 @@ const ConfigKeys = {

const configStore = new Store({
migrations: {
'>=3.0.0': store => {
const migration = [
{
from: 'station.OnboardingCompleted',
to: ConfigKeys.OnboardingCompleted
}, {
from: 'station.TrayOperationExplained',
to: ConfigKeys.TrayOperationExplained
}, {
from: 'station.stationID',
to: ConfigKeys.CheckerID
}, {
from: 'station.FilAddress',
to: ConfigKeys.FilAddress
}, {
from: 'station.DestinationFilAddress',
to: ConfigKeys.DestinationFilAddress
}
]
for (const { from, to } of migration) {
if (store.has(from)) {
store.set(to, store.get(from))
}
}
},
'>=0.9.0': store => {
if (store.has('station.onboardingCompleted')) {
store.set(
Expand All @@ -32,13 +57,13 @@ const configStore = new Store({
},
beforeEachMigration: (_, context) => {
log.info(
`Migrating station-config from ${context.fromVersion} → ` +
`Migrating checker-config from ${context.fromVersion} → ` +
context.toVersion
)
}
})

log.info('Loading Station configuration from', configStore.path)
log.info('Loading Checker configuration from', configStore.path)

let OnboardingCompleted =
/** @type {boolean} */
Expand Down
20 changes: 10 additions & 10 deletions main/consts.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ const assert = require('assert')
const { getBuildVersion } = require('./build-version')

const appIDs = {
darwin: 'app.filstation.desktop',
win32: 'Filecoin Station Desktop',
linux: 'filecoin-station-desktop'
darwin: 'network.checker.app',
win32: 'Checker',
linux: 'checker'
}

module.exports = Object.freeze({
Expand All @@ -21,7 +21,7 @@ module.exports = Object.freeze({
IS_MAC: os.platform() === 'darwin',
IS_WIN: os.platform() === 'win32',
IS_APPIMAGE: typeof process.env.APPIMAGE !== 'undefined',
STATION_VERSION: packageJson.version,
CHECKER_VERSION: packageJson.version,
BUILD_VERSION: getBuildVersion(packageJson),

ELECTRON_VERSION: process.versions.electron
Expand All @@ -30,8 +30,8 @@ module.exports = Object.freeze({
// Replace with `app.get('localUserData')` after this PR is landed & released:
// https://github.com/electron/electron/pull/34337
function getCacheRoot () {
if (process.env.STATION_ROOT) {
return path.join(process.env.STATION_ROOT, 'cache')
if (process.env.CHECKER_ROOT) {
return path.join(process.env.CHECKER_ROOT, 'cache')
}

const platform = os.platform()
Expand All @@ -55,8 +55,8 @@ function getCacheRoot () {
}

function getStateRoot () {
if (process.env.STATION_ROOT) {
return path.join(process.env.STATION_ROOT, 'state')
if (process.env.CHECKER_ROOT) {
return path.join(process.env.CHECKER_ROOT, 'state')
}

const platform = os.platform()
Expand Down Expand Up @@ -87,8 +87,8 @@ function getStateRoot () {

// Used for migrations
function getLegacyCacheHome () {
if (process.env.STATION_ROOT) {
return path.join(process.env.STATION_ROOT, 'cache')
if (process.env.CHECKER_ROOT) {
return path.join(process.env.CHECKER_ROOT, 'cache')
}

const platform = os.platform()
Expand Down
6 changes: 3 additions & 3 deletions main/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ let totalJobsCompleted = 0
* @param {Context} ctx
*/
async function setup (ctx) {
ctx.saveModuleLogsAs = async () => {
ctx.saveSubnetLogsAs = async () => {
const opts = {
defaultPath: `station-modules-${(new Date()).getTime()}.log`
defaultPath: `checker-subnets-${(new Date()).getTime()}.log`
}
// The dialog might not show if the UI is hidden
ctx.showUI()
Expand Down Expand Up @@ -67,7 +67,7 @@ function maybeReportErrorToSentry (err, scopeFn) {
if (now - lastCrashReportedAt < 4 /* HOURS */ * 3600_000) return
lastCrashReportedAt = now
log.error(
'Reporting the problem to Sentry for inspection by the Station team.'
'Reporting the problem to Sentry for inspection by the Checker team.'
)
Sentry.captureException(err, scopeFn)
}
Expand Down
Loading