Create() public méthode

public Create ( Stream stream ) : Cash
stream Stream
Résultat Cash
Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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);
            }
        }