code.vegaprotocol.io/vega@v0.79.0/core/processor/config.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package processor
    17  
    18  import (
    19  	"code.vegaprotocol.io/vega/libs/config/encoding"
    20  	"code.vegaprotocol.io/vega/logging"
    21  )
    22  
    23  const (
    24  	namedLogger = "processor"
    25  )
    26  
    27  type Snapshot struct {
    28  	DevEnabled     encoding.Bool
    29  	CrashAtHeight  uint64 `long:"crash-with-snapshot-at"`
    30  	DebugCrashFile string `long:"snapshot-dump-path"`
    31  }
    32  
    33  // Config represent the configuration of the processor package.
    34  type Config struct {
    35  	Level               encoding.LogLevel `long:"log-level"`
    36  	LogOrderSubmitDebug encoding.Bool     `long:"log-order-submit-debug"`
    37  	LogOrderAmendDebug  encoding.Bool     `long:"log-order-amend-debug"`
    38  	LogOrderCancelDebug encoding.Bool     `long:"log-order-cancel-debug"`
    39  	KeepCheckpointsMax  uint              `long:"keep-checkpoints-max"`
    40  	SnapshotDebug       Snapshot          `group:"SnapshotDebug"         namespace:"snapshotdebug"`
    41  }
    42  
    43  // NewDefaultConfig creates an instance of the package specific configuration, given a
    44  // pointer to a logger instance to be used for logging within the package.
    45  func NewDefaultConfig() Config {
    46  	return Config{
    47  		Level:               encoding.LogLevel{Level: logging.InfoLevel},
    48  		LogOrderSubmitDebug: true,
    49  		KeepCheckpointsMax:  20,
    50  		SnapshotDebug: Snapshot{
    51  			DevEnabled:     false,
    52  			CrashAtHeight:  0,
    53  			DebugCrashFile: "/tmp/snapshot.json",
    54  		},
    55  	}
    56  }