blockchain.conf.json

Overview

The blockchain.conf.json file defines a comprehensive configuration for a blockchain system. It encapsulates critical constants, parameters, and settings that govern the behavior, capabilities, economic model, validator rules, gas limits, and other operational aspects of the blockchain. This configuration file is a static JSON representation likely loaded by the blockchain node software to initialize and enforce protocol rules and settings consistently across the network.

This file does not contain executable code, but serves as a structured data source from which other components in the system derive their operational parameters. It is closely related to blockchain consensus, economics, network validation, and gas management functionalities.


Detailed Structure and Field Descriptions

The JSON structure is organized into several parameter groups, each identified by keys like "p0", "p1", "p7", etc. Each group contains parameters relevant to a particular aspect of the blockchain.

p0, p1, p2, p3 (Hashes and Identifiers)

p7 (Currencies and Values)

p8 (Version and Capabilities)

p9, p10 (Allowed or Supported Identifiers)

p11 (Normal and Critical Parameters)

p12 (Workchain Configuration)

p13 (BOC - Bag of Cells)

p14 (Block Fees)

p15 (Validator Election Timing)

p16 (Validator Limits)

p17 (Stake Parameters)

p18 (Pricing Over Time)

p20 and p21 (Gas Limits and Pricing)

p22 and p23 (Resource Limits)

p24 and p25 (Pricing Factors)

p28 (Catchain and Validator Lifetimes)

p29 (Consensus Timing and Limits)

p31 (Public Key List)

p34 (Validator Weights)

p42 (Payout Thresholds)


Important Implementation Details


Interaction with Other System Components


Usage Example

A blockchain node on startup reads blockchain.conf.json and extracts:

For instance, to determine the minimum stake required for validators, the system reads p17.min_stake.


Visual Diagram

flowchart TD
ConfigFile["blockchain.conf.json"]
ConfigFile --> Hashes["Hashes and IDs (p0-p3)"]
ConfigFile --> Currencies["Currencies (p7)"]
ConfigFile --> VersionCaps["Version & Capabilities (p8)"]
ConfigFile --> AllowedIDs["Allowed IDs (p9, p10)"]
ConfigFile --> Params["Parameters (p11)"]
ConfigFile --> Workchains["Workchains (p12)"]
ConfigFile --> BOC["BOC Data (p13)"]
ConfigFile --> Fees["Block Fees (p14)"]
ConfigFile --> Elections["Election Timing (p15)"]
ConfigFile --> ValidatorLimits["Validator Limits (p16)"]
ConfigFile --> StakeParams["Stake Parameters (p17)"]
ConfigFile --> PricingOverTime["Pricing Over Time (p18)"]
ConfigFile --> GasLimits1["Gas Limits Set 1 (p20)"]
ConfigFile --> GasLimits2["Gas Limits Set 2 (p21)"]
ConfigFile --> ResourceLimits1["Resource Limits Set 1 (p22)"]
ConfigFile --> ResourceLimits2["Resource Limits Set 2 (p23)"]
ConfigFile --> PricingFactors1["Pricing Factors Set 1 (p24)"]
ConfigFile --> PricingFactors2["Pricing Factors Set 2 (p25)"]
ConfigFile --> CatchainParams["Catchain & Validator Lifetimes (p28)"]
ConfigFile --> ConsensusParams["Consensus Timing & Limits (p29)"]
ConfigFile --> PubKeys["Public Keys List (p31)"]
ConfigFile --> ValidatorWeights["Validator Weights (p34)"]
ConfigFile --> PayoutThresholds["Payout Thresholds (p42)"]

This flowchart illustrates the main parameter groups within the file and their organization, showing how the configuration is structured into thematic sections relevant for blockchain operation.