Skip to content

Commit

Permalink
Merge branch 'ramtin/evm-adding-stdlib' into ramtin/evm-integrate-int…
Browse files Browse the repository at this point in the history
…o-fvm
  • Loading branch information
ramtinms committed Oct 25, 2023
2 parents 97315e9 + e2009ac commit da35154
Show file tree
Hide file tree
Showing 57 changed files with 1,300 additions and 374 deletions.
17 changes: 14 additions & 3 deletions cmd/access/node_builder/access_node_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,10 @@ func (builder *FlowAccessNodeBuilder) buildFollowerEngine() *FlowAccessNodeBuild

func (builder *FlowAccessNodeBuilder) buildSyncEngine() *FlowAccessNodeBuilder {
builder.Component("sync engine", func(node *cmd.NodeConfig) (module.ReadyDoneAware, error) {
spamConfig, err := synceng.NewSpamDetectionConfig()
if err != nil {
return nil, fmt.Errorf("could not initialize spam detection config: %w", err)
}
sync, err := synceng.New(
node.Logger,
node.Metrics.Engine,
Expand All @@ -440,7 +444,7 @@ func (builder *FlowAccessNodeBuilder) buildSyncEngine() *FlowAccessNodeBuilder {
builder.FollowerEng,
builder.SyncCore,
builder.SyncEngineParticipantsProviderFactory(),
synceng.NewSpamDetectionConfig(),
spamConfig,
)
if err != nil {
return nil, fmt.Errorf("could not create synchronization engine: %w", err)
Expand Down Expand Up @@ -622,7 +626,7 @@ func (builder *FlowAccessNodeBuilder) BuildExecutionSyncComponents() *FlowAccess
execDataCacheBackend,
)

builder.ExecutionDataRequester = edrequester.New(
r, err := edrequester.New(
builder.Logger,
metrics.NewExecutionDataRequesterCollector(),
builder.ExecutionDataDownloader,
Expand All @@ -634,6 +638,10 @@ func (builder *FlowAccessNodeBuilder) BuildExecutionSyncComponents() *FlowAccess
builder.executionDataConfig,
execDataDistributor,
)
if err != nil {
return nil, fmt.Errorf("failed to create execution data requester: %w", err)
}
builder.ExecutionDataRequester = r

builder.FollowerDistributor.AddOnBlockFinalizedConsumer(builder.ExecutionDataRequester.OnBlockFinalized)

Expand Down Expand Up @@ -737,7 +745,7 @@ func (builder *FlowAccessNodeBuilder) BuildExecutionSyncComponents() *FlowAccess
builder.ExecutionIndexerCore = indexerCore

// execution state worker uses a jobqueue to process new execution data and indexes it by using the indexer.
builder.ExecutionIndexer = indexer.NewIndexer(
builder.ExecutionIndexer, err = indexer.NewIndexer(
builder.Logger,
registers.FirstHeight(),
registers,
Expand All @@ -746,6 +754,9 @@ func (builder *FlowAccessNodeBuilder) BuildExecutionSyncComponents() *FlowAccess
builder.ExecutionDataRequester.HighestConsecutiveHeight,
indexedBlockHeight,
)
if err != nil {
return nil, err
}

// setup requester to notify indexer when new execution data is received
execDataDistributor.AddOnExecutionDataReceivedConsumer(builder.ExecutionIndexer.OnExecutionData)
Expand Down
6 changes: 5 additions & 1 deletion cmd/collection/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,10 @@ func main() {
return followerEng, nil
}).
Component("main chain sync engine", func(node *cmd.NodeConfig) (module.ReadyDoneAware, error) {
spamConfig, err := consync.NewSpamDetectionConfig()
if err != nil {
return nil, fmt.Errorf("could not initialize spam detection config: %w", err)
}

// create a block synchronization engine to handle follower getting out of sync
sync, err := consync.New(
Expand All @@ -366,7 +370,7 @@ func main() {
followerEng,
mainChainSyncCore,
node.SyncEngineIdentifierProvider,
consync.NewSpamDetectionConfig(),
spamConfig,
)
if err != nil {
return nil, fmt.Errorf("could not create synchronization engine: %w", err)
Expand Down
7 changes: 6 additions & 1 deletion cmd/consensus/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,11 @@ func main() {
return messageHub, nil
}).
Component("sync engine", func(node *cmd.NodeConfig) (module.ReadyDoneAware, error) {
spamConfig, err := synceng.NewSpamDetectionConfig()
if err != nil {
return nil, fmt.Errorf("could not initialize spam detection config: %w", err)
}

sync, err := synceng.New(
node.Logger,
node.Metrics.Engine,
Expand All @@ -849,7 +854,7 @@ func main() {
comp,
syncCore,
node.SyncEngineIdentifierProvider,
synceng.NewSpamDetectionConfig(),
spamConfig,
)
if err != nil {
return nil, fmt.Errorf("could not initialize synchronization engine: %w", err)
Expand Down
8 changes: 6 additions & 2 deletions cmd/execution_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -1071,7 +1071,11 @@ func (exeNode *ExecutionNode) LoadSynchronizationEngine(
error,
) {
// initialize the synchronization engine
var err error
//var err error
spamConfig, err := synchronization.NewSpamDetectionConfig()
if err != nil {
return nil, fmt.Errorf("could not initialize spam detection config: %w", err)
}
exeNode.syncEngine, err = synchronization.New(
node.Logger,
node.Metrics.Engine,
Expand All @@ -1082,7 +1086,7 @@ func (exeNode *ExecutionNode) LoadSynchronizationEngine(
exeNode.followerEng,
exeNode.syncCore,
node.SyncEngineIdentifierProvider,
synchronization.NewSpamDetectionConfig(),
spamConfig,
)
if err != nil {
return nil, fmt.Errorf("could not initialize synchronization engine: %w", err)
Expand Down
7 changes: 6 additions & 1 deletion cmd/observer/node_builder/observer_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,11 @@ func (builder *ObserverServiceBuilder) buildFollowerEngine() *ObserverServiceBui

func (builder *ObserverServiceBuilder) buildSyncEngine() *ObserverServiceBuilder {
builder.Component("sync engine", func(node *cmd.NodeConfig) (module.ReadyDoneAware, error) {
spamConfig, err := synceng.NewSpamDetectionConfig()
if err != nil {
return nil, fmt.Errorf("could not initialize spam detection config: %w", err)
}

sync, err := synceng.New(
node.Logger,
node.Metrics.Engine,
Expand All @@ -404,7 +409,7 @@ func (builder *ObserverServiceBuilder) buildSyncEngine() *ObserverServiceBuilder
builder.FollowerEng,
builder.SyncCore,
builder.SyncEngineParticipantsProviderFactory(),
synceng.NewSpamDetectionConfig(),
spamConfig,
)
if err != nil {
return nil, fmt.Errorf("could not create synchronization engine: %w", err)
Expand Down
13 changes: 11 additions & 2 deletions cmd/verification_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,14 +245,18 @@ func (v *VerificationNodeBuilder) LoadComponentsAndModules() {
v.verConf.stopAtHeight)

// requester and fetcher engines are started by chunk consumer
chunkConsumer = chunkconsumer.NewChunkConsumer(
chunkConsumer, err = chunkconsumer.NewChunkConsumer(
node.Logger,
collector,
processedChunkIndex,
chunkQueue,
fetcherEngine,
v.verConf.chunkWorkers)

if err != nil {
return nil, fmt.Errorf("could not create chunk consumer: %w", err)
}

err = node.Metrics.Mempool.Register(metrics.ResourceChunkConsumer, chunkConsumer.Size)
if err != nil {
return nil, fmt.Errorf("could not register backend metric: %w", err)
Expand Down Expand Up @@ -395,6 +399,11 @@ func (v *VerificationNodeBuilder) LoadComponentsAndModules() {
return followerEng, nil
}).
Component("sync engine", func(node *NodeConfig) (module.ReadyDoneAware, error) {
spamConfig, err := commonsync.NewSpamDetectionConfig()
if err != nil {
return nil, fmt.Errorf("could not initialize spam detection config: %w", err)
}

sync, err := commonsync.New(
node.Logger,
node.Metrics.Engine,
Expand All @@ -405,7 +414,7 @@ func (v *VerificationNodeBuilder) LoadComponentsAndModules() {
followerEng,
syncCore,
node.SyncEngineIdentifierProvider,
commonsync.NewSpamDetectionConfig(),
spamConfig,
)
if err != nil {
return nil, fmt.Errorf("could not create synchronization engine: %w", err)
Expand Down
Loading

0 comments on commit da35154

Please sign in to comment.