public void Buffer_50Kb_For_1MB_BlockSize() { BlockDefinitionOptions optionsFromNetwork = new MinerSettings(new NodeSettings(new SmartContractsTest())).BlockDefinitionOptions; BlockDefinitionOptions newOptions = this.bufferGenerator.GetOptionsWithBuffer(optionsFromNetwork); Assert.Equal((uint)950_000, newOptions.BlockMaxWeight); Assert.Equal((uint)950_000, newOptions.BlockMaxSize); }
public void Buffer_50Kb_For_1MB_BlockSize() { var network = new SmartContractsRegTest(); var optionsFromNetwork = new BlockDefinitionOptions(network.Consensus.Options.MaxBlockWeight, network.Consensus.Options.MaxBlockBaseSize); BlockDefinitionOptions newOptions = new BlockBufferGenerator().GetOptionsWithBuffer(optionsFromNetwork); Assert.Equal((uint)950_000, newOptions.BlockMaxWeight); Assert.Equal((uint)950_000, newOptions.BlockMaxSize); }
public static PowBlockDefinition AssemblerForTest(TestContext testContext) { var options = new BlockDefinitionOptions { BlockMaxWeight = testContext.network.Consensus.Option <PowConsensusOptions>().MaxBlockWeight, BlockMaxSize = testContext.network.Consensus.Option <PowConsensusOptions>().MaxBlockSerializedSize, BlockMinFeeRate = blockMinFeeRate }; return(new PowBlockDefinition(testContext.consensus, testContext.DateTimeProvider, new LoggerFactory(), testContext.mempool, testContext.mempoolLock, testContext.network, options)); }
public PowTestBlockAssembler( IConsensusLoop consensusLoop, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, Network network, BlockDefinitionOptions options = null) : base(consensusLoop, dateTimeProvider, loggerFactory, mempool, mempoolLock, network) { this.block = this.BlockTemplate.Block; }
/// <summary> /// Creates a proof of work block assembler. /// </summary> /// <param name="consensusLoop">Consensus loop.</param> /// <param name="consensusRules"></param> /// <param name="dateTimeProvider">Date and time provider.</param> /// <param name="mempool">Memory pool for transactions.</param> /// <param name="mempoolLock">Async lock for memory pool.</param> /// <param name="network">Network running on.</param> /// <returns>Proof of work block assembler.</returns> private static PowBlockDefinition CreatePowBlockAssembler(IConsensusLoop consensusLoop, IConsensusRules consensusRules, IDateTimeProvider dateTimeProvider, LoggerFactory loggerFactory, TxMempool mempool, MempoolSchedulerLock mempoolLock, Network network) { var options = new BlockDefinitionOptions { BlockMaxWeight = network.Consensus.Option <PowConsensusOptions>().MaxBlockWeight, BlockMaxSize = network.Consensus.Option <PowConsensusOptions>().MaxBlockSerializedSize }; var blockMinFeeRate = new FeeRate(PowMining.DefaultBlockMinTxFee); options.BlockMinFeeRate = blockMinFeeRate; return(new PowBlockDefinition(consensusLoop, dateTimeProvider, loggerFactory, mempool, mempoolLock, network, consensusRules, options)); }
public PowTestBlockDefinition( IConsensusManager consensusLoop, IDateTimeProvider dateTimeProvider, ILoggerFactory loggerFactory, ITxMempool mempool, MempoolSchedulerLock mempoolLock, MinerSettings minerSettings, Network network, IConsensusRuleEngine consensusRules, BlockDefinitionOptions options = null) : base(consensusLoop, dateTimeProvider, loggerFactory, mempool, mempoolLock, minerSettings, network, consensusRules) { this.block = this.BlockTemplate.Block; }
public BlockDefinitionOptions GetOptionsWithBuffer(BlockDefinitionOptions options) { uint percentageToBuild = 95; // For 1MB blocks, 50 KB reserved for generated transactions / txouts return(new BlockDefinitionOptions(options.BlockMaxSize * percentageToBuild / 100, options.BlockMaxWeight * percentageToBuild / 100)); }