github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/engine/collection/ingest/config.go (about)

     1  package ingest
     2  
     3  import (
     4  	"github.com/onflow/flow-go/model/flow"
     5  )
     6  
     7  // Config defines configuration for the transaction ingest engine.
     8  type Config struct {
     9  	// how much buffer time there is between a transaction being ingested by a
    10  	// collection node and being included in a collection and block
    11  	ExpiryBuffer uint
    12  	// the maximum transaction gas limit
    13  	MaxGasLimit uint64
    14  	// whether or not we check that transaction scripts are parse-able
    15  	CheckScriptsParse bool
    16  	// how many extra nodes in the responsible cluster we propagate transactions to
    17  	// (we always send to at least one)
    18  	PropagationRedundancy uint
    19  	// the maximum transaction byte size limit
    20  	MaxTransactionByteSize uint64
    21  	// maximum collection byte size, it acts as hard limit max for the tx size.
    22  	MaxCollectionByteSize uint64
    23  	// maximum number of un-processed transaction messages to hold in the queue.
    24  	MaxMessageQueueSize uint
    25  }
    26  
    27  func DefaultConfig() Config {
    28  	return Config{
    29  		ExpiryBuffer:           flow.DefaultTransactionExpiryBuffer,
    30  		MaxGasLimit:            flow.DefaultMaxTransactionGasLimit,
    31  		MaxTransactionByteSize: flow.DefaultMaxTransactionByteSize,
    32  		MaxCollectionByteSize:  flow.DefaultMaxCollectionByteSize,
    33  		CheckScriptsParse:      true,
    34  		PropagationRedundancy:  2,
    35  		MaxMessageQueueSize:    10_000,
    36  	}
    37  }