@@ -319,8 +319,7 @@ type FlowAccessNodeBuilder struct {
319
319
stateStreamBackend * statestreambackend.StateStreamBackend
320
320
nodeBackend * backend.Backend
321
321
322
- ExecNodeIdentitiesProvider * commonrpc.ExecutionNodeIdentitiesProvider
323
- TxResultErrorMessagesCore * tx_error_messages.TxErrorMessagesCore
322
+ TxResultErrorMessagesCore * tx_error_messages.TxErrorMessagesCore
324
323
}
325
324
326
325
func (builder * FlowAccessNodeBuilder ) buildFollowerState () * FlowAccessNodeBuilder {
@@ -1436,18 +1435,14 @@ func (builder *FlowAccessNodeBuilder) enqueueRelayNetwork() {
1436
1435
func (builder * FlowAccessNodeBuilder ) Build () (cmd.Node , error ) {
1437
1436
var processedFinalizedBlockHeight storage.ConsumerProgress
1438
1437
var processedTxErrorMessagesBlockHeight storage.ConsumerProgress
1438
+ var lastFullBlockHeight * counters.PersistentStrictMonotonicCounter
1439
1439
1440
1440
if builder .executionDataSyncEnabled {
1441
1441
builder .BuildExecutionSyncComponents ()
1442
1442
}
1443
1443
1444
1444
ingestionDependable := module .NewProxiedReadyDoneAware ()
1445
1445
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
1451
1446
1452
1447
builder .
1453
1448
BuildConsensusFollower ().
@@ -1627,14 +1622,14 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
1627
1622
return nil
1628
1623
}).
1629
1624
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 ()
1631
1626
if err != nil {
1632
1627
return fmt .Errorf ("could not get root block height: %w" , err )
1633
1628
}
1634
1629
1635
1630
lastFullBlockHeight , err = counters .NewPersistentStrictMonotonicCounter (
1636
1631
bstorage .NewConsumerProgress (builder .DB , module .ConsumeProgressLastFullBlockHeight ),
1637
- rootBlockHeight .Height ,
1632
+ rootBlock .Height ,
1638
1633
)
1639
1634
if err != nil {
1640
1635
return fmt .Errorf ("failed to initialize monotonic consumer progress: %w" , err )
@@ -1644,11 +1639,7 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
1644
1639
}).
1645
1640
Module ("transaction result error messages storage" , func (node * cmd.NodeConfig ) error {
1646
1641
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 )
1652
1643
}
1653
1644
1654
1645
return nil
@@ -1706,56 +1697,39 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
1706
1697
return nil , fmt .Errorf ("transaction result query mode 'compare' is not supported" )
1707
1698
}
1708
1699
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 ,
1755
1728
})
1756
1729
if err != nil {
1757
1730
return nil , fmt .Errorf ("could not initialize backend: %w" , err )
1758
1731
}
1732
+ builder .nodeBackend = back
1759
1733
1760
1734
engineBuilder , err := rpc .NewBuilder (
1761
1735
node .Logger ,
@@ -1804,12 +1778,25 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
1804
1778
return nil , fmt .Errorf ("could not create requester engine: %w" , err )
1805
1779
}
1806
1780
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
+
1807
1791
if builder .storeTxResultErrorMessages {
1808
1792
builder .TxResultErrorMessagesCore = tx_error_messages .NewTxErrorMessagesCore (
1809
1793
node .Logger ,
1794
+ node .State ,
1810
1795
builder .nodeBackend ,
1796
+ node .Storage .Receipts ,
1811
1797
node .Storage .TransactionResultErrorMessages ,
1812
- builder .ExecNodeIdentitiesProvider ,
1798
+ preferredENIdentifiers ,
1799
+ fixedENIdentifiers ,
1813
1800
)
1814
1801
}
1815
1802
@@ -1905,25 +1892,23 @@ func (builder *FlowAccessNodeBuilder) Build() (cmd.Node, error) {
1905
1892
})
1906
1893
}
1907
1894
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
+ }
1923
1909
1924
- return ping , nil
1925
- })
1926
- }
1910
+ return ping , nil
1911
+ })
1927
1912
1928
1913
return builder .FlowNodeBuilder .Build ()
1929
1914
}
@@ -2018,11 +2003,9 @@ func (builder *FlowAccessNodeBuilder) enqueuePublicNetworkInit() {
2018
2003
// Returns:
2019
2004
// - The libp2p node instance for the public network.
2020
2005
// - 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
+ ) {
2026
2009
connManager , err := connection .NewConnManager (builder .Logger , networkMetrics , & builder .FlowConfig .NetworkConfig .ConnectionManager )
2027
2010
if err != nil {
2028
2011
return nil , fmt .Errorf ("could not create connection manager: %w" , err )
0 commit comments