Exemplo n.º 1
0
            public override ConsensusCommand GetAEDPoSConsensusCommand()
            {
                var arrangedMiningTime =
                    MiningTimeArrangingService.ArrangeMiningTimeBasedOnOffset(CurrentBlockTime,
                                                                              TinyBlockMinimumInterval);

                var miningDueTime = MinerInRound.ActualMiningTimes
                                    .OrderBy(t => t)
                                    .Last()
                                    .AddMilliseconds(MiningInterval);

                return(arrangedMiningTime > miningDueTime
                    ? new TerminateRoundCommandStrategy(CurrentRound, Pubkey, CurrentBlockTime, false)
                       .GetAEDPoSConsensusCommand()
                    : new ConsensusCommand
                {
                    Hint = new AElfConsensusHint {
                        Behaviour = AElfConsensusBehaviour.TinyBlock
                    }.ToByteString(),
                    ArrangedMiningTime = arrangedMiningTime,
                    MiningDueTime = miningDueTime,
                    LimitMillisecondsOfMiningBlock = IsLastTinyBlockOfCurrentSlot()
                            ? LastTinyBlockMiningLimit
                            : DefaultBlockMiningLimit
                });
            }
Exemplo n.º 2
0
            public override ConsensusCommand GetAEDPoSConsensusCommand()
            {
                var miningInterval = MiningInterval;
                var offset         =
                    _consensusBehaviour == AElfConsensusBehaviour.UpdateValueWithoutPreviousInValue && Order == 1
                        ? miningInterval
                        : Order.Add(MinersCount).Sub(1).Mul(miningInterval);
                var arrangedMiningTime = MiningTimeArrangingService.ArrangeMiningTimeBasedOnOffset(CurrentBlockTime, offset);

                return(new ConsensusCommand
                {
                    Hint = new AElfConsensusHint {
                        Behaviour = _consensusBehaviour
                    }.ToByteString(),
                    ArrangedMiningTime = arrangedMiningTime,
                    MiningDueTime = arrangedMiningTime.AddMilliseconds(miningInterval),
                    LimitMillisecondsOfMiningBlock = DefaultBlockMiningLimit
                });
            }