Skip to content

Organize Configuration #538

@majecty

Description

@majecty

Configuration Files

TOML configuration file

All configurations described in the TOML configuration file can be customized in CLI arguments.
It has configurations for a node. Each node can change the values in the TOML configuration file freely. It does not affect network behavior.

For example, you can change the port number or data directory in the TOML configuration file.

Scheme file

Contains configurations for a network. It contains Tendermint parameters and Genesis block information. All nodes in a network should have the same scheme file.

App descriptor

Contains configurations for modules. It contains information that which modules are used in a network. It contains configurations for modules.

Some configuration in the app descriptor must be the same in a network. For example, which modules are used. How they are connected must be the same in a network. Some configurations like the number of threads do not affect network behavior.

Splitting App descriptor to App descriptor and Link descriptor

We have a plan to split the app descriptor file: Foundry configuration (genesis config, transaction services) and general linking instructions (export, import, init config). Let's say the latter as a 'link descriptor'.

See #512

Removing Scheme file

We can think of the content of the scheme file is configurations for the host in the app descriptor. The app descriptor contains the genesis configuration of modules. The scheme file contains the genesis header's information. We don't need to have two configuration files for a genesis block.

Configuration for network or for node

The current app descriptor has two types of configurations. As I said before, some configurations are for the network, some configurations are for a node.

We didn't discuss yet whether should we split them or how do we split them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions