/// <summary> /// The main method where we will create all useful dependencies for the chain /// </summary> /// <param name="centralCoordinator"></param> /// <returns></returns> protected override INeuraliumChainComponentsInjection CreateChainComponents(INeuraliumCentralCoordinator centralCoordinator, INeuraliumBlockChainInterface chainInterface) { NeuraliumWalletProvider walletProvider = new NeuraliumWalletProvider(centralCoordinator); NeuraliumWalletProviderProxy walletProviderProxy = new NeuraliumWalletProviderProxy(centralCoordinator, walletProvider); NeuraliumChainDalCreationFactory chainDalCreationFactory = new NeuraliumChainDalCreationFactory(); NeuraliumChainTypeCreationFactory chainTypeCreationFactory = new NeuraliumChainTypeCreationFactory(centralCoordinator); NeuraliumClientWorkflowFactory clientWorkflowFactory = new NeuraliumClientWorkflowFactory(centralCoordinator); NeuraliumGossipWorkflowFactory gossipWorkflowFactory = new NeuraliumGossipWorkflowFactory(centralCoordinator); NeuraliumServerWorkflowFactory serverWorkflowFactory = new NeuraliumServerWorkflowFactory(centralCoordinator); NeuraliumMainChainMessageFactory messageFactory = new NeuraliumMainChainMessageFactory(centralCoordinator.BlockchainServiceSet); NeuraliumWorkflowTaskFactory taskFactory = new NeuraliumWorkflowTaskFactory(centralCoordinator); NeuraliumBlockchainEventsRehydrationFactory blockchainEventsRehydrationFactory = new NeuraliumBlockchainEventsRehydrationFactory(centralCoordinator); NeuraliumChainWorkflowFactory workflowFactory = new NeuraliumChainWorkflowFactory(centralCoordinator); INeuraliumChainFactoryProvider chainFactoryProvider = new NeuraliumChainFactoryProvider(chainDalCreationFactory, chainTypeCreationFactory, workflowFactory, messageFactory, clientWorkflowFactory, serverWorkflowFactory, gossipWorkflowFactory, taskFactory, blockchainEventsRehydrationFactory); INeuraliumChainStateProvider chainStateProvider = new NeuraliumChainStateProvider(centralCoordinator); INeuraliumAccountSnapshotsProvider accountSnapshotsProvider = new NeuraliumAccountSnapshotsProvider(centralCoordinator); INeuraliumChainConfigurationProvider chainConfigurationProvider = new NeuraliumChainConfigurationProvider(); INeuraliumChainMiningProvider chainMiningProvider = new NeuraliumChainMiningProvider(centralCoordinator); INeuraliumChainDataLoadProvider chainDataLoadProvider = new NeuraliumChainDataWriteProvider(centralCoordinator); INeuraliumInterpretationProvider interpretationProvider = new NeuraliumInterpretationProvider(centralCoordinator); INeuraliumAccreditationCertificateProvider accreditationCertificateProvider = new NeuraliumAccreditationCertificateProvider(centralCoordinator); INeuraliumChainNetworkingProvider chainNetworkingProvider = new NeuraliumChainNetworkingProvider(DIService.Instance.GetService <IBlockchainNetworkingService>(), centralCoordinator); INeuraliumAssemblyProvider assemblyProvider = new NeuraliumAssemblyProvider(centralCoordinator); // build the final component NeuraliumChainComponentsInjection componentsInjector = new NeuraliumChainComponentsInjection(); componentsInjector.ChainComponentProvider = new NeuraliumChainComponentProvider(walletProviderProxy, assemblyProvider, chainFactoryProvider, chainStateProvider, chainConfigurationProvider, chainMiningProvider, chainDataLoadProvider, accreditationCertificateProvider, accountSnapshotsProvider, chainNetworkingProvider, interpretationProvider); NeuraliumBlockchainManager transactionBlockchainManager = new NeuraliumBlockchainManager(centralCoordinator); NeuraliumSerializationManager serializationManager = new NeuraliumSerializationManager(centralCoordinator); NeuraliumValidationManager validationManager = new NeuraliumValidationManager(centralCoordinator); NeuraliumGossipManager gossipManager = new NeuraliumGossipManager(centralCoordinator); componentsInjector.blockchainManager = transactionBlockchainManager; componentsInjector.serializationManager = serializationManager; componentsInjector.validationManager = validationManager; componentsInjector.gossipManager = gossipManager; componentsInjector.chainInterface = chainInterface; return(componentsInjector); }
public override INeuraliumBlockChainInterface CreateNewChain(IServiceProvider serviceProvider, ChainRuntimeConfiguration chainRuntimeConfiguration = null, IFileSystem fileSystem = null) { chainRuntimeConfiguration = chainRuntimeConfiguration ?? new ChainRuntimeConfiguration(); fileSystem = fileSystem ?? new FileSystem(); DIService.Instance.AddServiceProvider(NeuraliumBlockchainTypes.NeuraliumInstance.Neuralium, serviceProvider); BlockchainServiceSet serviceSet = new BlockchainServiceSet(NeuraliumBlockchainTypes.NeuraliumInstance.Neuralium); INeuraliumCentralCoordinator centralCoordinator = this.CreateCentralCoordinator(serviceSet, chainRuntimeConfiguration, fileSystem); NeuraliumBlockChainInterface chainInterface = new NeuraliumBlockChainInterface(centralCoordinator); centralCoordinator.InitializeContents(this.CreateChainComponents(centralCoordinator, chainInterface)); return(chainInterface); }
public NeuraliumTransactionInterpretationProcessor(INeuraliumCentralCoordinator centralCoordinator, TransactionImpactSet.OperationModes operationMode) : base(centralCoordinator, operationMode) { this.snapshotCacheSet = new NeuraliumSnapshotCacheSet<ACCOUNT_SNAPSHOT, STANDARD_ACCOUNT_SNAPSHOT, STANDARD_ACCOUNT_FEATURE_SNAPSHOT, STANDARD_ACCOUNT_FREEZE_SNAPSHOT, JOINT_ACCOUNT_SNAPSHOT, JOINT_ACCOUNT_FEATURE_SNAPSHOT, JOINT_ACCOUNT_MEMBERS_SNAPSHOT, JOINT_ACCOUNT_FREEZE_SNAPSHOT, STANDARD_ACCOUNT_KEY_SNAPSHOT, ACCREDITATION_CERTIFICATE_SNAPSHOT, ACCREDITATION_CERTIFICATE_ACCOUNT_SNAPSHOT, CHAIN_OPTIONS_SNAPSHOT>(NeuraliumCardsUtils.Instance); }
public NeuraliumTransactionInterpretationProcessor(INeuraliumCentralCoordinator centralCoordinator) : this(centralCoordinator, TransactionImpactSet.OperationModes.Real) { }
protected override ITransactionInterpretationProcessor <INeuraliumCentralCoordinator, INeuraliumChainComponentProvider, ACCOUNT_SNAPSHOT, STANDARD_ACCOUNT_SNAPSHOT, STANDARD_ACCOUNT_FEATURE_SNAPSHOT, JOINT_ACCOUNT_SNAPSHOT, JOINT_ACCOUNT_FEATURE_SNAPSHOT, JOINT_ACCOUNT_MEMBERS_SNAPSHOT, STANDARD_ACCOUNT_KEY_SNAPSHOT, ACCREDITATION_CERTIFICATE_SNAPSHOT, ACCREDITATION_CERTIFICATE_ACCOUNT_SNAPSHOT, CHAIN_OPTIONS_SNAPSHOT> CreateV1ITransactionInterpretation(INeuraliumCentralCoordinator centralCoordinator) { return(new NeuraliumTransactionInterpretationProcessor <ACCOUNT_SNAPSHOT, STANDARD_ACCOUNT_SNAPSHOT, STANDARD_ACCOUNT_FEATURE_SNAPSHOT, STANDARD_ACCOUNT_FREEZE_SNAPSHOT, JOINT_ACCOUNT_SNAPSHOT, JOINT_ACCOUNT_FEATURE_SNAPSHOT, JOINT_ACCOUNT_MEMBERS_SNAPSHOT, JOINT_ACCOUNT_FREEZE_SNAPSHOT, STANDARD_ACCOUNT_KEY_SNAPSHOT, ACCREDITATION_CERTIFICATE_SNAPSHOT, ACCREDITATION_CERTIFICATE_ACCOUNT_SNAPSHOT, CHAIN_OPTIONS_SNAPSHOT>(centralCoordinator)); }
protected NeuraliumInterpretationProviderGenerix(INeuraliumCentralCoordinator centralCoordinator) : base(centralCoordinator) { }
public NeuraliumInterpretationProvider(INeuraliumCentralCoordinator centralCoordinator) : base(centralCoordinator) { }
public InsertDebugConfirmWorkflow(TransactionId guid, IByteArray hash, INeuraliumCentralCoordinator centralCoordinator) : base(centralCoordinator) { this.guid = guid; this.hash = hash; }
protected NeuraliumGossipChainWorkflow(BlockchainType chainType, INeuraliumCentralCoordinator centralCoordinator, NeuraliumGossipMessageSet <NeuraliumGossipWorkflowTriggerMessage <EVENT_ENVELOPE_TYPE>, EVENT_ENVELOPE_TYPE> triggerMessage, PeerConnection peerConnectionn) : base(chainType, centralCoordinator, triggerMessage, peerConnectionn) { }
public InsertDebugMessageWorkflow(INeuraliumCentralCoordinator centralCoordinator) : base(centralCoordinator) { }