Skip to content

Commit 83dbe69

Browse files
Revert "Merge pull request #6499 from The-K-R-O-K/UlyanaAndrukhiv/6497-refactor-executionNodesForBlockID"
This reverts commit 1a793e8.
1 parent 409565d commit 83dbe69

19 files changed

+638
-807
lines changed

cmd/access/node_builder/access_node_builder.go

Lines changed: 67 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ type FlowAccessNodeBuilder struct {
319319
stateStreamBackend *statestreambackend.StateStreamBackend
320320
nodeBackend *backend.Backend
321321

322-
ExecNodeIdentitiesProvider *commonrpc.ExecutionNodeIdentitiesProvider
323-
TxResultErrorMessagesCore *tx_error_messages.TxErrorMessagesCore
322+
TxResultErrorMessagesCore *tx_error_messages.TxErrorMessagesCore
324323
}
325324

326325
func (builder *FlowAccessNodeBuilder) buildFollowerState() *FlowAccessNodeBuilder {
@@ -1436,18 +1435,14 @@ func (builder *FlowAccessNodeBuilder) enqueueRelayNetwork() {
14361435
func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
14371436
var processedFinalizedBlockHeight storage.ConsumerProgress
14381437
var processedTxErrorMessagesBlockHeight storage.ConsumerProgress
1438+
var lastFullBlockHeight *counters.PersistentStrictMonotonicCounter
14391439

14401440
if builder.executionDataSyncEnabled {
14411441
builder.BuildExecutionSyncComponents()
14421442
}
14431443

14441444
ingestionDependable := module.NewProxiedReadyDoneAware()
14451445
builder.IndexerDependencies.Add(ingestionDependable)
1446-
versionControlDependable := module.NewProxiedReadyDoneAware()
1447-
builder.IndexerDependencies.Add(versionControlDependable)
1448-
stopControlDependable := module.NewProxiedReadyDoneAware()
1449-
builder.IndexerDependencies.Add(stopControlDependable)
1450-
var lastFullBlockHeight *counters.PersistentStrictMonotonicCounter
14511446

14521447
builder.
14531448
BuildConsensusFollower().
@@ -1627,14 +1622,14 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
16271622
return nil
16281623
}).
16291624
Module("processed last full block height monotonic consumer progress", func(node *cmd.NodeConfig) error {
1630-
rootBlockHeight, err := node.State.Params().FinalizedRoot()
1625+
rootBlock, err := node.State.Params().FinalizedRoot()
16311626
if err != nil {
16321627
return fmt.Errorf("could not get root block height: %w", err)
16331628
}
16341629

16351630
lastFullBlockHeight, err = counters.NewPersistentStrictMonotonicCounter(
16361631
bstorage.NewConsumerProgress(builder.DB, module.ConsumeProgressLastFullBlockHeight),
1637-
rootBlockHeight.Height,
1632+
rootBlock.Height,
16381633
)
16391634
if err != nil {
16401635
return fmt.Errorf("failed to initialize monotonic consumer progress: %w", err)
@@ -1644,11 +1639,7 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
16441639
}).
16451640
Module("transaction result error messages storage", func(node *cmd.NodeConfig) error {
16461641
if builder.storeTxResultErrorMessages {
1647-
builder.Storage.TransactionResultErrorMessages = bstorage.NewTransactionResultErrorMessages(
1648-
node.Metrics.Cache,
1649-
node.DB,
1650-
bstorage.DefaultCacheSize,
1651-
)
1642+
builder.Storage.TransactionResultErrorMessages = bstorage.NewTransactionResultErrorMessages(node.Metrics.Cache, node.DB, bstorage.DefaultCacheSize)
16521643
}
16531644

16541645
return nil
@@ -1706,56 +1697,39 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
17061697
return nil, fmt.Errorf("transaction result query mode 'compare' is not supported")
17071698
}
17081699

1709-
preferredENIdentifiers, err := commonrpc.IdentifierList(backendConfig.PreferredExecutionNodeIDs)
1710-
if err != nil {
1711-
return nil, fmt.Errorf("failed to convert node id string to Flow Identifier for preferred EN map: %w", err)
1712-
}
1713-
1714-
fixedENIdentifiers, err := commonrpc.IdentifierList(backendConfig.FixedExecutionNodeIDs)
1715-
if err != nil {
1716-
return nil, fmt.Errorf("failed to convert node id string to Flow Identifier for fixed EN map: %w", err)
1717-
}
1718-
1719-
builder.ExecNodeIdentitiesProvider = commonrpc.NewExecutionNodeIdentitiesProvider(
1720-
node.Logger,
1721-
node.State,
1722-
node.Storage.Receipts,
1723-
preferredENIdentifiers,
1724-
fixedENIdentifiers,
1725-
)
1726-
1727-
builder.nodeBackend, err = backend.New(backend.Params{
1728-
State: node.State,
1729-
CollectionRPC: builder.CollectionRPC,
1730-
HistoricalAccessNodes: builder.HistoricalAccessRPCs,
1731-
Blocks: node.Storage.Blocks,
1732-
Headers: node.Storage.Headers,
1733-
Collections: node.Storage.Collections,
1734-
Transactions: node.Storage.Transactions,
1735-
ExecutionReceipts: node.Storage.Receipts,
1736-
ExecutionResults: node.Storage.Results,
1737-
TxResultErrorMessages: node.Storage.TransactionResultErrorMessages,
1738-
ChainID: node.RootChainID,
1739-
AccessMetrics: builder.AccessMetrics,
1740-
ConnFactory: connFactory,
1741-
RetryEnabled: builder.retryEnabled,
1742-
MaxHeightRange: backendConfig.MaxHeightRange,
1743-
Log: node.Logger,
1744-
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
1745-
Communicator: backend.NewNodeCommunicator(backendConfig.CircuitBreakerConfig.Enabled),
1746-
TxResultCacheSize: builder.TxResultCacheSize,
1747-
ScriptExecutor: builder.ScriptExecutor,
1748-
ScriptExecutionMode: scriptExecMode,
1749-
EventQueryMode: eventQueryMode,
1750-
EventsIndex: builder.EventsIndex,
1751-
TxResultQueryMode: txResultQueryMode,
1752-
TxResultsIndex: builder.TxResultsIndex,
1753-
LastFullBlockHeight: lastFullBlockHeight,
1754-
ExecNodeIdentitiesProvider: builder.ExecNodeIdentitiesProvider,
1700+
back, err := backend.New(backend.Params{
1701+
State: node.State,
1702+
CollectionRPC: builder.CollectionRPC,
1703+
HistoricalAccessNodes: builder.HistoricalAccessRPCs,
1704+
Blocks: node.Storage.Blocks,
1705+
Headers: node.Storage.Headers,
1706+
Collections: node.Storage.Collections,
1707+
Transactions: node.Storage.Transactions,
1708+
ExecutionReceipts: node.Storage.Receipts,
1709+
ExecutionResults: node.Storage.Results,
1710+
TxResultErrorMessages: node.Storage.TransactionResultErrorMessages,
1711+
ChainID: node.RootChainID,
1712+
AccessMetrics: builder.AccessMetrics,
1713+
ConnFactory: connFactory,
1714+
RetryEnabled: builder.retryEnabled,
1715+
MaxHeightRange: backendConfig.MaxHeightRange,
1716+
PreferredExecutionNodeIDs: backendConfig.PreferredExecutionNodeIDs,
1717+
FixedExecutionNodeIDs: backendConfig.FixedExecutionNodeIDs,
1718+
Log: node.Logger,
1719+
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
1720+
Communicator: backend.NewNodeCommunicator(backendConfig.CircuitBreakerConfig.Enabled),
1721+
TxResultCacheSize: builder.TxResultCacheSize,
1722+
ScriptExecutor: builder.ScriptExecutor,
1723+
ScriptExecutionMode: scriptExecMode,
1724+
EventQueryMode: eventQueryMode,
1725+
EventsIndex: builder.EventsIndex,
1726+
TxResultQueryMode: txResultQueryMode,
1727+
TxResultsIndex: builder.TxResultsIndex,
17551728
})
17561729
if err != nil {
17571730
return nil, fmt.Errorf("could not initialize backend: %w", err)
17581731
}
1732+
builder.nodeBackend = back
17591733

17601734
engineBuilder, err := rpc.NewBuilder(
17611735
node.Logger,
@@ -1804,12 +1778,25 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
18041778
return nil, fmt.Errorf("could not create requester engine: %w", err)
18051779
}
18061780

1781+
preferredENIdentifiers, err := commonrpc.IdentifierList(builder.rpcConf.BackendConfig.PreferredExecutionNodeIDs)
1782+
if err != nil {
1783+
return nil, fmt.Errorf("failed to convert node id string to Flow Identifier for preferred EN map: %w", err)
1784+
}
1785+
1786+
fixedENIdentifiers, err := commonrpc.IdentifierList(builder.rpcConf.BackendConfig.FixedExecutionNodeIDs)
1787+
if err != nil {
1788+
return nil, fmt.Errorf("failed to convert node id string to Flow Identifier for fixed EN map: %w", err)
1789+
}
1790+
18071791
if builder.storeTxResultErrorMessages {
18081792
builder.TxResultErrorMessagesCore = tx_error_messages.NewTxErrorMessagesCore(
18091793
node.Logger,
1794+
node.State,
18101795
builder.nodeBackend,
1796+
node.Storage.Receipts,
18111797
node.Storage.TransactionResultErrorMessages,
1812-
builder.ExecNodeIdentitiesProvider,
1798+
preferredENIdentifiers,
1799+
fixedENIdentifiers,
18131800
)
18141801
}
18151802

@@ -1905,25 +1892,23 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
19051892
})
19061893
}
19071894

1908-
if builder.pingEnabled {
1909-
builder.Component("ping engine", func(node *cmd.NodeConfig) (module.ReadyDoneAware, error) {
1910-
ping, err := pingeng.New(
1911-
node.Logger,
1912-
node.IdentityProvider,
1913-
node.IDTranslator,
1914-
node.Me,
1915-
builder.PingMetrics,
1916-
builder.pingEnabled,
1917-
builder.nodeInfoFile,
1918-
node.PingService,
1919-
)
1920-
if err != nil {
1921-
return nil, fmt.Errorf("could not create ping engine: %w", err)
1922-
}
1895+
builder.Component("ping engine", func(node *cmd.NodeConfig) (module.ReadyDoneAware, error) {
1896+
ping, err := pingeng.New(
1897+
node.Logger,
1898+
node.IdentityProvider,
1899+
node.IDTranslator,
1900+
node.Me,
1901+
builder.PingMetrics,
1902+
builder.pingEnabled,
1903+
builder.nodeInfoFile,
1904+
node.PingService,
1905+
)
1906+
if err != nil {
1907+
return nil, fmt.Errorf("could not create ping engine: %w", err)
1908+
}
19231909

1924-
return ping, nil
1925-
})
1926-
}
1910+
return ping, nil
1911+
})
19271912

19281913
return builder.FlowNodeBuilder.Build()
19291914
}
@@ -2018,11 +2003,9 @@ func (builder *FlowAccessNodeBuilder) enqueuePublicNetworkInit() {
20182003
// Returns:
20192004
// - The libp2p node instance for the public network.
20202005
// - Any error encountered during initialization. Any error should be considered fatal.
2021-
func (builder *FlowAccessNodeBuilder) initPublicLibp2pNode(
2022-
networkKey crypto.PrivateKey,
2023-
bindAddress string,
2024-
networkMetrics module.LibP2PMetrics,
2025-
) (p2p.LibP2PNode, error) {
2006+
func (builder *FlowAccessNodeBuilder) initPublicLibp2pNode(networkKey crypto.PrivateKey, bindAddress string, networkMetrics module.LibP2PMetrics) (p2p.LibP2PNode,
2007+
error,
2008+
) {
20262009
connManager, err := connection.NewConnManager(builder.Logger, networkMetrics, &builder.FlowConfig.NetworkConfig.ConnectionManager)
20272010
if err != nil {
20282011
return nil, fmt.Errorf("could not create connection manager: %w", err)

cmd/observer/node_builder/observer_builder.go

Lines changed: 18 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ import (
2525

2626
"github.com/onflow/flow/protobuf/go/flow/access"
2727

28-
"github.com/onflow/flow-go/crypto"
29-
3028
"github.com/onflow/flow-go/admin/commands"
3129
stateSyncCommands "github.com/onflow/flow-go/admin/commands/state_synchronization"
3230
"github.com/onflow/flow-go/cmd"
@@ -39,6 +37,7 @@ import (
3937
hotstuffvalidator "github.com/onflow/flow-go/consensus/hotstuff/validator"
4038
"github.com/onflow/flow-go/consensus/hotstuff/verification"
4139
recovery "github.com/onflow/flow-go/consensus/recovery/protocol"
40+
"github.com/onflow/flow-go/crypto"
4241
"github.com/onflow/flow-go/engine"
4342
"github.com/onflow/flow-go/engine/access/apiproxy"
4443
"github.com/onflow/flow-go/engine/access/rest"
@@ -50,7 +49,6 @@ import (
5049
"github.com/onflow/flow-go/engine/access/state_stream"
5150
statestreambackend "github.com/onflow/flow-go/engine/access/state_stream/backend"
5251
"github.com/onflow/flow-go/engine/common/follower"
53-
commonrpc "github.com/onflow/flow-go/engine/common/rpc"
5452
synceng "github.com/onflow/flow-go/engine/common/synchronization"
5553
"github.com/onflow/flow-go/engine/execution/computation/query"
5654
"github.com/onflow/flow-go/engine/protocol"
@@ -1562,41 +1560,24 @@ func (builder *ObserverServiceBuilder) enqueueRPCServer() {
15621560
),
15631561
}
15641562

1565-
preferredENIdentifiers, err := commonrpc.IdentifierList(backendConfig.PreferredExecutionNodeIDs)
1566-
if err != nil {
1567-
return nil, fmt.Errorf("failed to convert node id string to Flow Identifier for preferred EN map: %w", err)
1568-
}
1569-
1570-
fixedENIdentifiers, err := commonrpc.IdentifierList(backendConfig.FixedExecutionNodeIDs)
1571-
if err != nil {
1572-
return nil, fmt.Errorf("failed to convert node id string to Flow Identifier for fixed EN map: %w", err)
1573-
}
1574-
1575-
execNodeIdentitiesProvider := commonrpc.NewExecutionNodeIdentitiesProvider(
1576-
node.Logger,
1577-
node.State,
1578-
node.Storage.Receipts,
1579-
preferredENIdentifiers,
1580-
fixedENIdentifiers,
1581-
)
1582-
15831563
accessBackend, err := backend.New(backend.Params{
1584-
State: node.State,
1585-
Blocks: node.Storage.Blocks,
1586-
Headers: node.Storage.Headers,
1587-
Collections: node.Storage.Collections,
1588-
Transactions: node.Storage.Transactions,
1589-
ExecutionReceipts: node.Storage.Receipts,
1590-
ExecutionResults: node.Storage.Results,
1591-
ChainID: node.RootChainID,
1592-
AccessMetrics: accessMetrics,
1593-
ConnFactory: connFactory,
1594-
RetryEnabled: false,
1595-
MaxHeightRange: backendConfig.MaxHeightRange,
1596-
Log: node.Logger,
1597-
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
1598-
Communicator: backend.NewNodeCommunicator(backendConfig.CircuitBreakerConfig.Enabled),
1599-
ExecNodeIdentitiesProvider: execNodeIdentitiesProvider,
1564+
State: node.State,
1565+
Blocks: node.Storage.Blocks,
1566+
Headers: node.Storage.Headers,
1567+
Collections: node.Storage.Collections,
1568+
Transactions: node.Storage.Transactions,
1569+
ExecutionReceipts: node.Storage.Receipts,
1570+
ExecutionResults: node.Storage.Results,
1571+
ChainID: node.RootChainID,
1572+
AccessMetrics: accessMetrics,
1573+
ConnFactory: connFactory,
1574+
RetryEnabled: false,
1575+
MaxHeightRange: backendConfig.MaxHeightRange,
1576+
PreferredExecutionNodeIDs: backendConfig.PreferredExecutionNodeIDs,
1577+
FixedExecutionNodeIDs: backendConfig.FixedExecutionNodeIDs,
1578+
Log: node.Logger,
1579+
SnapshotHistoryLimit: backend.DefaultSnapshotHistoryLimit,
1580+
Communicator: backend.NewNodeCommunicator(backendConfig.CircuitBreakerConfig.Enabled),
16001581
})
16011582
if err != nil {
16021583
return nil, fmt.Errorf("could not initialize backend: %w", err)

0 commit comments

Comments
 (0)