Type object
File match chromia.yml chromia.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/chromia-model/latest.json
Source https://gitlab.com/chromaway/core-tools/chromia-cli-tools/-/raw/dev/chromia-build-tools/src/main/resources/chromia-model-schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Chromia Model

Properties

definitions object | array

Any additional properties you want to reference elsewhere

blockchains Record<string, object>

Configuration properties for a blockchain

test object

Configuration for unit tests

3 nested properties
modules string[]

Test root modules

moduleArgs Record<string, object>

Module arguments

failOnError boolean

Indicates whether to fail the build on the first test error

database object

Database options

7 nested properties
schema string required

Database schema

host string

Database hostname (default: localhost)

database string

Database name (default: postchain)

username string

Database username (default: postchain)

password string

Database password (default: postchain)

driver string

Database driver

logSqlErrors boolean

Log any SQL errors to the console

libs Record<string, object>

Library definitions

compile object

Compilation options

6 nested properties
rellVersion string

Version of Rell to use. Must follow semantic versioning format: MAJOR.MINOR.PATCH.

pattern=^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
source string

Path to the source root directory

target string

Path to the compilation target folder

deprecatedError boolean

Fail build if deprecated features are used

Default: false
quiet boolean

Hide intermediary compilation output

Default: true
strictGtvConversion boolean

Use strict GTV conversion to disallow transformation of GTV types when parsing operation arguments. It is recommended to leave this set to true (default).

Default: true
deployments Record<string, object>

Deployment targets

docs object

Documentation options

7 nested properties
title string required

Title for the generated documentation site

customStyleSheets string[]

Additional CSS stylesheets to include

customAssets string[]

Additional image assets to include

additionalContent string[]

Additional Markdown documentation files to include

additionalModules string[]

Additional modules to include

footerMessage string

Message shown in the footer

sourceLink object

Link to a web site for browsing the source code

2 nested properties
remoteUrl string required

The URL of the source code hosting service that can be accessed by documentation readers

remoteLineSuffix string

The suffix used to append the source code line number to the URL

Default: ""#L""

Definitions

blockchain object

Name of blockchain (cannot contain hyphens '-')

module string

Entrypoint module for the blockchain (Name of module cannot contain hyphens '-')

Default: "main"
pattern=[A-Za-z_][A-Za-z_0-9]*
type string

Indicates whether this blockchain is marked as a library

Values: "blockchain" "library"
moduleArgs Record<string, object>

Module arguments

test object

Blockchain test properties

2 nested properties
modules string[]

Test root modules

moduleArgs Record<string, object>

Module arguments

config object

Additional blockchain configuration properties

15 nested properties
icmf object
1 nested properties
receiver object
gtx object

GTX configuration overrides

7 nested properties
max_transaction_size integer

Maximum size of transactions in bytes

Default: 26214400
max_transaction_signatures integer

Maximum number of signers/signatures for a transaction

Default: 100
modules string[]

Additional GTX Modules

allowoverrides boolean

Allow operations and queries with the same name to be overridden by another GTX module.

Default: false
slow_op_threshold integer

The threshold for considering an operation slow, in milliseconds. Slow operations are logged at INFO level, -1 disables this logging.

Default: -1
slow_prioritization_query_threshold integer

The threshold for considering a prioritization query slow, in milliseconds. Slow queries are logged at INFO level, -1 disables this logging.

Default: -1
rell object

Rell configurations

revolt object

Revolt configuration

6 nested properties
timeout integer

The default revolt timeout in milliseconds

Default: 10000
exponential_delay_initial integer

The initial delay of the revolt timeout in milliseconds

Default: 1000
exponential_delay_power_base string

Base of the exponential increase for the revolt timeout per round

Default: "1.2"
exponential_delay_max integer

Maximum possible revolt timeout in milliseconds

Default: 600000
fast_revolt_status_timeout integer

Timeout in milliseconds since the last received status message before considering a node disconnected and revolting immediately. -1 to disable this functionality

Default: 2000
revolt_when_should_build_block boolean

Start counting the revolt timeout only after considering it possible to build a block

Default: true
blockstrategy object

Block building strategy configuration

10 nested properties
name string

Block strategy, name of the class implementing net.postchain.core.block.BlockBuildingStrategy

maxblocksize integer

Maximum size of a block in bytes

Default: 27262976
maxblocktransactions integer

Maximum transactions per block

Default: 100
mininterblockinterval integer

Smallest time interval between blocks in milliseconds

Default: 1000
maxblocktime integer

Maximum time to wait before starting to build a block in milliseconds. Will be an empty block if transaction queue is empty.

Default: 30000
maxtxdelay integer

Maximum time to wait before starting to build a block after the first transaction is received, in milliseconds

Default: 1000
minbackofftime integer

Minimum back-off time before retrying a failed block, in milliseconds

Default: 20
maxbackofftime integer

Maximum back-off time before retrying a failed block, in milliseconds

Default: 2000
maxspecialendtransactionsize integer

Maximum size of a special end transaction, in bytes

Default: 1024
preemptiveblockbuilding boolean

Enable preemptive block building

Default: true
sync string

Synchronization Infrastructure (Do not change)

sync_ext string[]

Synchronization Insfrastructure extension (ex when using ICMF)

configurationfactory string

Configuration factory implementation

txqueuecapacity number

Maximum size of the transaction queue

Default: 2500
historic_brid string
pattern=^(x"[0-9A-Fa-f]{64}")$
dependencies object
config_consensus_strategy string

Configuration consensus strategy

Default: "HEADER_HASH"
query_cache_ttl_seconds number

How long a query response can be cached, in seconds. 0 means no caching.

Default: 0
max_block_future_time number

How long time in the future a block timestamp can be, compared to current time, in milliseconds. -1 means disabled check.

Default: 10000
add_primary_key_to_header boolean

If enabled primary node will add its public key to the block header. Please note that this value is not validated and can only be trusted for features that incentivize nodes to add their own key.

Default: true
features object

Blockchain features

webStatic string

Directory for static web content

webCacheTtlSeconds integer

Static web content cache TTL in seconds

Default: 3600
min=1
testModules string[]

Test root modules

blockchainTest object

Blockchain test properties

modules string[]

Test root modules

moduleArgs Record<string, object>

Module arguments

moduleArgs Record<string, object>

Module arguments

blockchainConfig object

Additional blockchain configuration properties

icmf object
1 nested properties
receiver object
1 nested properties
local object[]
gtx object

GTX configuration overrides

7 nested properties
max_transaction_size integer

Maximum size of transactions in bytes

Default: 26214400
max_transaction_signatures integer

Maximum number of signers/signatures for a transaction

Default: 100
modules string[]

Additional GTX Modules

allowoverrides boolean

Allow operations and queries with the same name to be overridden by another GTX module.

Default: false
slow_op_threshold integer

The threshold for considering an operation slow, in milliseconds. Slow operations are logged at INFO level, -1 disables this logging.

Default: -1
slow_prioritization_query_threshold integer

The threshold for considering a prioritization query slow, in milliseconds. Slow queries are logged at INFO level, -1 disables this logging.

Default: -1
rell object

Rell configurations

1 nested properties
native object

Map module names to their native function implementations (format: "moduleName": "nativeFunctionName")

revolt object

Revolt configuration

6 nested properties
timeout integer

The default revolt timeout in milliseconds

Default: 10000
exponential_delay_initial integer

The initial delay of the revolt timeout in milliseconds

Default: 1000
exponential_delay_power_base string

Base of the exponential increase for the revolt timeout per round

Default: "1.2"
exponential_delay_max integer

Maximum possible revolt timeout in milliseconds

Default: 600000
fast_revolt_status_timeout integer

Timeout in milliseconds since the last received status message before considering a node disconnected and revolting immediately. -1 to disable this functionality

Default: 2000
revolt_when_should_build_block boolean

Start counting the revolt timeout only after considering it possible to build a block

Default: true
blockstrategy object

Block building strategy configuration

10 nested properties
name string

Block strategy, name of the class implementing net.postchain.core.block.BlockBuildingStrategy

maxblocksize integer

Maximum size of a block in bytes

Default: 27262976
maxblocktransactions integer

Maximum transactions per block

Default: 100
mininterblockinterval integer

Smallest time interval between blocks in milliseconds

Default: 1000
maxblocktime integer

Maximum time to wait before starting to build a block in milliseconds. Will be an empty block if transaction queue is empty.

Default: 30000
maxtxdelay integer

Maximum time to wait before starting to build a block after the first transaction is received, in milliseconds

Default: 1000
minbackofftime integer

Minimum back-off time before retrying a failed block, in milliseconds

Default: 20
maxbackofftime integer

Maximum back-off time before retrying a failed block, in milliseconds

Default: 2000
maxspecialendtransactionsize integer

Maximum size of a special end transaction, in bytes

Default: 1024
preemptiveblockbuilding boolean

Enable preemptive block building

Default: true
sync string

Synchronization Infrastructure (Do not change)

sync_ext string[]

Synchronization Insfrastructure extension (ex when using ICMF)

configurationfactory string

Configuration factory implementation

txqueuecapacity number

Maximum size of the transaction queue

Default: 2500
historic_brid string
pattern=^(x"[0-9A-Fa-f]{64}")$
dependencies object
config_consensus_strategy string

Configuration consensus strategy

Default: "HEADER_HASH"
query_cache_ttl_seconds number

How long a query response can be cached, in seconds. 0 means no caching.

Default: 0
max_block_future_time number

How long time in the future a block timestamp can be, compared to current time, in milliseconds. -1 means disabled check.

Default: 10000
add_primary_key_to_header boolean

If enabled primary node will add its public key to the block header. Please note that this value is not validated and can only be trusted for features that incentivize nodes to add their own key.

Default: true
features object

Blockchain features

library object

Library definition

deployment object

Deployment target

brid string | null

Blockchain RID for the target network's management chain

pattern=^(x"[0-9A-Fa-f]{64}")|([0-9A-Fa-f]{64})$
container string | null

Container ID

url string | array

URL(s) to nodes in the system cluster or network

chains Record<string, string>

Map of deployed blockchains with their Blockchain RIDs on this network

icmf object
receiver object
1 nested properties
local object[]
gtx object

GTX configuration overrides

max_transaction_size integer

Maximum size of transactions in bytes

Default: 26214400
max_transaction_signatures integer

Maximum number of signers/signatures for a transaction

Default: 100
modules string[]

Additional GTX Modules

allowoverrides boolean

Allow operations and queries with the same name to be overridden by another GTX module.

Default: false
slow_op_threshold integer

The threshold for considering an operation slow, in milliseconds. Slow operations are logged at INFO level, -1 disables this logging.

Default: -1
slow_prioritization_query_threshold integer

The threshold for considering a prioritization query slow, in milliseconds. Slow queries are logged at INFO level, -1 disables this logging.

Default: -1
rell object

Rell configurations

1 nested properties
native object

Map module names to their native function implementations (format: "moduleName": "nativeFunctionName")

revolt object

Revolt configuration

timeout integer

The default revolt timeout in milliseconds

Default: 10000
exponential_delay_initial integer

The initial delay of the revolt timeout in milliseconds

Default: 1000
exponential_delay_power_base string

Base of the exponential increase for the revolt timeout per round

Default: "1.2"
exponential_delay_max integer

Maximum possible revolt timeout in milliseconds

Default: 600000
fast_revolt_status_timeout integer

Timeout in milliseconds since the last received status message before considering a node disconnected and revolting immediately. -1 to disable this functionality

Default: 2000
revolt_when_should_build_block boolean

Start counting the revolt timeout only after considering it possible to build a block

Default: true
blockstrategy object

Block building strategy configuration

name string

Block strategy, name of the class implementing net.postchain.core.block.BlockBuildingStrategy

maxblocksize integer

Maximum size of a block in bytes

Default: 27262976
maxblocktransactions integer

Maximum transactions per block

Default: 100
mininterblockinterval integer

Smallest time interval between blocks in milliseconds

Default: 1000
maxblocktime integer

Maximum time to wait before starting to build a block in milliseconds. Will be an empty block if transaction queue is empty.

Default: 30000
maxtxdelay integer

Maximum time to wait before starting to build a block after the first transaction is received, in milliseconds

Default: 1000
minbackofftime integer

Minimum back-off time before retrying a failed block, in milliseconds

Default: 20
maxbackofftime integer

Maximum back-off time before retrying a failed block, in milliseconds

Default: 2000
maxspecialendtransactionsize integer

Maximum size of a special end transaction, in bytes

Default: 1024
preemptiveblockbuilding boolean

Enable preemptive block building

Default: true