Skip to content

Configuration

Vincenzo Piscitello edited this page Feb 20, 2021 · 4 revisions

A Brypt node makes use of a configuration file to describe the settings to be used when operating. If no configuration file is found, a utility will be run to generate a configuration file from user input. On Linux, the default location is based on supported environment variables and may be one of the following (in order of precedence): $XDG_CONFIG_HOME/brypt/config.json, $HOME/brypt/config.json, or /brypt/config.json.

Configuration Options

Key Type Supported Options Required Description
version String N/A Yes Indicates the version of the brypt software.
identifier Object N/A No Describes the options to be used when selecting a Brypt Identifier.
details Object N/A No Contains human readible details a user may want store about the node.
endpoints Array N/A Yes Describes the technologies to be used by the node and their respective configurations.
security Object N/A Yes Describes security options to be used by the node.

Identifier Configuration Options

Key Type Supported Options Required Description
value String N/A No Represents the network representation of a Brypt Identifier to be used if the type is listed as "Persistent".
type String Ephemeral or Persistent Yes Indicates the type of identifier to be used. Ephemeral denotes that new identifier will be generated each application run. Persistent denotes the node will attempt to use the identifier listed in the value property (If the value property is not present an identifier will be generated and stored).

Details Configuration Options

Key Type Supported Options Required Description
name String N/A No Indicates a name for the node.
description String N/A No Indicates a description for the node.
location String N/A No Indicates a location for the node. Feature not currently implemented, but may support coordinates or other location discovery systems.

Endpoint Configuration Options

Key Type Supported Options Required Description
protocol String TCP Yes Indicates a communication technology that will be used.
interface String N/A Yes Indicates the network interface that will be used for the technology.
binding String N/A Yes Indicates the binding (e.g. address:port for IP based technologies) that will be used for the serving endpoint.
bootstrap String N/A No Indicates a default bootstrap entry that may be used when no other peers are cached.

Security Configuration Options

Key Type Supported Options Required Description
strategy String PQNISTL3 Yes Indicates an encryption standard to be used during messaging.
token String N/A Yes Indicates a token for logically seperating Brypt networks. Support not currently implemented.
authority String N/A No Indicates a URL for the governing body of the network. Support not currently implemented.

Schema

{
    "version": "String",
    "identifier": {
        "value": "String",
        "type": "String"
    },
    "details": {
        "name": "String",
        "description": "String",
        "location": "String"
    },
    "endpoints": [
        {
            "protocol": "String",
            "interface": "String",
            "binding": "String",
            "bootstrap": "String"
        }
    ],
    "security": {
        "strategy": "String",
        "token": "String",
        "authority": "String"
    }
}

Clone this wiki locally