public TransactionsRegistryService(IStatesRepository statesRepository, IPredicatesRepository predicatesRepository, IRegistryMemPool registryMemPool, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, ICryptoService cryptoService, IConfigurationService configurationService, IServerCommunicationServicesRegistry serverCommunicationServicesRegistry, IPerformanceCountersRepository performanceCountersRepository, ISerializersFactory signatureSupportSerializersFactory, ITransactionsRegistryHelper transactionsRegistryHelper, IHashCalculationsRepository hashCalculationsRepository, ILoggerService loggerService) { _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _registryGroupState = statesRepository.GetInstance <IRegistryGroupState>(); _isBlockProducerPredicate = predicatesRepository.GetInstance("IsBlockProducer"); _transactionHashKey = identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider(); _cryptoService = cryptoService; _configurationService = configurationService; _serverCommunicationServicesRegistry = serverCommunicationServicesRegistry; _signatureSupportSerializersFactory = signatureSupportSerializersFactory; _transactionsRegistryHelper = transactionsRegistryHelper; _powCalculation = hashCalculationsRepository.Create(Globals.POW_TYPE); _hashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); _logger = loggerService.GetLogger(nameof(TransactionsRegistryService)); TransformBlock <IRegistryMemPool, SortedList <ushort, ITransactionRegistryBlock> > deduplicateAndOrderTransactionRegisterBlocksBlock = new TransformBlock <IRegistryMemPool, SortedList <ushort, ITransactionRegistryBlock> >((Func <IRegistryMemPool, SortedList <ushort, ITransactionRegistryBlock> >)DeduplicateAndOrderTransactionRegisterBlocks); TransformBlock <SortedList <ushort, ITransactionRegistryBlock>, RegistryFullBlock> produceTransactionsFullBlock = new TransformBlock <SortedList <ushort, ITransactionRegistryBlock>, RegistryFullBlock>((Func <SortedList <ushort, ITransactionRegistryBlock>, RegistryFullBlock>)ProduceTransactionsFullBlock); ActionBlock <Tuple <RegistryFullBlock, RegistryShortBlock> > sendTransactionsBlocks = new ActionBlock <Tuple <RegistryFullBlock, RegistryShortBlock> >((Action <Tuple <RegistryFullBlock, RegistryShortBlock> >)SendTransactionsBlocks); TransformBlock <RegistryFullBlock, Tuple <RegistryFullBlock, RegistryShortBlock> > produceTransactionsShortBlock = new TransformBlock <RegistryFullBlock, Tuple <RegistryFullBlock, RegistryShortBlock> >((Func <RegistryFullBlock, Tuple <RegistryFullBlock, RegistryShortBlock> >)ProduceTransactionsShortBlock); deduplicateAndOrderTransactionRegisterBlocksBlock.LinkTo(produceTransactionsFullBlock); produceTransactionsFullBlock.LinkTo(produceTransactionsShortBlock); produceTransactionsShortBlock.LinkTo(sendTransactionsBlocks); _transactionsRegistryProducingFlow = deduplicateAndOrderTransactionRegisterBlocksBlock; _registryMemPool = registryMemPool; _nodeCountersService = performanceCountersRepository.GetInstance <NodeCountersService>(); }
public TestBase() { _transactionHashKeyProvider = Substitute.For <IIdentityKeyProvider>(); _identityKeyProvider = Substitute.For <IIdentityKeyProvider>(); _identityKeyProvidersRegistry = Substitute.For <IIdentityKeyProvidersRegistry>(); _hashCalculationRepository = Substitute.For <IHashCalculationsRepository>(); _blockParsersRepositoriesRepository = Substitute.For <IBlockParsersRepositoriesRepository>(); _blockParsersRepository = Substitute.For <IBlockParsersRepository>(); _cryptoService = Substitute.For <ICryptoService>(); _identityKeyProvidersRegistry.GetInstance().Returns(_identityKeyProvider); _identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider().Returns(_transactionHashKeyProvider); _identityKeyProvider.GetKey(null).ReturnsForAnyArgs(c => new Key32() { Value = c.Arg <Memory <byte> >() }); _transactionHashKeyProvider.GetKey(null).ReturnsForAnyArgs(c => new Key16() { Value = c.Arg <Memory <byte> >() }); _hashCalculationRepository.Create(HashType.MurMur).Returns(new MurMurHashCalculation()); _blockParsersRepositoriesRepository.GetBlockParsersRepository(PacketType.Registry).ReturnsForAnyArgs(_blockParsersRepository); _privateKey = CryptoHelper.GetRandomSeed(); Ed25519.KeyPairFromSeed(out _publicKey, out _expandedPrivateKey, _privateKey); _cryptoService.Sign(null).ReturnsForAnyArgs(c => Ed25519.Sign(c.Arg <byte[]>(), _expandedPrivateKey)); _cryptoService.PublicKey.Returns(new Key32() { Value = _publicKey }); ServiceLocator.Current.GetInstance <IUnityContainer>().RegisterInstance(_blockParsersRepositoriesRepository); }
public TransactionRegistryMemPool(ILoggerService loggerService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, ICryptoService cryptoService, IStatesRepository statesRepository, ITransactionsRegistryHelper transactionsRegistryHelper, IHashCalculationsRepository hashCalculationsRepository) { _oldValue = 0; //_timer = new Timer(1000); //_timer.Elapsed += (s, e) => //{ // if (_synchronizationContext.LastBlockDescriptor != null && _transactionRegisterBlocksOrdered.ContainsKey(_synchronizationContext.LastBlockDescriptor.BlockHeight)) // { // _logger.Info($"MemPoolCount total = {_transactionRegisterBlocksOrdered[_synchronizationContext.LastBlockDescriptor.BlockHeight].Count}; delta = {_transactionRegisterBlocksOrdered[_synchronizationContext.LastBlockDescriptor.BlockHeight].Count - _oldValue}"); // _oldValue = _transactionRegisterBlocksOrdered[_synchronizationContext.LastBlockDescriptor.BlockHeight].Count; // } //}; //_timer.Start(); _transactionHashKey = identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider(); _logger = loggerService.GetLogger(nameof(TransactionRegistryMemPool)); _transactionsIndicies = new Dictionary <ulong, int>(); _transactionRegisterBlocksOrdered = new Dictionary <ulong, SortedDictionary <int, ITransactionRegistryBlock> >(); _transactionKeyBySourceKeys = new Dictionary <ulong, Dictionary <ITransactionSourceKey, List <IKey> > >(); _transactionsShortBlocks = new Dictionary <ulong, Dictionary <ulong, HashSet <RegistryShortBlock> > >(); _transactionOrderByTransactionKey = new Dictionary <ulong, Dictionary <IKey, int> >(); _transactionSourceKeyByTransactionKey = new Dictionary <ulong, Dictionary <IKey, ITransactionSourceKey> >(); _cryptoService = cryptoService; _transactionsRegistryHelper = transactionsRegistryHelper; _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _hashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); }
public void MemPool_AddedXUniqueTransactions_AllContained() { SynchronizationDescriptor synchronizationDescriptor = new SynchronizationDescriptor(1, new byte[Globals.DEFAULT_HASH_SIZE], DateTime.Now, DateTime.Now, 1); IHash transactionKeyHash = HashFactory.Hash128.CreateMurmur3_128(); ILogger logger = Substitute.For <ILogger>(); ILoggerService loggerService = Substitute.For <ILoggerService>(); IIdentityKeyProvider identityKeyProvider = new TransactionRegistryKeyProvider(); IIdentityKeyProvidersRegistry identityKeyProvidersRegistry = Substitute.For <IIdentityKeyProvidersRegistry>(); IHashCalculationsRepository hashCalculationsRepository = Substitute.For <IHashCalculationsRepository>(); ICryptoService cryptoService = Substitute.For <ICryptoService>(); SynchronizationContext synchronizationContext = new SynchronizationContext(loggerService); synchronizationContext.UpdateLastSyncBlockDescriptor(synchronizationDescriptor); IStatesRepository statesRepository = Substitute.For <IStatesRepository>(); hashCalculationsRepository.Create(HashType.MurMur).Returns(new MurMurHashCalculation()); logger.WhenForAnyArgs(l => l.Error(null)).DoNotCallBase(); logger.WhenForAnyArgs(l => l.Warning(null)).DoNotCallBase(); logger.WhenForAnyArgs(l => l.Info(null)).DoNotCallBase(); loggerService.GetLogger(null).Returns(logger); identityKeyProvidersRegistry.GetInstance(null).ReturnsForAnyArgs(identityKeyProvider); statesRepository.GetInstance <ISynchronizationContext>().Returns(synchronizationContext); byte[] privateKey = CryptoHelper.GetRandomSeed(); Ed25519.KeyPairFromSeed(out byte[] publicKey, out byte[] expandedPrivateKey, privateKey); cryptoService.ComputeTransactionKey(new Memory <byte>()).ReturnsForAnyArgs(c => transactionKeyHash.ComputeBytes(c.Arg <Memory <byte> >().ToArray()).GetBytes()); cryptoService.ComputeTransactionKey(new byte[0]).ReturnsForAnyArgs(c => transactionKeyHash.ComputeBytes(c.Arg <byte[]>()).GetBytes()); cryptoService.Sign(null).ReturnsForAnyArgs(c => Ed25519.Sign(c.Arg <byte[]>(), expandedPrivateKey)); cryptoService.PublicKey.ReturnsForAnyArgs(new Key32(publicKey)); TransactionRegistryMemPool transactionRegistryMemPool = new TransactionRegistryMemPool(loggerService, identityKeyProvidersRegistry, cryptoService, statesRepository, new TransactionsRegistryHelper(cryptoService, identityKeyProvidersRegistry), hashCalculationsRepository); ulong expectedCount = 10; SortedList <ushort, RegistryRegisterBlock> expectedBlocks = new SortedList <ushort, RegistryRegisterBlock>(); for (ulong i = 0; i < expectedCount; i++) { RegistryRegisterBlock transactionRegisterBlock = PacketsBuilder.GetTransactionRegisterBlock(synchronizationContext.LastBlockDescriptor.BlockHeight, 1, null, i, PacketType.Transactional, BlockTypes.Transaction_TransferFunds, new byte[Globals.POW_HASH_SIZE], new byte[Globals.DEFAULT_HASH_SIZE], privateKey); RegistryRegisterBlockSerializer serializer = new RegistryRegisterBlockSerializer(cryptoService, identityKeyProvidersRegistry, hashCalculationsRepository); serializer.Initialize(transactionRegisterBlock); serializer.FillBodyAndRowBytes(); expectedBlocks.Add((ushort)i, transactionRegisterBlock); transactionRegistryMemPool.EnqueueTransactionRegisterBlock(transactionRegisterBlock); } SortedList <ushort, ITransactionRegistryBlock> actualBlocks = transactionRegistryMemPool.DequeueBulk(-1); Assert.Equal(expectedCount, (ushort)actualBlocks.Count); for (ushort i = 0; i < (ushort)expectedCount; i++) { Assert.Equal(expectedBlocks[i].BlockHeight, ((RegistryRegisterBlock)actualBlocks[i]).BlockHeight); } }
private DataAccessService(IConfigurationService configurationService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IHashCalculationsRepository hashCalculationsRepository, ILoggerService loggerService) { _cancellationTokenSource = new CancellationTokenSource(); _configurationService = configurationService; _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); _defaultHashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); _logger = loggerService.GetLogger(nameof(DataAccessService)); }
public InteractionModule(ILoggerService loggerService, IConfigurationService configurationService, IStatesRepository statesRepository, IChainDataServicesManager chainDataServicesManager, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IHashCalculationsRepository hashCalculationsRepository) : base(loggerService) { _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _configurationService = configurationService; _chainDataServicesManager = chainDataServicesManager; _identityKeyProvidersRegistry = identityKeyProvidersRegistry; _hashCalculationsRepository = hashCalculationsRepository; }
public SyncRegistryMemPool(ISerializersFactory signatureSupportSerializersFactory, IHashCalculationsRepository hashCalculationsRepository, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, ICryptoService cryptoService, IStatesRepository statesRepository, ILoggerService loggerService) { _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _roundDescriptors = new Dictionary <ulong, RoundDescriptor>(); _signatureSupportSerializersFactory = signatureSupportSerializersFactory; _cryptoService = cryptoService; _defaultTransactionHashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); _transactionHashKey = identityKeyProvidersRegistry.GetInstance("DefaultHash"); _logger = loggerService.GetLogger(nameof(SyncRegistryMemPool)); }
private DataAccessService(IConfigurationService configurationService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IHashCalculationsRepository hashCalculationsRepository, ILoggerService loggerService) { _cancellationTokenSource = new CancellationTokenSource(); _configurationService = configurationService; _dataContext = new DataContext(_configurationService.Get <ISQLiteConfiguration>()); _dataContext.ChangeTracker.StateChanged += (s, e) => { AccountIdentity accountIdentity = e.Entry.Entity as AccountIdentity; }; _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); _defaultHashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); _logger = loggerService.GetLogger(nameof(DataAccessService)); }
public WalletManager(INetworkAdapter networkAdapter, IBlockCreator blockCreator, IDataAccessService dataAccessService, IHashCalculationsRepository hashCalculationsRepository, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IStatesRepository statesRepository, ISerializersFactory signatureSupportSerializersFactory, IBlockParsersRepositoriesRepository blockParsersRepositoriesRepository) { _networkAdapter = networkAdapter; _blockCreator = blockCreator; _dataAccessService = dataAccessService; _signatureSupportSerializersFactory = signatureSupportSerializersFactory; _blockParsersRepositoriesRepository = blockParsersRepositoriesRepository; _heightsDictionary = new Dictionary <byte[], ulong>(); _hashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); _proofOfWorkCalculation = hashCalculationsRepository.Create(Globals.POW_TYPE); _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); _clientState = statesRepository.GetInstance <IClientState>(); }
public LoadModuleBase(ILoggerService loggerService, IClientCommunicationServiceRepository clientCommunicationServiceRepository, IConfigurationService configurationService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, ISerializersFactory signatureSupportSerializersFactory, INodesDataService nodesDataService, ICryptoService cryptoService, IPerformanceCountersRepository performanceCountersRepository, IHashCalculationsRepository hashCalculationRepository) : base(loggerService) { _communicationService = clientCommunicationServiceRepository.GetInstance(nameof(TcpClientCommunicationService)); _configurationService = configurationService; _signatureSupportSerializersFactory = signatureSupportSerializersFactory; _nodesDataService = nodesDataService; _cryptoService = cryptoService; _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); _loadCountersService = performanceCountersRepository.GetInstance <LoadCountersService>(); _hashCalculation = hashCalculationRepository.Create(Globals.DEFAULT_HASH); _proofOfWorkCalculation = hashCalculationRepository.Create(Globals.POW_TYPE); }
public SynchronizationBlocksHandler(IStatesRepository statesRepository, ISynchronizationProducer synchronizationProducer, ISerializersFactory serializersFactory, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, INodesRatingProviderFactory nodesRatingProvidersFactory, IServerCommunicationServicesRegistry communicationServicesRegistry, ISyncRegistryMemPool syncRegistryMemPool) { _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _synchronizationProducer = synchronizationProducer; _nodeContext = statesRepository.GetInstance <INodeContext>(); _neighborhoodState = statesRepository.GetInstance <INeighborhoodState>(); _serializersFactory = serializersFactory; _communicationServicesRegistry = communicationServicesRegistry; _syncRegistryMemPool = syncRegistryMemPool; _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); _synchronizationBlocks = new BlockingCollection <SynchronizationBlockBase>(); _retransmittedBlocks = new BlockingCollection <SynchronizationBlockRetransmissionV1>(); _synchronizationBlocksByHeight = new Dictionary <ulong, Dictionary <IKey, List <SynchronizationBlockRetransmissionV1> > >(); _nodesRatingProvider = nodesRatingProvidersFactory.GetInstance(PacketType.Transactional); }
public TransactionRegistryMemPool(ILoggerService loggerService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IStatesRepository statesRepository, IHashCalculationsRepository hashCalculationsRepository) { _oldValue = 0; _transactionHashKey = identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider(); _logger = loggerService.GetLogger(nameof(TransactionRegistryMemPool)); _transactionStateWitnesses = new List <RegistryRegisterBlock>(); _transactionUtxoWitnesses = new List <RegistryRegisterUtxoConfidential>(); _transactionStateWitnessesBySender = new Dictionary <IKey, List <RegistryRegisterBlock> >(); _transactionUtxoWitnessesByKeyImage = new Dictionary <IKey, RegistryRegisterUtxoConfidential>(); _transactionsShortBlocks = new Dictionary <ulong, Dictionary <ulong, HashSet <RegistryShortBlock> > >(); _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _hashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); }
public O10InherenceService(IDataAccessService dataAccessService, IAccountsService accountsService, IConfigurationService configurationService, ISpValidationsService spValidationsService, IExecutionContextManager executionContextManager, IUniversalProofsPool universalProofsPool, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IHubContext <O10InherenceHub> o10InherenceHubContext, ILoggerService loggerService) { _sessions = new ConcurrentDictionary <string, TaskCompletionSource <InherenceData> >(); _dataAccessService = dataAccessService; _accountsService = accountsService; _spValidationsService = spValidationsService; _o10InherenceHubContext = o10InherenceHubContext; _portalConfiguration = configurationService.Get <IPortalConfiguration>(); _azureConfiguration = configurationService.Get <IAzureConfiguration>(); _logger = loggerService.GetLogger(nameof(O10InherenceService)); _executionContextManager = executionContextManager; _universalProofsPool = universalProofsPool; _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); PipeIn = new ActionBlock <PacketBase>( async p => { try { if (p is IdentityProofs identityProofs) { ProcessIdentityProofs(identityProofs); } else if (p is UniversalTransport universalTransport) { await ProcessUniversalTransport(universalTransport).ConfigureAwait(false); } } catch { _logger.Error("Unexpected exception at PipeIn"); } }); PipInNotifications = new ActionBlock <SynchronizerNotificationBase>(n => { }); }
public TestBase() { _transactionHashKeyProvider = Substitute.For <IIdentityKeyProvider>(); _identityKeyProvider = Substitute.For <IIdentityKeyProvider>(); _identityKeyProvidersRegistry = Substitute.For <IIdentityKeyProvidersRegistry>(); _hashCalculationRepository = Substitute.For <IHashCalculationsRepository>(); _blockParsersRepositoriesRepository = Substitute.For <IBlockParsersRepositoriesRepository>(); _blockParsersRepository = Substitute.For <IBlockParsersRepository>(); _signingService = Substitute.For <ISigningService>(); _identityKeyProvidersRegistry.GetInstance().Returns(_identityKeyProvider); _identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider().Returns(_transactionHashKeyProvider); _identityKeyProvider.GetKey(null).ReturnsForAnyArgs(c => new Key32() { Value = c.Arg <Memory <byte> >() }); _transactionHashKeyProvider.GetKey(null).ReturnsForAnyArgs(c => new Key16() { Value = c.Arg <Memory <byte> >() }); _hashCalculationRepository.Create(HashType.MurMur).Returns(new MurMurHashCalculation()); _blockParsersRepositoriesRepository.GetBlockParsersRepository(PacketType.Registry).ReturnsForAnyArgs(_blockParsersRepository); _privateKey = ConfidentialAssetsHelper.GetRandomSeed(); _privateViewKey = ConfidentialAssetsHelper.GetRandomSeed(); Ed25519.KeyPairFromSeed(out _publicKey, out _expandedPrivateKey, _privateKey); _signingService.WhenForAnyArgs(s => s.Sign(null, null)).Do(c => { ((SignedPacketBase)c.ArgAt <IPacket>(0)).Signer = new Key32(_publicKey); ((SignedPacketBase)c.ArgAt <IPacket>(0)).Signature = Ed25519.Sign(((SignedPacketBase)c.ArgAt <IPacket>(0)).BodyBytes.ToArray(), _expandedPrivateKey); }); _signingService.PublicKeys.Returns(new IKey[] { new Key32() { Value = _publicKey } }); _utxoSigningService = new UtxoSigningService(_identityKeyProvidersRegistry); _utxoSigningService.Initialize(_privateKey, _privateViewKey); ServiceLocator.Current.GetInstance <IUnityContainer>().RegisterInstance(_blockParsersRepositoriesRepository); }
private static SortedList <ushort, RegistryRegisterBlock> GetTransactionHeaders(ulong syncBlockHeight, ulong blockHeight, uint nonce, ushort expectedCount) { PacketType expectedReferencedPacketType = PacketType.Transactional; ushort expectedReferencedBlockType = BlockTypes.Transaction_TransferFunds; SortedList <ushort, RegistryRegisterBlock> transactionHeaders = new SortedList <ushort, RegistryRegisterBlock>(expectedCount); for (ushort j = 0; j < expectedCount; j++) { RegistryRegisterBlock registryRegisterBlock = new RegistryRegisterBlock { SyncBlockHeight = syncBlockHeight, Nonce = nonce + j, PowHash = BinaryHelper.GetPowHash(1234 + j), BlockHeight = blockHeight, ReferencedPacketType = expectedReferencedPacketType, ReferencedBlockType = expectedReferencedBlockType, ReferencedBodyHash = BinaryHelper.GetDefaultHash(473826643 + j), ReferencedTarget = BinaryHelper.GetDefaultHash(BinaryHelper.GetRandomPublicKey()) }; ISigningService signingService = GetRandomCryptoService(); IIdentityKeyProvider transactionIdentityKeyProvider = Substitute.For <IIdentityKeyProvider>(); transactionIdentityKeyProvider.GetKey(null).ReturnsForAnyArgs(c => new Key16(c.ArgAt <Memory <byte> >(0))); IIdentityKeyProvidersRegistry transactionIdentityKeyProvidersRegistry = Substitute.For <IIdentityKeyProvidersRegistry>(); transactionIdentityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider().Returns(transactionIdentityKeyProvider); IHashCalculationsRepository transactionHashCalculationsRepository = Substitute.For <IHashCalculationsRepository>(); transactionHashCalculationsRepository.Create(HashType.MurMur).Returns(new MurMurHashCalculation()); RegistryRegisterBlockSerializer serializer1 = new RegistryRegisterBlockSerializer(); serializer1.Initialize(registryRegisterBlock); serializer1.SerializeBody(); signingService.Sign(registryRegisterBlock); serializer1.SerializeFully(); transactionHeaders.Add(j, registryRegisterBlock); } return(transactionHeaders); }
public ElectionCommitteeService( IDataAccessService dataAccessService, IAccountsService accountsService, IAssetsService assetsService, IIdentityAttributesService identityAttributesService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, ITranslatorsRepository translatorsRepository, ISchemeResolverService schemeResolverService, IExecutionContextManager executionContextManager, ILoggerService loggerService) { _dataAccessService = dataAccessService; _accountsService = accountsService; _assetsService = assetsService; _identityAttributesService = identityAttributesService; _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); _translatorsRepository = translatorsRepository; _schemeResolverService = schemeResolverService; _executionContextManager = executionContextManager; _logger = loggerService.GetLogger(nameof(ElectionCommitteeService)); }
public TransactionsRegistryService(IStatesRepository statesRepository, IPredicatesRepository predicatesRepository, IRegistryMemPool registryMemPool, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IConfigurationService configurationService, IServerCommunicationServicesRegistry serverCommunicationServicesRegistry, IPerformanceCountersRepository performanceCountersRepository, ISerializersFactory serializersFactory, IHashCalculationsRepository hashCalculationsRepository, ILoggerService loggerService) { _configurationService = configurationService; _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _registryGroupState = statesRepository.GetInstance <IRegistryGroupState>(); _nodeContext = statesRepository.GetInstance <INodeContext>(); _isBlockProducerPredicate = predicatesRepository.GetInstance("IsBlockProducer"); _transactionHashKey = identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider(); _serverCommunicationServicesRegistry = serverCommunicationServicesRegistry; _serializersFactory = serializersFactory; _powCalculation = hashCalculationsRepository.Create(Globals.POW_TYPE); _hashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); _logger = loggerService.GetLogger(nameof(TransactionsRegistryService)); _registryMemPool = registryMemPool; _nodeCountersService = performanceCountersRepository.GetInstance <NodeCountersService>(); }
public TransactionalChainManagerImpl(IChainDataServicesManager chainDataServicesManager, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IHashCalculationsRepository hashCalculationsRepository, ILogger logger) { _logger = logger; _transactionalDataService = chainDataServicesManager.GetChainDataService(PacketType.Transactional); _registryChainDataService = chainDataServicesManager.GetChainDataService(PacketType.Registry); _utxoConfidentialDataService = chainDataServicesManager.GetChainDataService(PacketType.UtxoConfidential); _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); _hashCalculation = hashCalculationsRepository.Create(Globals.DEFAULT_HASH); }
public NodesDataService(IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) { _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); }
public AcceptAssetsParser(IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) : base(identityKeyProvidersRegistry) { }
public RetransferAssetToUtxoParser(IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) : base(identityKeyProvidersRegistry) { }
public RegistryConfidenceBlockSerializer(ICryptoService cryptoService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IHashCalculationsRepository hashCalculationsRepository) : base(PacketType.Registry, BlockTypes.Registry_ConfidenceBlock, cryptoService, identityKeyProvidersRegistry, hashCalculationsRepository) { }
public void MemPool_AddedNonUniqueTransactions_NotAllContained() { SynchronizationDescriptor synchronizationDescriptor = new SynchronizationDescriptor(1, new byte[Globals.DEFAULT_HASH_SIZE], DateTime.Now, DateTime.Now, 1); IHash transactionKeyHash = HashFactory.Hash128.CreateMurmur3_128(); ILogger logger = Substitute.For <ILogger>(); ILoggerService loggerService = Substitute.For <ILoggerService>(); IIdentityKeyProvider identityKeyProvider = new TransactionRegistryKeyProvider(); IIdentityKeyProvidersRegistry identityKeyProvidersRegistry = Substitute.For <IIdentityKeyProvidersRegistry>(); IHashCalculationsRepository hashCalculationsRepository = Substitute.For <IHashCalculationsRepository>(); ISigningService signingService = Substitute.For <ISigningService>(); SynchronizationContext synchronizationContext = new SynchronizationContext(loggerService); synchronizationContext.UpdateLastSyncBlockDescriptor(synchronizationDescriptor); IStatesRepository statesRepository = Substitute.For <IStatesRepository>(); hashCalculationsRepository.Create(HashType.MurMur).Returns(new MurMurHashCalculation()); logger.WhenForAnyArgs(l => l.Error(null)).DoNotCallBase(); logger.WhenForAnyArgs(l => l.Warning(null)).DoNotCallBase(); logger.WhenForAnyArgs(l => l.Info(null)).DoNotCallBase(); loggerService.GetLogger(null).Returns(logger); identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider().ReturnsForAnyArgs(identityKeyProvider); //identityKeyProvider.GetKey(null).ReturnsForAnyArgs(c => new Key16() { Value = c.Arg<Memory<byte>>() }); statesRepository.GetInstance <ISynchronizationContext>().Returns(synchronizationContext); byte[] privateKey = ConfidentialAssetsHelper.GetRandomSeed(); Ed25519.KeyPairFromSeed(out byte[] publicKey, out byte[] expandedPrivateKey, privateKey); signingService.WhenForAnyArgs(s => s.Sign(null, null)).Do(c => { ((SignedPacketBase)c.ArgAt <IPacket>(0)).Signer = new Key32(publicKey); ((SignedPacketBase)c.ArgAt <IPacket>(0)).Signature = Ed25519.Sign(c.Arg <byte[]>(), expandedPrivateKey); }); signingService.PublicKeys.ReturnsForAnyArgs(new IKey[] { new Key32(publicKey) }); TransactionRegistryMemPool transactionRegistryMemPool = new TransactionRegistryMemPool(loggerService, identityKeyProvidersRegistry, statesRepository, hashCalculationsRepository); SortedList <ushort, RegistryRegisterBlock> expectedBlocks = new SortedList <ushort, RegistryRegisterBlock>(); ulong[] heights = new ulong[] { 1, 2, 2, 5, 4, 3, 4, 3, 4, 5, 3 }; HashSet <ulong> addedHeights = new HashSet <ulong>(); ushort order = 0; for (ulong i = 0; i < (ulong)heights.Length; i++) { RegistryRegisterBlock transactionRegisterBlock = PacketsBuilder.GetTransactionRegisterBlock(synchronizationContext.LastBlockDescriptor.BlockHeight, 1, null, heights[i], PacketType.Transactional, BlockTypes.Transaction_TransferFunds, new byte[Globals.POW_HASH_SIZE], new byte[Globals.DEFAULT_HASH_SIZE], privateKey); RegistryRegisterBlockSerializer serializer = new RegistryRegisterBlockSerializer(); serializer.Initialize(transactionRegisterBlock); serializer.SerializeBody(); signingService.Sign(transactionRegisterBlock); serializer.SerializeFully(); if (!addedHeights.Contains(heights[i])) { expectedBlocks.Add(order++, transactionRegisterBlock); addedHeights.Add(heights[i]); } transactionRegistryMemPool.EnqueueTransactionWitness(transactionRegisterBlock); } SortedList <ushort, RegistryRegisterBlock> actualBlocks = transactionRegistryMemPool.DequeueStateWitnessBulk(); Assert.Equal(expectedBlocks.Count, actualBlocks.Count); for (ushort i = 0; i < (ushort)expectedBlocks.Count; i++) { Assert.Equal(expectedBlocks[i].BlockHeight, actualBlocks[i].BlockHeight); } }
public TransitionAuthenticationProofsParser(IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) : base(identityKeyProvidersRegistry) { }
public LinkedBlockParserBase(IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) : base(identityKeyProvidersRegistry) { }
public TransactionRegistrationLoadModule(ILoggerService loggerService, IClientCommunicationServiceRepository clientCommunicationServiceRepository, IConfigurationService configurationService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, ISerializersFactory signatureSupportSerializersFactory, INodesDataService nodesDataService, ISigningService cryptoService, IPerformanceCountersRepository performanceCountersRepository, IStatesRepository statesRepository, IHashCalculationsRepository proofOfWorkCalculationRepository, IHashCalculationsRepository hashCalculationRepository) : base(loggerService, clientCommunicationServiceRepository, configurationService, identityKeyProvidersRegistry, signatureSupportSerializersFactory, nodesDataService, cryptoService, performanceCountersRepository, hashCalculationRepository) { _synchronizationContext = statesRepository.GetInstance <ISynchronizationContext>(); _proofOfWorkCalculation = proofOfWorkCalculationRepository.Create(Globals.POW_TYPE); }
public TransferFundsBlockParser(IHashCalculationsRepository proofOfWorkCalculationRepository, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) : base(proofOfWorkCalculationRepository, identityKeyProvidersRegistry) { }
public SignatureSupportSerializerBase(PacketType packetType, ushort blockType, ICryptoService cryptoService, IIdentityKeyProvidersRegistry identityKeyProvidersRegistry, IHashCalculationsRepository hashCalculationsRepository) : base(packetType, blockType) { _cryptoService = cryptoService; _transactionKeyIdentityKeyProvider = identityKeyProvidersRegistry.GetTransactionsIdenityKeyProvider(); _transactionKeyHashCalculation = hashCalculationsRepository.Create(HashType.MurMur); }
public AcceptFundsBlockParser(IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) : base(identityKeyProvidersRegistry) { }
public SetupSimulation(IIdentityKeyProvidersRegistry identityKeyProvidersRegistry) { _identityKeyProvider = identityKeyProvidersRegistry.GetInstance(); }