Example #1
0
        public BlockchainFixture()
        {
            var @namespace = $"{Guid.NewGuid()}";

            var coinSettings        = new CoinSettingsFixture();
            var blocks              = new EmptyBlockchainFixtureWithNamespace(@namespace);
            var transactions        = new EmptyTransactionDatabaseFixture(@namespace);
            var coinSettingsOptions = new OptionsWrapper <CoinSettings>(coinSettings.Value);
            var hashProvider        = new HashProviderFixture();
            var jsonSettings        = new JsonSerializerSettingsFixture();
            var pow = new CoinBasedProofOfWork(coinSettingsOptions, hashProvider.Value);

            var factory = new LoggerFactory();

            factory.AddConsole();

            Value = new Blockchain(
                coinSettingsOptions,
                blocks.Value,
                pow,
                transactions.Value,
                hashProvider.Value,
                jsonSettings.Value,
                factory.CreateLogger <Blockchain>());
        }
        protected void Init(string @namespace)
        {
            var coinSettings = new CoinSettingsFixture().Value;
            var hashProvider = new HashProviderFixture().Value;
            var factory      = new LoggerFactory();

            factory.AddConsole();

            Value = new SqliteCurrencyBlockRepository(
                @namespace,
                "blockchain",
                new OptionsWrapper <CoinSettings>(coinSettings),
                hashProvider,
                factory.CreateLogger <SqliteCurrencyBlockRepository>());

            var block = coinSettings.GenesisBlock;

            foreach (var transaction in block.Transactions)
            {
                transaction.Hash = hashProvider.ComputeHashBytes(transaction);
            }
            block.Hash = block.ToHashBytes(hashProvider);

            Value.AddAsync(block).ConfigureAwait(false).GetAwaiter().GetResult();
        }
Example #3
0
        public OperatorFixture(BlockchainFixture blockchain)
        {
            var coinSettings   = new CoinSettingsFixture();
            var hashProvider   = new HashProviderFixture();
            var walletProvider = new WalletProviderFixture();

            var factory = new LoggerFactory();

            factory.AddConsole();

            Value = new Operator(blockchain.Value, hashProvider.Value, walletProvider.Value,
                                 new OptionsWrapper <CoinSettings>(coinSettings.Value), factory.CreateLogger <Operator>());
        }
Example #4
0
        public MinerFixture(BlockchainFixture blockchain)
        {
            var coinSettings        = new CoinSettingsFixture();
            var coinSettingsOptions = new OptionsWrapper <CoinSettings>(coinSettings.Value);
            var hashProvider        = new HashProviderFixture();
            var pow = new CoinBasedProofOfWork(coinSettingsOptions, hashProvider.Value);

            var factory = new LoggerFactory();

            factory.AddConsole();

            Value = new Miner(blockchain.Value, pow, coinSettingsOptions, factory.CreateLogger <Miner>());
        }
 public WhenBlockDatabaseContainsOnlyGenesis(EmptyBlockchainFixture blockDatabase, CoinSettingsFixture coinSettings, HashProviderFixture hashProvider)
 {
     Fixture      = blockDatabase;
     CoinSettings = coinSettings.Value;
     HashProvider = hashProvider.Value;
 }