Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Access] Store Transaction Result error messages in db #6468

Merged
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
527efed
Added implementation of storing in the badger db transaction result e…
UlyanaAndrukhiv Sep 10, 2024
5222dca
Added fetching and storing transaction result error messages, refacto…
UlyanaAndrukhiv Sep 12, 2024
5394c36
Updated API LookupErrorMessage calls, updated tx result error message…
UlyanaAndrukhiv Sep 17, 2024
61c2fb4
Merged with master
UlyanaAndrukhiv Sep 17, 2024
c5d0d57
Linted
UlyanaAndrukhiv Sep 17, 2024
ce87d79
Added verification check for process transaction result error messages
UlyanaAndrukhiv Sep 17, 2024
910768b
Added tests for storing transaction result error messages
UlyanaAndrukhiv Sep 17, 2024
b068995
Updated storing tx result error messages by index, updated tests
UlyanaAndrukhiv Sep 18, 2024
66bf7cb
Added constant message storing to db if no execution nodes return a v…
UlyanaAndrukhiv Sep 18, 2024
5dbfbe2
Updated storing failed tx error messages for LookupErrorMessageByTran…
UlyanaAndrukhiv Sep 18, 2024
894bae6
Added missed check for LookupErrorMessageByTransactionID
UlyanaAndrukhiv Sep 18, 2024
0f5c2bd
Updated lookup error messages api calls
UlyanaAndrukhiv Sep 19, 2024
8fe719c
Updated lookup error messages api checks, added part of backend tx tests
UlyanaAndrukhiv Sep 19, 2024
0b50f46
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Sep 19, 2024
e8c2305
Added more tests for LookupErrorMessages, added godoc for tests
UlyanaAndrukhiv Sep 19, 2024
2c6e42e
Removed outdated comment
UlyanaAndrukhiv Sep 19, 2024
e4dedc3
Updated access tests
UlyanaAndrukhiv Sep 19, 2024
7201c34
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Sep 20, 2024
0f66bbb
Simplified creation of mock connection factory in backend tests
UlyanaAndrukhiv Sep 20, 2024
bc77f44
Added functional test for properly fetching processed and storing tra…
UlyanaAndrukhiv Sep 23, 2024
d25af6a
Refactored backend api according to suggestion
UlyanaAndrukhiv Sep 23, 2024
a1b7f8a
Added integration test for storing tx error messages
UlyanaAndrukhiv Sep 24, 2024
75368bb
Updated last commit
UlyanaAndrukhiv Sep 24, 2024
0898bfa
Updated TestTransactionResultErrorMessagesAreFetched
UlyanaAndrukhiv Sep 24, 2024
1eac423
Linted
UlyanaAndrukhiv Sep 24, 2024
6bcff19
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Sep 25, 2024
4d99fea
Removed unnecessary changes
UlyanaAndrukhiv Sep 25, 2024
975ee02
Changed creation place of TransactionResultErrorMessages storage, upd…
UlyanaAndrukhiv Oct 1, 2024
ebb10bb
Added missed check for engine to avoid extra work
UlyanaAndrukhiv Oct 1, 2024
4003662
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Oct 1, 2024
059e75c
Merge branch 'master' of github.com:The-K-R-O-K/flow-go into UlyanaAn…
UlyanaAndrukhiv Oct 2, 2024
93a321e
Merged with master
UlyanaAndrukhiv Oct 2, 2024
7393e09
Merge branch 'UlyanaAndrukhiv/6302-store-transaction-result-error-mes…
UlyanaAndrukhiv Oct 2, 2024
b062f8a
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Oct 4, 2024
ac842df
Updated according to suggested comments
UlyanaAndrukhiv Oct 4, 2024
dfbeb9c
Updated api according to comments
UlyanaAndrukhiv Oct 4, 2024
bc180d9
Updated godoc for storage
UlyanaAndrukhiv Oct 7, 2024
16cb115
Updated store tx error message as suggested
UlyanaAndrukhiv Oct 7, 2024
3a9474b
Added another trigger point to get error messages, updated error hand…
UlyanaAndrukhiv Oct 7, 2024
7f0abdb
Udated tests
UlyanaAndrukhiv Oct 7, 2024
7768a35
Added db Exists testing to transaction result messages testing
UlyanaAndrukhiv Oct 7, 2024
203e10f
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Oct 7, 2024
bee6180
Updated process of handling transaction error messages by creting new…
UlyanaAndrukhiv Oct 14, 2024
3d93f30
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Oct 14, 2024
710d3f7
Added retry mechanism for tx error messages handling in case of failure
UlyanaAndrukhiv Oct 14, 2024
df13d9d
Removed unused parameter in function
UlyanaAndrukhiv Oct 15, 2024
4e2e0d6
Updated unite tests
UlyanaAndrukhiv Oct 15, 2024
bd2cf38
Updated naming and flag description
UlyanaAndrukhiv Oct 16, 2024
ed4aa35
Updated fetching tx error messages according to comments, added expon…
UlyanaAndrukhiv Oct 17, 2024
aa53180
Updated godoc
UlyanaAndrukhiv Oct 17, 2024
dd56f17
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Oct 17, 2024
717a2af
Updated godoc
UlyanaAndrukhiv Oct 17, 2024
c9c3697
Apply suggestions from code review
UlyanaAndrukhiv Oct 18, 2024
9ce9d22
Updated logging and errors according to comments
UlyanaAndrukhiv Oct 18, 2024
ae35471
Refactored syncing tx error messages by separated core and created se…
UlyanaAndrukhiv Oct 22, 2024
2180706
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Oct 22, 2024
bac734f
Merged with master
UlyanaAndrukhiv Oct 22, 2024
b7b746e
Added aditional checks for ingestion engine in case if tx error messa…
UlyanaAndrukhiv Oct 23, 2024
94ccde2
Merge branch 'master' into UlyanaAndrukhiv/6302-store-transaction-res…
UlyanaAndrukhiv Oct 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 35 additions & 15 deletions cmd/access/node_builder/access_node_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,6 @@ type AccessNodeConfig struct {
executionDataConfig edrequester.ExecutionDataConfig
PublicNetworkConfig PublicNetworkConfig
TxResultCacheSize uint
TxErrorMessagesCacheSize uint
executionDataIndexingEnabled bool
registersDBPath string
checkpointFile string
Expand All @@ -175,6 +174,7 @@ type AccessNodeConfig struct {
programCacheSize uint
checkPayerBalanceMode string
versionControlEnabled bool
storeTxResultErrorMessages bool
stopControlEnabled bool
registerDBPruneThreshold uint64
}
Expand Down Expand Up @@ -248,7 +248,6 @@ func DefaultAccessNodeConfig() *AccessNodeConfig {
apiRatelimits: nil,
apiBurstlimits: nil,
TxResultCacheSize: 0,
TxErrorMessagesCacheSize: 1000,
PublicNetworkConfig: PublicNetworkConfig{
BindAddress: cmd.NotSet,
Metrics: metrics.NewNoopCollector(),
Expand Down Expand Up @@ -280,6 +279,7 @@ func DefaultAccessNodeConfig() *AccessNodeConfig {
programCacheSize: 0,
checkPayerBalanceMode: accessNode.Disabled.String(),
versionControlEnabled: true,
storeTxResultErrorMessages: false,
stopControlEnabled: false,
registerDBPruneThreshold: pruner.DefaultThreshold,
}
Expand Down Expand Up @@ -351,6 +351,7 @@ type FlowAccessNodeBuilder struct {
stateStreamGrpcServer *grpcserver.GrpcServer

stateStreamBackend *statestreambackend.StateStreamBackend
nodeBackend *backend.Backend
}

func (builder *FlowAccessNodeBuilder) buildFollowerState() *FlowAccessNodeBuilder {
Expand Down Expand Up @@ -1241,7 +1242,6 @@ func (builder *FlowAccessNodeBuilder) extraFlags() {
flags.BoolVar(&builder.retryEnabled, "retry-enabled", defaultConfig.retryEnabled, "whether to enable the retry mechanism at the access node level")
flags.BoolVar(&builder.rpcMetricsEnabled, "rpc-metrics-enabled", defaultConfig.rpcMetricsEnabled, "whether to enable the rpc metrics")
flags.UintVar(&builder.TxResultCacheSize, "transaction-result-cache-size", defaultConfig.TxResultCacheSize, "transaction result cache size.(Disabled by default i.e 0)")
flags.UintVar(&builder.TxErrorMessagesCacheSize, "transaction-error-messages-cache-size", defaultConfig.TxErrorMessagesCacheSize, "transaction error messages cache size.(By default 1000)")
flags.StringVarP(&builder.nodeInfoFile,
"node-info-file",
"",
Expand Down Expand Up @@ -1375,7 +1375,10 @@ func (builder *FlowAccessNodeBuilder) extraFlags() {
"tx-result-query-mode",
defaultConfig.rpcConf.BackendConfig.TxResultQueryMode,
"mode to use when querying transaction results. one of [local-only, execution-nodes-only(default), failover]")

flags.BoolVar(&builder.storeTxResultErrorMessages,
"store-tx-result-error-messages",
defaultConfig.storeTxResultErrorMessages,
"whether to enable storing transaction error messages into the db")
// Script Execution
flags.StringVar(&builder.rpcConf.BackendConfig.ScriptExecutionMode,
"script-execution-mode",
Expand Down Expand Up @@ -1488,9 +1491,6 @@ func (builder *FlowAccessNodeBuilder) extraFlags() {
return errors.New("circuit-breaker-restore-timeout must be greater than 0")
}
}
if builder.TxErrorMessagesCacheSize == 0 {
return errors.New("transaction-error-messages-cache-size must be greater than 0")
}

if builder.checkPayerBalanceMode != accessNode.Disabled.String() && !builder.executionDataIndexingEnabled {
return errors.New("execution-data-indexing-enabled must be set if check-payer-balance is enabled")
Expand Down Expand Up @@ -1603,7 +1603,8 @@ func (builder *FlowAccessNodeBuilder) enqueueRelayNetwork() {
}

func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
var processedBlockHeight storage.ConsumerProgress
var processedFinalizedBlockHeight storage.ConsumerProgress
var processedTxErrorMessagesBlockHeight storage.ConsumerProgress

if builder.executionDataSyncEnabled {
builder.BuildExecutionSyncComponents()
Expand Down Expand Up @@ -1799,8 +1800,15 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
builder.TxResultsIndex = index.NewTransactionResultsIndex(builder.Reporter, builder.Storage.LightTransactionResults)
return nil
}).
Module("processed block height consumer progress", func(node *cmd.NodeConfig) error {
processedBlockHeight = bstorage.NewConsumerProgress(builder.DB, module.ConsumeProgressIngestionEngineBlockHeight)
Module("processed finalized block height consumer progress", func(node *cmd.NodeConfig) error {
processedFinalizedBlockHeight = bstorage.NewConsumerProgress(builder.DB, module.ConsumeProgressIngestionEngineBlockHeight)
return nil
}).
Module("processed error messages block height consumer progress", func(node *cmd.NodeConfig) error {
processedTxErrorMessagesBlockHeight = bstorage.NewConsumerProgress(
builder.DB,
module.ConsumeProgressIngestionEngineTxErrorMessagesBlockHeight,
)
return nil
}).
Module("processed last full block height monotonic consumer progress", func(node *cmd.NodeConfig) error {
Expand All @@ -1817,6 +1825,13 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {

return nil
}).
Module("transaction result error messages storage", func(node *cmd.NodeConfig) error {
if builder.storeTxResultErrorMessages {
builder.Storage.TransactionResultErrorMessages = bstorage.NewTransactionResultErrorMessages(node.Metrics.Cache, node.DB, bstorage.DefaultCacheSize)
}

return nil
}).
Component("version control", func(node *cmd.NodeConfig) (module.ReadyDoneAware, error) {
if !builder.versionControlEnabled {
noop := &module.NoopReadyDoneAware{}
Expand Down Expand Up @@ -1944,7 +1959,7 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {

}

nodeBackend, err := backend.New(backend.Params{
builder.nodeBackend, err = backend.New(backend.Params{
State: node.State,
CollectionRPC: builder.CollectionRPC,
HistoricalAccessNodes: builder.HistoricalAccessRPCs,
Expand All @@ -1954,6 +1969,7 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
Transactions: node.Storage.Transactions,
ExecutionReceipts: node.Storage.Receipts,
ExecutionResults: node.Storage.Results,
TxResultErrorMessages: node.Storage.TransactionResultErrorMessages,
ChainID: node.RootChainID,
AccessMetrics: builder.AccessMetrics,
ConnFactory: connFactory,
Expand All @@ -1965,7 +1981,6 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
Communicator: backend.NewNodeCommunicator(backendConfig.CircuitBreakerConfig.Enabled),
TxResultCacheSize: builder.TxResultCacheSize,
TxErrorMessagesCacheSize: builder.TxErrorMessagesCacheSize,
ScriptExecutor: builder.ScriptExecutor,
ScriptExecutionMode: scriptExecMode,
CheckPayerBalanceMode: checkPayerBalanceMode,
Expand Down Expand Up @@ -1997,8 +2012,8 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
builder.AccessMetrics,
builder.rpcMetricsEnabled,
builder.Me,
nodeBackend,
nodeBackend,
builder.nodeBackend,
builder.nodeBackend,
builder.secureGrpcServer,
builder.unsecureGrpcServer,
builder.stateStreamBackend,
Expand Down Expand Up @@ -2049,9 +2064,14 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
node.Storage.Transactions,
node.Storage.Results,
node.Storage.Receipts,
node.Storage.TransactionResultErrorMessages,
builder.collectionExecutedMetric,
processedBlockHeight,
processedFinalizedBlockHeight,
processedTxErrorMessagesBlockHeight,
lastFullBlockHeight,
builder.nodeBackend,
builder.rpcConf.BackendConfig.PreferredExecutionNodeIDs,
builder.rpcConf.BackendConfig.FixedExecutionNodeIDs,
)
if err != nil {
return nil, err
Expand Down
131 changes: 95 additions & 36 deletions engine/access/access_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -329,16 +329,15 @@ func (suite *Suite) TestSendTransactionToRandomCollectionNode() {
connFactory.On("GetAccessAPIClient", collNode2.Address, nil).Return(col2ApiClient, &mockCloser{}, nil)

bnd, err := backend.New(backend.Params{State: suite.state,
Collections: collections,
Transactions: transactions,
ChainID: suite.chainID,
AccessMetrics: metrics,
ConnFactory: connFactory,
MaxHeightRange: backend.DefaultMaxHeightRange,
Log: suite.log,
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
Communicator: backend.NewNodeCommunicator(false),
TxErrorMessagesCacheSize: 1000,
Collections: collections,
Transactions: transactions,
ChainID: suite.chainID,
AccessMetrics: metrics,
ConnFactory: connFactory,
MaxHeightRange: backend.DefaultMaxHeightRange,
Log: suite.log,
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
Communicator: backend.NewNodeCommunicator(false),
})
require.NoError(suite.T(), err)

Expand Down Expand Up @@ -659,7 +658,6 @@ func (suite *Suite) TestGetSealedTransaction() {
Log: suite.log,
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
Communicator: backend.NewNodeCommunicator(false),
TxErrorMessagesCacheSize: 1000,
TxResultQueryMode: backend.IndexQueryModeExecutionNodesOnly,
})
require.NoError(suite.T(), err)
Expand All @@ -685,8 +683,29 @@ func (suite *Suite) TestGetSealedTransaction() {

// create the ingest engine
processedHeight := bstorage.NewConsumerProgress(db, module.ConsumeProgressIngestionEngineBlockHeight)
processedTxErrorMessagesBlockHeight := bstorage.NewConsumerProgress(db, module.ConsumeProgressIngestionEngineTxErrorMessagesBlockHeight)

ingestEng, err := ingestion.New(suite.log, suite.net, suite.state, suite.me, suite.request, all.Blocks, all.Headers, collections, transactions, results, receipts, collectionExecutedMetric, processedHeight, lastFullBlockHeight)
ingestEng, err := ingestion.New(
suite.log,
suite.net,
suite.state,
suite.me,
suite.request,
all.Blocks,
all.Headers,
collections,
transactions,
results,
receipts,
nil,
collectionExecutedMetric,
processedHeight,
processedTxErrorMessagesBlockHeight,
lastFullBlockHeight,
bnd,
enNodeIDs.Strings(),
nil,
)
require.NoError(suite.T(), err)

// 1. Assume that follower engine updated the block storage and the protocol state. The block is reported as sealed
Expand Down Expand Up @@ -743,7 +762,6 @@ func (suite *Suite) TestGetTransactionResult() {
all := util.StorageLayer(suite.T(), db)
results := bstorage.NewExecutionResults(suite.metrics, db)
receipts := bstorage.NewExecutionReceipts(suite.metrics, db, results, bstorage.DefaultCacheSize)

originID := unittest.IdentifierFixture()

*suite.state = protocol.State{}
Expand Down Expand Up @@ -821,7 +839,6 @@ func (suite *Suite) TestGetTransactionResult() {
Log: suite.log,
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
Communicator: backend.NewNodeCommunicator(false),
TxErrorMessagesCacheSize: 1000,
TxResultQueryMode: backend.IndexQueryModeExecutionNodesOnly,
})
require.NoError(suite.T(), err)
Expand All @@ -840,14 +857,36 @@ func (suite *Suite) TestGetTransactionResult() {
require.NoError(suite.T(), err)

processedHeight := bstorage.NewConsumerProgress(db, module.ConsumeProgressIngestionEngineBlockHeight)
processedTxErrorMessagesBlockHeight := bstorage.NewConsumerProgress(db, module.ConsumeProgressIngestionEngineTxErrorMessagesBlockHeight)

lastFullBlockHeight, err := counters.NewPersistentStrictMonotonicCounter(
bstorage.NewConsumerProgress(db, module.ConsumeProgressLastFullBlockHeight),
suite.rootBlock.Height,
)
require.NoError(suite.T(), err)

// create the ingest engine
ingestEng, err := ingestion.New(suite.log, suite.net, suite.state, suite.me, suite.request, all.Blocks, all.Headers, collections, transactions, results, receipts, collectionExecutedMetric, processedHeight, lastFullBlockHeight)
ingestEng, err := ingestion.New(
suite.log,
suite.net,
suite.state,
suite.me,
suite.request,
all.Blocks,
all.Headers,
collections,
transactions,
results,
receipts,
nil,
collectionExecutedMetric,
processedHeight,
processedTxErrorMessagesBlockHeight,
lastFullBlockHeight,
bnd,
enNodeIDs.Strings(),
nil,
)
require.NoError(suite.T(), err)

background, cancel := context.WithCancel(context.Background())
Expand Down Expand Up @@ -1009,7 +1048,6 @@ func (suite *Suite) TestExecuteScript() {
collections := bstorage.NewCollections(db, transactions)
results := bstorage.NewExecutionResults(suite.metrics, db)
receipts := bstorage.NewExecutionReceipts(suite.metrics, db, results, bstorage.DefaultCacheSize)

identities := unittest.IdentityListFixture(2, unittest.WithRole(flow.RoleExecution))
suite.sealedSnapshot.On("Identities", mock.Anything).Return(identities, nil)
suite.finalSnapshot.On("Identities", mock.Anything).Return(identities, nil)
Expand All @@ -1020,25 +1058,24 @@ func (suite *Suite) TestExecuteScript() {

var err error
suite.backend, err = backend.New(backend.Params{
State: suite.state,
CollectionRPC: suite.collClient,
Blocks: all.Blocks,
Headers: all.Headers,
Collections: collections,
Transactions: transactions,
ExecutionReceipts: receipts,
ExecutionResults: results,
ChainID: suite.chainID,
AccessMetrics: suite.metrics,
ConnFactory: connFactory,
MaxHeightRange: backend.DefaultMaxHeightRange,
FixedExecutionNodeIDs: (identities.NodeIDs()).Strings(),
Log: suite.log,
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
Communicator: backend.NewNodeCommunicator(false),
ScriptExecutionMode: backend.IndexQueryModeExecutionNodesOnly,
TxErrorMessagesCacheSize: 1000,
TxResultQueryMode: backend.IndexQueryModeExecutionNodesOnly,
State: suite.state,
CollectionRPC: suite.collClient,
Blocks: all.Blocks,
Headers: all.Headers,
Collections: collections,
Transactions: transactions,
ExecutionReceipts: receipts,
ExecutionResults: results,
ChainID: suite.chainID,
AccessMetrics: suite.metrics,
ConnFactory: connFactory,
MaxHeightRange: backend.DefaultMaxHeightRange,
FixedExecutionNodeIDs: (identities.NodeIDs()).Strings(),
Log: suite.log,
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
Communicator: backend.NewNodeCommunicator(false),
ScriptExecutionMode: backend.IndexQueryModeExecutionNodesOnly,
TxResultQueryMode: backend.IndexQueryModeExecutionNodesOnly,
})
require.NoError(suite.T(), err)

Expand Down Expand Up @@ -1069,14 +1106,36 @@ func (suite *Suite) TestExecuteScript() {
Once()

processedHeight := bstorage.NewConsumerProgress(db, module.ConsumeProgressIngestionEngineBlockHeight)
processedTxErrorMessagesBlockHeight := bstorage.NewConsumerProgress(db, module.ConsumeProgressIngestionEngineTxErrorMessagesBlockHeight)

lastFullBlockHeight, err := counters.NewPersistentStrictMonotonicCounter(
bstorage.NewConsumerProgress(db, module.ConsumeProgressLastFullBlockHeight),
suite.rootBlock.Height,
)
require.NoError(suite.T(), err)

// create the ingest engine
ingestEng, err := ingestion.New(suite.log, suite.net, suite.state, suite.me, suite.request, all.Blocks, all.Headers, collections, transactions, results, receipts, collectionExecutedMetric, processedHeight, lastFullBlockHeight)
ingestEng, err := ingestion.New(
suite.log,
suite.net,
suite.state,
suite.me,
suite.request,
all.Blocks,
all.Headers,
collections,
transactions,
results,
receipts,
nil,
collectionExecutedMetric,
processedHeight,
processedTxErrorMessagesBlockHeight,
lastFullBlockHeight,
suite.backend,
nil,
identities.NodeIDs().Strings(),
)
require.NoError(suite.T(), err)

// create another block as a predecessor of the block created earlier
Expand Down
Loading
Loading