Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ public ValueTask DisposeAsync()
return ValueTask.CompletedTask;
}

public Task<IBlockProducer> InitBlockProducer(IBlockProducerFactory consensusPlugin, ITxSource? additionalTxSource)
public IBlockProducer InitBlockProducer(IBlockProducerFactory consensusPlugin, ITxSource? additionalTxSource)
{
if (!Enabled) throw new InvalidOperationException("Account Abstraction plugin is disabled");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Nethermind.Api.Extensions
{
public interface IConsensusWrapperPlugin : INethermindPlugin
{
Task<IBlockProducer> InitBlockProducer(IBlockProducerFactory baseBlockProducerFactory, ITxSource? txSource);
IBlockProducer InitBlockProducer(IBlockProducerFactory baseBlockProducerFactory, ITxSource? txSource);

IBlockProducerRunner InitBlockProducerRunner(IBlockProducerRunner baseRunner) => baseRunner;

Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Consensus.AuRa/AuRaPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ public Task InitSynchronization()
return Task.CompletedTask;
}

public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = null)
public IBlockProducer InitBlockProducer(ITxSource? additionalTxSource = null)
{
if (_nethermindApi is not null)
{
return _blockProducerStarter!.BuildProducer(additionalTxSource);
}

return Task.FromResult<IBlockProducer>(null);
return null;
}

public IBlockProducerRunner CreateBlockProducerRunner()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public IBlockProductionTrigger CreateTrigger()
return onlyWhenNotProcessing;
}

public Task<IBlockProducer> BuildProducer(ITxSource? additionalTxSource = null)
public IBlockProducer BuildProducer(ITxSource? additionalTxSource = null)
{
if (_api.EngineSigner is null) throw new StepDependencyException(nameof(_api.EngineSigner));
if (_api.ChainSpec is null) throw new StepDependencyException(nameof(_api.ChainSpec));
Expand All @@ -99,7 +99,7 @@ public Task<IBlockProducer> BuildProducer(ITxSource? additionalTxSource = null)
_api.LogManager,
_api.ConfigProvider.GetConfig<IBlocksConfig>());

return Task.FromResult(blockProducer);
return blockProducer;
}

private BlockProcessor CreateBlockProcessor(ReadOnlyTxProcessingEnv changeableTxProcessingEnv)
Expand Down
6 changes: 3 additions & 3 deletions src/Nethermind/Nethermind.Consensus.Clique/CliquePlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ public Task Init(INethermindApi nethermindApi)
return Task.CompletedTask;
}

public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = null)
public IBlockProducer InitBlockProducer(ITxSource? additionalTxSource = null)
{
if (_nethermindApi!.SealEngineType != Nethermind.Core.SealEngineType.Clique)
{
return Task.FromResult((IBlockProducer)null);
return null;
}

(IApiWithBlockchain getFromApi, IApiWithBlockchain setInApi) = _nethermindApi!.ForProducer;
Expand Down Expand Up @@ -151,7 +151,7 @@ public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = nu
_cliqueConfig!,
getFromApi.LogManager);

return Task.FromResult((IBlockProducer)blockProducer);
return blockProducer;
}

public IBlockProducerRunner CreateBlockProducerRunner()
Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Consensus.Ethash/EthashPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ public Task Init(INethermindApi nethermindApi)
return Task.CompletedTask;
}

public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = null)
public IBlockProducer InitBlockProducer(ITxSource? additionalTxSource = null)
{
return Task.FromResult((IBlockProducer)null);
return null;
}

public Task InitNetworkProtocol()
Expand Down
6 changes: 3 additions & 3 deletions src/Nethermind/Nethermind.Consensus.Ethash/NethDevPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ public Task Init(INethermindApi nethermindApi)
return Task.CompletedTask;
}

public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = null)
public IBlockProducer InitBlockProducer(ITxSource? additionalTxSource = null)
{
if (_nethermindApi!.SealEngineType != Nethermind.Core.SealEngineType.NethDev)
{
return Task.FromResult((IBlockProducer)null);
return null;
}

var (getFromApi, _) = _nethermindApi!.ForProducer;
Expand Down Expand Up @@ -98,7 +98,7 @@ public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = nu
getFromApi.Config<IBlocksConfig>(),
getFromApi.LogManager);

return Task.FromResult(blockProducer);
return blockProducer;
}

public string SealEngineType => Nethermind.Core.SealEngineType.NethDev;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ public interface IBlockProducerFactory
/// <remarks>
/// Can be called many times, with different parameters, each time should create a new instance. Example usage in MEV plugin.
/// </remarks>
Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = null);
IBlockProducer InitBlockProducer(ITxSource? additionalTxSource = null);
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ public InitializeBlockProducer(INethermindApi api)
_api = api;
}

public async Task Execute(CancellationToken _)
public Task Execute(CancellationToken _)
{
if (_api.BlockProductionPolicy!.ShouldStartBlockProduction())
{
_api.BlockProducer = await BuildProducer();
_api.BlockProducer = BuildProducer();

_api.BlockProducerRunner = _api.GetConsensusPlugin()!.CreateBlockProducerRunner();

Expand All @@ -37,9 +37,11 @@ public async Task Execute(CancellationToken _)
_api.BlockProducerRunner = wrapperPlugin.InitBlockProducerRunner(_api.BlockProducerRunner);
}
}

return Task.CompletedTask;
}

protected virtual async Task<IBlockProducer> BuildProducer()
protected virtual IBlockProducer BuildProducer()
{
_api.BlockProducerEnvFactory = new BlockProducerEnvFactory(
_api.WorldStateManager!,
Expand All @@ -66,7 +68,7 @@ protected virtual async Task<IBlockProducer> BuildProducer()
blockProducerFactory = new ConsensusWrapperToBlockProducerFactoryAdapter(wrapperPlugin, blockProducerFactory);
}

return await blockProducerFactory.InitBlockProducer();
return blockProducerFactory.InitBlockProducer();
}
else
{
Expand All @@ -78,7 +80,7 @@ private class ConsensusWrapperToBlockProducerFactoryAdapter(
IConsensusWrapperPlugin consensusWrapperPlugin,
IBlockProducerFactory baseBlockProducerFactory) : IBlockProducerFactory
{
public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = null)
public IBlockProducer InitBlockProducer(ITxSource? additionalTxSource = null)
{
return consensusWrapperPlugin.InitBlockProducer(baseBlockProducerFactory, additionalTxSource);
}
Expand Down
2 changes: 1 addition & 1 deletion src/Nethermind/Nethermind.Merge.AuRa/AuRaMergePlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ originalFilter is MinGasPriceContractTxFilter ? originalFilter
}
}

public override Task<IBlockProducer> InitBlockProducer(IBlockProducerFactory consensusPlugin, ITxSource? txSource)
public override IBlockProducer InitBlockProducer(IBlockProducerFactory consensusPlugin, ITxSource? txSource)
{
_api.BlockProducerEnvFactory = new AuRaMergeBlockProducerEnvFactory(
(AuRaNethermindApi)_api,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public void Init_merge_plugin_does_not_throw_exception(bool enabled)
Assert.DoesNotThrowAsync(async () => await _plugin.Init(_context));
Assert.DoesNotThrowAsync(async () => await _plugin.InitNetworkProtocol());
Assert.DoesNotThrowAsync(async () => await _plugin.InitSynchronization());
Assert.DoesNotThrowAsync(async () => await _plugin.InitBlockProducer(_consensusPlugin!, null));
Assert.DoesNotThrow(() => _plugin.InitBlockProducer(_consensusPlugin!, null));
Assert.DoesNotThrowAsync(async () => await _plugin.InitRpcModules());
Assert.DoesNotThrowAsync(async () => await _plugin.DisposeAsync());
}
Expand All @@ -111,7 +111,7 @@ public async Task Initializes_correctly()
ISyncConfig syncConfig = _context.Config<ISyncConfig>();
Assert.IsTrue(syncConfig.NetworkingEnabled);
Assert.IsTrue(_context.GossipPolicy.CanGossipBlocks);
await _plugin.InitBlockProducer(_consensusPlugin!, null);
_plugin.InitBlockProducer(_consensusPlugin!, null);
Assert.IsInstanceOf<MergeBlockProducer>(_context.BlockProducer);
await _plugin.InitRpcModules();
_context.RpcModuleProvider!.Received().Register(Arg.Is<IRpcModulePool<IEngineRpcModule>>(m => m is SingletonModulePool<IEngineRpcModule>));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public partial class MergePlugin
protected virtual PostMergeBlockProducerFactory CreateBlockProducerFactory()
=> new(_api.SpecProvider!, _api.SealEngine, _manualTimestamper!, _blocksConfig, _api.LogManager);

public virtual async Task<IBlockProducer> InitBlockProducer(IBlockProducerFactory baseBlockProducerFactory, ITxSource? txSource)
public virtual IBlockProducer InitBlockProducer(IBlockProducerFactory baseBlockProducerFactory, ITxSource? txSource)
{
if (MergeEnabled)
{
Expand All @@ -42,7 +42,7 @@ public virtual async Task<IBlockProducer> InitBlockProducer(IBlockProducerFactor
if (_logger.IsInfo) _logger.Info("Starting Merge block producer & sealer");

IBlockProducer? blockProducer = _mergeBlockProductionPolicy.ShouldInitPreMergeBlockProduction()
? await baseBlockProducerFactory.InitBlockProducer(txSource)
? baseBlockProducerFactory.InitBlockProducer(txSource)
: null;
_manualTimestamper ??= new ManualTimestamper();
BlockProducerEnv blockProducerEnv = _api.BlockProducerEnvFactory.Create();
Expand Down
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Mev.Test/MevPluginTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ public async Task Can_initialize_block_producer()
IConsensusPlugin consensusPlugin = Substitute.For<IConsensusPlugin>();
consensusPlugin.InitBlockProducer(null).Returns(Substitute.For<IBlockProducer>());

Task<IBlockProducer> blockProducer = plugin.InitBlockProducer(consensusPlugin, null);
IBlockProducer blockProducer = plugin.InitBlockProducer(consensusPlugin, null);

blockProducer.Result.Should().BeOfType(typeof(MevBlockProducer));
blockProducer.Should().BeOfType(typeof(MevBlockProducer));
}
}
}
12 changes: 6 additions & 6 deletions src/Nethermind/Nethermind.Mev/MevPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public Task InitRpcModules()
return Task.CompletedTask;
}

public async Task<IBlockProducer> InitBlockProducer(IBlockProducerFactory consensusPlugin, ITxSource? txSource)
public IBlockProducer InitBlockProducer(IBlockProducerFactory consensusPlugin, ITxSource? txSource)
{
if (!Enabled)
{
Expand All @@ -147,28 +147,28 @@ public async Task<IBlockProducer> InitBlockProducer(IBlockProducerFactory consen
new(_mevConfig.MaxMergedBundles + megabundleProducerCount + 1);

// Add non-mev block
MevBlockProducer.MevBlockProducerInfo standardProducer = await CreateProducer(consensusPlugin);
MevBlockProducer.MevBlockProducerInfo standardProducer = CreateProducer(consensusPlugin);
blockProducers.Add(standardProducer);

// Try blocks with all bundle numbers <= MaxMergedBundles
for (int bundleLimit = 1; bundleLimit <= _mevConfig.MaxMergedBundles; bundleLimit++)
{
BundleSelector bundleSelector = new(BundlePool, bundleLimit);
MevBlockProducer.MevBlockProducerInfo bundleProducer = await CreateProducer(consensusPlugin, bundleLimit, new BundleTxSource(bundleSelector, _nethermindApi.Timestamper));
MevBlockProducer.MevBlockProducerInfo bundleProducer = CreateProducer(consensusPlugin, bundleLimit, new BundleTxSource(bundleSelector, _nethermindApi.Timestamper));
blockProducers.Add(bundleProducer);
}

if (megabundleProducerCount > 0)
{
MegabundleSelector megabundleSelector = new(BundlePool);
MevBlockProducer.MevBlockProducerInfo bundleProducer = await CreateProducer(consensusPlugin, 0, new BundleTxSource(megabundleSelector, _nethermindApi.Timestamper));
MevBlockProducer.MevBlockProducerInfo bundleProducer = CreateProducer(consensusPlugin, 0, new BundleTxSource(megabundleSelector, _nethermindApi.Timestamper));
blockProducers.Add(bundleProducer);
}

return new MevBlockProducer(_nethermindApi.LogManager, blockProducers.ToArray());
}

private async Task<MevBlockProducer.MevBlockProducerInfo> CreateProducer(
private MevBlockProducer.MevBlockProducerInfo CreateProducer(
IBlockProducerFactory consensusPlugin,
int bundleLimit = 0,
ITxSource? additionalTxSource = null)
Expand All @@ -177,7 +177,7 @@ public async Task<IBlockProducer> InitBlockProducer(IBlockProducerFactory consen
AlwaysOkBlockProductionCondition.Instance :
new BundleLimitBlockProductionTrigger(_nethermindApi.BlockTree!, _nethermindApi.Timestamper!, BundlePool, bundleLimit);

IBlockProducer producer = await consensusPlugin.InitBlockProducer(additionalTxSource);
IBlockProducer producer = consensusPlugin.InitBlockProducer(additionalTxSource);
return new MevBlockProducer.MevBlockProducerInfo(producer, condition, new BeneficiaryTracer());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public InitializeBlockProducerOptimism(OptimismNethermindApi api) : base(api)
_api = api;
}

protected override Task<IBlockProducer> BuildProducer()
protected override IBlockProducer BuildProducer()
{
if (_api.DbProvider is null) throw new StepDependencyException(nameof(_api.DbProvider));
if (_api.BlockTree is null) throw new StepDependencyException(nameof(_api.BlockTree));
Expand Down Expand Up @@ -65,6 +65,6 @@ protected override Task<IBlockProducer> BuildProducer()
_api.LogManager,
_api.Config<IBlocksConfig>());

return Task.FromResult(_api.BlockProducer);
return _api.BlockProducer;
}
}
4 changes: 2 additions & 2 deletions src/Nethermind/Nethermind.Optimism/OptimismPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public class OptimismPlugin : IConsensusPlugin, ISynchronizationPlugin, IInitial

public IBlockProductionTrigger DefaultBlockProductionTrigger => NeverProduceTrigger.Instance;

public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = null)
public IBlockProducer InitBlockProducer(ITxSource? additionalTxSource = null)
{
if (additionalTxSource is not null)
throw new ArgumentException(
Expand All @@ -63,7 +63,7 @@ public Task<IBlockProducer> InitBlockProducer(ITxSource? additionalTxSource = nu
ArgumentNullException.ThrowIfNull(_api);
ArgumentNullException.ThrowIfNull(_api.BlockProducer);

return Task.FromResult(_api.BlockProducer);
return _api.BlockProducer;
}

#endregion
Expand Down