コード例 #1
0
        public CliqueBlockProducer(ITransactionPool transactionPool,
                                   IBlockchainProcessor blockchainProcessor,
                                   IBlockTree blockTree,
                                   ITimestamp timestamp,
                                   ICryptoRandom cryptoRandom,
                                   IStateProvider stateProvider,
                                   ISnapshotManager snapshotManager,
                                   ISealer cliqueSealer,
                                   Address address,
                                   ICliqueConfig config,
                                   ILogManager logManager)
        {
            _logger          = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _transactionPool = transactionPool ?? throw new ArgumentNullException(nameof(transactionPool));
            _processor       = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree       = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider   = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamp       = timestamp ?? throw new ArgumentNullException(nameof(timestamp));
            _cryptoRandom    = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer          = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _snapshotManager = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config          = config ?? throw new ArgumentNullException(nameof(config));
            _address         = address ?? throw new ArgumentNullException(nameof(address));

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
コード例 #2
0
        public CliqueBlockProducer(
            ITxSource txSource,
            IBlockchainProcessor blockchainProcessor,
            IStateProvider stateProvider,
            IBlockTree blockTree,
            ITimestamper timestamper,
            ICryptoRandom cryptoRandom,
            ISnapshotManager snapshotManager,
            ISealer cliqueSealer,
            IGasLimitCalculator gasLimitCalculator,
            ISpecProvider?specProvider,
            ICliqueConfig config,
            ILogManager logManager)
        {
            _logger             = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _txSource           = txSource ?? throw new ArgumentNullException(nameof(txSource));
            _processor          = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree          = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider      = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamper        = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
            _cryptoRandom       = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer             = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _gasLimitCalculator = gasLimitCalculator ?? throw new ArgumentNullException(nameof(gasLimitCalculator));
            _specProvider       = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
            _snapshotManager    = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config             = config ?? throw new ArgumentNullException(nameof(config));
            _wiggle             = new WiggleRandomizer(_cryptoRandom, _snapshotManager);

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
コード例 #3
0
        public CliqueBlockProducer(IPendingTxSelector pendingTxSelector,
                                   IBlockchainProcessor blockchainProcessor,
                                   IStateProvider stateProvider,
                                   IBlockTree blockTree,
                                   ITimestamper timestamper,
                                   ICryptoRandom cryptoRandom,
                                   ISnapshotManager snapshotManager,
                                   ISealer cliqueSealer,
                                   Address address,
                                   ICliqueConfig config,
                                   ILogManager logManager)
        {
            _logger            = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _pendingTxSelector = pendingTxSelector ?? throw new ArgumentNullException(nameof(pendingTxSelector));
            _processor         = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree         = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider     = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamper       = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
            _cryptoRandom      = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer            = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _snapshotManager   = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config            = config ?? throw new ArgumentNullException(nameof(config));
            _address           = address ?? throw new ArgumentNullException(nameof(address));
            _wiggle            = new WiggleRandomizer(_cryptoRandom, _snapshotManager);

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
コード例 #4
0
 public SnapshotManager(ICliqueConfig cliqueConfig, IDb blocksDb, IBlockTree blockTree, IEthereumEcdsa ecdsa, ILogManager logManager)
 {
     _logger       = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _cliqueConfig = cliqueConfig ?? throw new ArgumentNullException(nameof(cliqueConfig));
     _signatures   = new LruCache <Keccak, Address>(Clique.InMemorySignatures);
     _ecdsa        = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
     _blocksDb     = blocksDb ?? throw new ArgumentNullException(nameof(blocksDb));
     _blockTree    = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
 }
コード例 #5
0
        public CliqueSealer(ISigner signer, ICliqueConfig config, ISnapshotManager snapshotManager, ILogManager logManager)
        {
            _logger          = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _snapshotManager = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config          = config ?? throw new ArgumentNullException(nameof(config));
            _signer          = signer ?? throw new ArgumentNullException(nameof(signer));

            if (config.Epoch == 0)
            {
                config.Epoch = Clique.DefaultEpochLength;
            }
        }
コード例 #6
0
        public CliqueSealer(IBasicWallet wallet, ICliqueConfig config, ISnapshotManager snapshotManager, Address sealerAddress, ILogManager logManager)
        {
            _logger          = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _snapshotManager = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _sealerAddress   = sealerAddress ?? throw new ArgumentNullException(nameof(sealerAddress));
            _config          = config ?? throw new ArgumentNullException(nameof(config));
            _wallet          = wallet ?? throw new ArgumentNullException(nameof(wallet));

            if (config.Epoch == 0)
            {
                config.Epoch = Clique.DefaultEpochLength;
            }
        }
コード例 #7
0
        public CliqueSealEngine(ICliqueConfig config, IEthereumSigner signer, PrivateKey key, IDb blocksDb, IBlockTree blockTree, ILogManager logManager)
        {
            _logger    = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _config    = config ?? throw new ArgumentNullException(nameof(config));
            _blocksDb  = blocksDb ?? throw new ArgumentNullException(nameof(blocksDb));
            _signer    = signer ?? throw new ArgumentNullException(nameof(signer));
            _blockTree = blockTree ?? throw new ArgumentNullException();
            _key       = key ?? throw new ArgumentNullException(nameof(key));

            if (config.Epoch == 0)
            {
                config.Epoch = Clique.DefaultEpochLength;
            }
        }
コード例 #8
0
 public CliqueSealValidator(ICliqueConfig cliqueConfig, ISnapshotManager snapshotManager, ILogManager logManager)
 {
     _cliqueConfig    = cliqueConfig ?? throw new ArgumentNullException(nameof(cliqueConfig));
     _snapshotManager = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
     _logger          = logManager.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
 }