Пример #1
0
 public void DoRunsSameThreadAsSessionCreated()
 {
     using (var session = new DBreezeSingleThreadSession("TestThread", AssureEmptyDir("TestData/DBreezeSingleThreadSession/DoRunsSameThreadAsSessionCreated")))
     {
         session.Do(() =>
         {
             Assert.Equal("TestThread", Thread.CurrentThread.Name);
         });
     }
 }
        public BlockRepository(Network network, DBreezeSingleThreadSession session, ILoggerFactory loggerFactory)
        {
            Guard.NotNull(network, nameof(network));
            Guard.NotNull(session, nameof(session));

            this.logger             = loggerFactory.CreateLogger(this.GetType().FullName);
            this.session            = session;
            this.network            = network;
            this.PerformanceCounter = PerformanceCounterFactory();
        }
        public void NBitcoinDeserializeWithRewindDataDeserializesObject()
        {
            var network    = Network.RegTest;
            var genesis    = network.GetGenesis();
            var rewindData = new RewindData(genesis.GetHash());

            var result = (RewindData)DBreezeSingleThreadSession.NBitcoinDeserialize(rewindData.ToBytes(), typeof(RewindData));

            Assert.Equal(genesis.GetHash(), result.PreviousBlockHash);
        }
        public void NBitcoinDeserializeWithBlockHeaderDeserializesObject()
        {
            var network     = Network.RegTest;
            var genesis     = network.GetGenesis();
            var blockHeader = genesis.Header;

            var result = (BlockHeader)DBreezeSingleThreadSession.NBitcoinDeserialize(blockHeader.ToBytes(), typeof(BlockHeader));

            Assert.Equal(blockHeader.GetHash(), result.GetHash());
        }
 public void DoStartsTransaction()
 {
     using (var session = new DBreezeSingleThreadSession("TestThread", AssureEmptyDir("TestData/DBreezeSingleThreadSession/DoStartsTransaction")))
     {
         session.Execute(() =>
         {
             Assert.NotNull(session.Transaction);
         });
     }
 }
        /// <summary>
        /// Initializes a new instance of the object.
        /// </summary>
        /// <param name="network">Specification of the network the node runs on - regtest/testnet/mainnet.</param>
        /// <param name="folder">Path to the folder with coinview database files.</param>
        /// <param name="loggerFactory">Factory to be used to create logger for the puller.</param>
        public DBreezeCoinView(Network network, string folder, ILoggerFactory loggerFactory)
        {
            Guard.NotNull(network, nameof(network));
            Guard.NotEmpty(folder, nameof(folder));

            this.logger             = loggerFactory.CreateLogger(this.GetType().FullName);
            this.session            = new DBreezeSingleThreadSession("DBreeze CoinView", folder);
            this.network            = network;
            this.performanceCounter = new BackendPerformanceCounter();
        }
Пример #7
0
        public void DoWithTypePerformsTask()
        {
            using (var session = new DBreezeSingleThreadSession("TestThread", AssureEmptyDir("TestData/DBreezeSingleThreadSession/DoWithTypePerformsTask")))
            {
                var task = session.Do <string>(() =>
                {
                    return("TaskResult");
                });
                task.Wait();

                Assert.Equal("TaskResult", task.Result);
            }
        }
Пример #8
0
        public void DoWithTypeRunsSameThreadAsSessionCreated()
        {
            using (var session = new DBreezeSingleThreadSession("TestThread", AssureEmptyDir("TestData/DBreezeSingleThreadSession/DoWithTypeRunsSameThreadAsSessionCreated")))
            {
                var thread = session.Do <string>(() =>
                {
                    return(Thread.CurrentThread.Name);
                });
                thread.Wait();

                Assert.Equal("TestThread", thread.Result);
            }
        }
Пример #9
0
        public void NBitcoinDeserializeWithCoinsDeserializesObject()
        {
            var network = Network.RegTest;
            var genesis = network.GetGenesis();
            var coins   = new Coins(genesis.Transactions[0], 0);

            var result = (Coins)DBreezeSingleThreadSession.NBitcoinDeserialize(coins.ToBytes(), typeof(Coins));

            Assert.Equal(coins.CoinBase, result.CoinBase);
            Assert.Equal(coins.Height, result.Height);
            Assert.Equal(coins.IsEmpty, result.IsEmpty);
            Assert.Equal(coins.IsPruned, result.IsPruned);
            Assert.Equal(coins.Outputs.Count, result.Outputs.Count);
            Assert.Equal(coins.Outputs[0].ScriptPubKey.Hash, result.Outputs[0].ScriptPubKey.Hash);
            Assert.Equal(coins.Outputs[0].Value, result.Outputs[0].Value);
            Assert.Equal(coins.UnspentCount, result.UnspentCount);
            Assert.Equal(coins.Value, result.Value);
            Assert.Equal(coins.Version, result.Version);
        }
Пример #10
0
        public void DoAbleToAccessExistingTransactionData()
        {
            var dir = AssureEmptyDir("TestData/DBreezeSingleThreadSession/DoAbleToAccessExistingTransactionData");

            uint256[] data = SetupTransactionData(dir);

            using (var session = new DBreezeSingleThreadSession("TestThread", dir))
            {
                session.Do(() =>
                {
                    var data2       = new uint256[data.Length];
                    var transaction = session.Transaction;
                    int i           = 0;
                    foreach (var row in transaction.SelectForward <byte[], byte[]>("Table"))
                    {
                        data2[i++] = new uint256(row.Key, false);
                    }

                    Assert.True(data.SequenceEqual(data2));
                });
            }
        }
Пример #11
0
        public ChainRepository(string folder)
        {
            Guard.NotEmpty(folder, nameof(folder));

            this._Session = new DBreezeSingleThreadSession("DBreeze ChainRepository", folder);
        }