protected override INeuraliumCentralCoordinator CreateCentralCoordinator(BlockchainServiceSet serviceSet, ChainRuntimeConfiguration chainRuntimeConfiguration, IFileSystem fileSystem)
 {
     return(new NeuraliumCentralCoordinator(serviceSet, chainRuntimeConfiguration, fileSystem));
 }
 public NeuraliumCentralCoordinator(BlockchainServiceSet serviceSet, ChainRuntimeConfiguration chainRuntimeConfiguration, IFileSystem fileSystem) : base(NeuraliumBlockchainTypes.NeuraliumInstance.Neuralium, serviceSet, chainRuntimeConfiguration, fileSystem)
 {
     // make sure we can name our blockchain
     BlockchainTypes.Instance.AddBlockchainTypeNameProvider(new NeuraliumBlockchainTypeNameProvider());
 }
        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);
        }