You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. A module itself is a long-running executable, which
3
+
1. A subnet itself is a long-running executable, which
4
4
- performs its business logic
5
5
- writes informative messages to `stdio`
6
6
- exposes stats via a builtin webserver
7
7
8
-
1. A module 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.
8
+
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.
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.
15
+
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.
16
16
17
-
2. A module can provide a custom __command string__ for launching its executable. Ideally a module doesn't require any extra arguments when launching.
17
+
2. A subnet can provide a custom __command string__ for launching its executable. Ideally a subnet doesn't require any extra arguments when launching.
18
18
19
19
Example:
20
20
```bash
21
21
$ bacalhau # ideal
22
22
$ bacalhau --foo=bar
23
23
```
24
24
25
-
3. A module's executable gets passed the following environment variables:
25
+
3. A subnet's executable gets passed the following environment variables:
26
26
- `FIL_WALLET_ADDRESS` The user's Filecoin wallet address
27
-
- `STATE_ROOT` The long-lived working directory on disk. The module must store
27
+
- `STATE_ROOT` The long-lived working directory on disk. The subnet must store
28
28
all of its permanent files inside (subdirectories of) this directory. The directory
29
29
isn't expected to be backed up or shared across machines in any way.
30
-
- `CACHE_ROOT` The temporary working directory on disk. The module must store
30
+
- `CACHE_ROOT` The temporary working directory on disk. The subnet must store
31
31
all of its caches inside (subdirectories of) this directory. The directory
32
32
isn't expected to be backed up or shared across machines in any way.
4. A module communicates activity by writing to its `stdout` stream:
40
-
- `API: $1` The module has launched and `$1` can be queried for fetching module stats (see below)
39
+
4. A subnet communicates activity by writing to its `stdout` stream:
40
+
- `API: $1` The subnet has launched and `$1` can be queried for fetching subnet stats (see below)
41
41
- `INFO: $1` `$1` will be displayed to the user inside Checker's Activity Log
42
42
- `ERROR: $1` `$1` will be displayed to the user inside Checker's Activity Log, with a warning icon
43
-
- `$1` all log lines will be stored in a module-specific log file, which can be submitted to Sentry for error handling
43
+
- `$1` all log lines will be stored in a subnet-specific log file, which can be submitted to Sentry for error handling
44
44
45
-
5. A module is expected to have provided its `API` URL in `<=500ms`
45
+
5. A subnet is expected to have provided its `API` URL in `<=500ms`
46
46
47
-
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.
47
+
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.
48
48
49
-
7. A module exposes its stats via HTTP(S), on an address communicated via
49
+
7. A subnet exposes its stats via HTTP(S), on an address communicated via
50
50
`stdout` (see above `API:`). The response will be a JSON object with at least
51
51
the following fields:
52
52
@@ -57,12 +57,12 @@ the following fields:
57
57
```
58
58
59
59
The number of jobs completed is expected to be a monotonically increasing
60
-
number. It's the responsibility of the module to persist this number across
60
+
number. It's the responsibility of the subnet to persist this number across
61
61
process restarts, somewhere in `ROOT_DIR`.
62
62
63
-
The module may include additional fields in the JSON response, although
63
+
The subnet may include additional fields in the JSON response, although
64
64
these will be ignored by Checker.
65
65
66
-
7. A module can be told to shut down via signal `SIGTERM`
66
+
7. A subnet can be told to shut down via signal `SIGTERM`
67
67
68
-
8. A module 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 module won't automatically be restarted by Checker (for now).
68
+
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).
0 commit comments