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(); }
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); } }
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); } }
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); }
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)); }); } }
public ChainRepository(string folder) { Guard.NotEmpty(folder, nameof(folder)); this._Session = new DBreezeSingleThreadSession("DBreeze ChainRepository", folder); }