Ejemplo n.º 1
0
        public BlockManager(
            ITransactionManager transactionManager,
            IGenesisBuilder genesisBuilder,
            IMultisigVerifier multisigVerifier,
            IStateManager stateManager,
            ISnapshotIndexRepository snapshotIndexRepository,
            IConfigManager configManager,
            ILocalTransactionRepository localTransactionRepository
            )
        {
            _transactionManager         = transactionManager;
            _genesisBuilder             = genesisBuilder;
            _multisigVerifier           = multisigVerifier;
            _stateManager               = stateManager;
            _snapshotIndexRepository    = snapshotIndexRepository;
            _configManager              = configManager;
            _localTransactionRepository = localTransactionRepository;
            _transactionManager.OnSystemContractInvoked += TransactionManagerOnSystemContractInvoked;

            var cacheConfig = _configManager.GetConfig <CacheConfig>("cache");

            if (cacheConfig != null && cacheConfig.BlockHeight != null && cacheConfig.BlockHeight.SizeLimit != null)
            {
                _blockSizeLimit = cacheConfig.BlockHeight.SizeLimit.Value;
            }

            _heightCache      = new Dictionary <ulong, Block?>(_blockSizeLimit);
            _heightCacheQueue = new Queue <ulong>(_blockSizeLimit);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="blockProcessor">Block Processor</param>
 /// <param name="blockchainContext">Block chain context class.</param>
 /// <param name="genesisBuilder">Genesis block generator.</param>
 /// <param name="blockRepository">The block model.</param>
 public Blockchain(
     IBlockProcessor blockProcessor,
     IBlockchainContext blockchainContext,
     IGenesisBuilder genesisBuilder,
     IBlockRepository blockRepository)
 {
     _blockProcessor    = blockProcessor ?? throw new ArgumentNullException(nameof(blockProcessor));
     _blockchainContext = blockchainContext ?? throw new ArgumentNullException(nameof(blockchainContext));
     _genesisBuilder    = genesisBuilder ?? throw new ArgumentNullException(nameof(genesisBuilder));
     _blockRepository   = blockRepository;
 }
Ejemplo n.º 3
0
 public BlockHeaderValidator(IBlockchainContext blockchainContext, IGenesisBuilder genesisBuilder)
 {
     this._blockchainContext = blockchainContext;
     this._genesisBuilder    = genesisBuilder;
 }