public static int Sample(TimeSpan computationTime) { var miner = new Miner(CashAlgorithm.Version1, -1, computationTime); var buffer = new byte[32]; { var random = new Random(); random.NextBytes(buffer); } using (var stream = new MemoryStream(buffer)) { var cash = miner.Create(new WrapperStream(stream, true)); stream.Seek(0, SeekOrigin.Begin); return Miner.Verify(cash, new WrapperStream(stream, true)); } }
public static int Sample(TimeSpan computationTime) { var miner = new Miner(CashAlgorithm.Version1, -1, computationTime); var buffer = new byte[32]; { var random = new Random(); random.NextBytes(buffer); } using (var stream = new MemoryStream(buffer)) { var cash = miner.Create(new WrapperStream(stream, true)); stream.Seek(0, SeekOrigin.Begin); return(Miner.Verify(cash, new WrapperStream(stream, true))); } }
public void Test_Miner() { //{ // var key = NetworkConverter.FromHexString("e0ee19d617ee6ea9ea592afbdf71bafba6eecde2beba0d3cdc51419522fe5dbdf18f6830081be1615969b1fe43344fac3c312cd86a487cb1bd04f2c44cddca11"); // var value = NetworkConverter.FromHexString("01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101"); // var count = Verify_1(key, value); //} { Miner miner = new Miner(CashAlgorithm.Version1, -1, new TimeSpan(0, 0, 1)); Cash cash = null; Stopwatch sw = new Stopwatch(); sw.Start(); using (MemoryStream stream = new MemoryStream(NetworkConverter.FromHexString("0101010101010101"))) { cash = miner.Create(stream); } sw.Stop(); Assert.IsTrue(sw.ElapsedMilliseconds < 1000 * 30); } { Miner miner = new Miner(CashAlgorithm.Version1, 20, new TimeSpan(1, 0, 0)); Cash cash = null; using (MemoryStream stream = new MemoryStream(NetworkConverter.FromHexString("0101010101010101"))) { cash = miner.Create(stream); stream.Seek(0, SeekOrigin.Begin); Assert.IsTrue(Miner.Verify(cash, stream) >= 20); } } { Miner miner = new Miner(CashAlgorithm.Version1, 0, TimeSpan.Zero); Cash cash = null; using (MemoryStream stream = new MemoryStream(NetworkConverter.FromHexString("0101010101010101"))) { cash = miner.Create(stream); } Assert.IsTrue(cash == null); } { Stopwatch sw = new Stopwatch(); sw.Start(); Assert.Throws<AggregateException>(() => { Miner miner = new Miner(CashAlgorithm.Version1, -1, new TimeSpan(1, 0, 0)); var task = Task.Factory.StartNew(() => { Cash cash = null; using (MemoryStream stream = new MemoryStream(NetworkConverter.FromHexString("0101010101010101"))) { cash = miner.Create(stream); } }); Thread.Sleep(1000); miner.Cancel(); task.Wait(); }); sw.Stop(); Assert.IsTrue(sw.ElapsedMilliseconds < 1000 * 30); } }