This is a collection of recipes that aims to simplify:
- Configuring and running an Infernet Node.
- Configuring and running services on an Infernet Node.
Node recipes reside under the node/ directory.
- Sub-directories
node/**represent different connected chain configurations. - Sub-directories under each chain (e.g.
node/base/**) represent Infernet Node versions. - Each directory
node/<chain>/<version>/contains aconfig.json, the node recipe file, along with auxiliary files required for node deployment.
Service (container) recipes reside under services/.
- Sub-directories
services/**represent different Infernet-compatible services. - Sub-directories under each service (e.g.
services/onnx-inference/**) represent service versions. - Each directory
services/<service>/<version>/contains arecipe.json, the service recipe file, along with a README with more details.
Recipes are json files that contain:
- A
configsection, which is the (incomplete) configuration object with several required and/or optional fields pre-specified. - An
inputssection, which describes the user inputs necessary to transform theconfiginto a complete configuration object. See Inputs.
Recipe inputs are specified by the following fields:
id(string): The ID of the variable.path(string): The path in theconfigobject where the variable belongs. See Path Rules.type(string): The type of the variable.required(boolean): Whether user input is required.default(any, optional): The default value of the variable, if applicable.description(string, optional): The description of the variable.
Object properties within the config object are specified as paths joined by . (dots). For example, path
chain.wallet.private_keyrefers to
config["chain"]["wallet"]["private_key"]Partial substitutions are also possible with the #. For example, path
command#NUM_WORKERSrefers to the substring ${NUM_WORKERS} within
config["command"]