Esempio n. 1
0
        public void CompareBlockInfo2()
        {
            string url1 = "http://192.168.197.34:8000";
            string url2 = "http://192.168.197.29:8000";

            //Get Block Height
            string method    = "get_block_height";
            string parameter = "{}";
            string code      = string.Empty;

            var    request  = new RpcRequestManager(url1);
            string response = request.PostRequest(method, parameter, out code);
            var    result   = JObject.Parse(response);

            Assert.AreEqual("OK", code);
            Console.WriteLine(result["result"]["result"]);
            int height = Int32.Parse(result["result"]["result"]["block_height"].ToString());

            for (int i = 0; i < height; i++)
            {
                method    = "get_block_info";
                parameter = "{\"block_height\":\"" + i + "\"}";
                string code1    = string.Empty;
                string code2    = string.Empty;
                var    request1 = new RpcRequestManager(url1);
                var    request2 = new RpcRequestManager(url2);

                string response1 = request.PostRequest(method, parameter, out code1);
                string response2 = request.PostRequest(method, parameter, out code2);
                Assert.AreEqual("OK", code1);
                Assert.AreEqual("OK", code2);
                Assert.AreEqual(response1, response2);
            }
        }
Esempio n. 2
0
        public void TestRedisKeyInfo()
        {
            var rh   = new RedisHelper("192.168.197.13");
            var list = rh.GetAllKeys();

            Console.WriteLine("Total key counts: {0}", list.Count);

            TypeSummarySet tss   = new TypeSummarySet();
            int            count = 0;

            foreach (var item in list)
            {
                if (item == "ping")
                {
                    continue;
                }
                count++;
                var    byteArray = rh.GetT <byte[]>(item);
                string hexValue  = BitConverter.ToString(byteArray, 0).Replace("-", string.Empty).ToLower();

                var inputByteArray = new byte[hexValue.Length / 2];
                for (var x = 0; x < inputByteArray.Length; x++)
                {
                    var i = Convert.ToInt32(hexValue.Substring(x * 2, 2), 16);
                    inputByteArray[x] = (byte)i;
                }

                //Rpc Call
                string url       = "http://192.168.197.13:8000";
                string method    = "get_deserialized_info";
                string parameter = "{\"key\":\"" + item + "\",\"value\":\"" + hexValue + "\"}";
                string code      = string.Empty;

                try
                {
                    var    request  = new RpcRequestManager(url);
                    string response = request.PostRequest(method, parameter, out code);
                    Console.WriteLine($"Key {count} : {item}");
                    Console.WriteLine(response);
                    var    result = JObject.Parse(response);
                    string type   = result["result"]["TypeName"].ToString();
                    string value  = result["result"]["Value"].ToString();

                    var data = new DataResult(item, type, value);
                    tss.AddDataResult(data);
                    tss.AddTypeSummary(data);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Analyze {0} key got exception: {1}", item, ex.Message);
                }
            }

            foreach (var item in tss.SummaryInfo)
            {
                Console.WriteLine($"{item.TypeName} : {item.Count}");
            }
            Assert.IsTrue(true);
        }
Esempio n. 3
0
        public void GetBlockHeight()
        {
            string url       = "http://192.168.197.34:8000";
            string method    = "get_block_height";
            string parameter = "{}";
            string code      = string.Empty;

            var    request  = new RpcRequestManager(url);
            string response = request.PostRequest(method, parameter, out code);

            Console.WriteLine(response);
            Assert.AreEqual("OK", code);
            Assert.IsTrue(response.Contains("block_height"));
        }
Esempio n. 4
0
        public void GetInTimeBlockInfo(string rpcUrl)
        {
            int value = 0;

            for (int i = 1; i > 0; i++)
            {
                string method    = "get_block_height";
                string parameter = "{}";
                string code      = string.Empty;

                var    request  = new RpcRequestManager(rpcUrl);
                string response = request.PostRequest(method, parameter, out code);
                Console.WriteLine(response);
                Assert.AreEqual("OK", code);
                var    result   = JObject.Parse(response);
                string countStr = result["result"]["result"]["block_height"].ToString();
                if (value == Int32.Parse(countStr))
                {
                    continue;
                }

                value = Int32.Parse(countStr);
                string count = (Int32.Parse(countStr) - 1).ToString();
                method = "get_block_info";

                parameter = "{\"block_height\":\"" + count + "\"}";
                code      = string.Empty;

                request  = new RpcRequestManager(rpcUrl);
                response = request.PostRequest(method, parameter, out code);
                Console.WriteLine(response);
                Assert.AreEqual("OK", code);
                result = JObject.Parse(response);
                string txcount    = result["result"]["result"]["Body"]["TransactionsCount"].ToString();
                string txPoolSize = result["result"]["result"]["CurrentTransactionPoolSize"].ToString();
                System.Diagnostics.Debug.WriteLine("Height: {0},  TxCount: {1}, TxPoolSize: {2}, Time: {3}", count, txcount, txPoolSize, DateTime.Now.ToString());
                Thread.Sleep(1000);
            }
        }
Esempio n. 5
0
        public void TestMultiNodesDbData()
        {
            var rh1 = new RedisHelper("192.168.197.34");
            var rh2 = new RedisHelper("192.168.197.13");
            var rh3 = new RedisHelper("192.168.197.29");

            var list1 = rh1.GetAllKeys();
            var list2 = rh2.GetAllKeys();
            var list3 = rh2.GetAllKeys();

            Console.WriteLine("Node1 total keys: {0}", list1.Count);
            Console.WriteLine("Node2 total keys :{0}", list2.Count);
            Console.WriteLine("Node3 total keys :{0}", list3.Count);

            var same12 = RedisHelper.GetIntersection(list1, list2);
            var same13 = RedisHelper.GetIntersection(list1, list3);
            var same23 = RedisHelper.GetIntersection(list2, list3);

            var same123 = RedisHelper.GetIntersection(same12, same13);

            Console.WriteLine("Node12 same keys count: {0}", same12.Count);
            Console.WriteLine("Node13 same keys count: {0}", same13.Count);
            Console.WriteLine("Node23 same keys count: {0}", same23.Count);

            var diff12 = RedisHelper.GetExceptList(list1, list2);
            var diff21 = RedisHelper.GetExceptList(list2, list1);

            Console.WriteLine("Diff12 info(length): {0}", diff12.Count);
            foreach (var item in diff12)
            {
                Console.WriteLine("Diff12: {0}", item);
            }

            Console.WriteLine("Diff21 info(length): {0}", diff21.Count);
            foreach (var item in diff21)
            {
                Console.WriteLine("Diff21: {0}", item);
            }

            var diff13 = RedisHelper.GetExceptList(list1, list3);
            var diff31 = RedisHelper.GetExceptList(list3, list1);

            Console.WriteLine("Diff13 info(length): {0}", diff13.Count);
            foreach (var item in diff13)
            {
                Console.WriteLine("Diff13: {0}", item);
            }

            Console.WriteLine("Diff31 info(length): {0}", diff31.Count);
            foreach (var item in diff31)
            {
                Console.WriteLine("Diff31: {0}", item);
            }

            var diff23 = RedisHelper.GetExceptList(list2, list3);
            var diff32 = RedisHelper.GetExceptList(list3, list2);

            Console.WriteLine("Diff23 info(length): {0}", diff23.Count);
            foreach (var item in diff23)
            {
                Console.WriteLine("Diff23: {0}", item);
            }

            Console.WriteLine("Diff23 info(length): {0}", diff32.Count);
            foreach (var item in diff32)
            {
                Console.WriteLine("Diff32: {0}", item);
            }

            TypeSummarySet tss1 = new TypeSummarySet();
            TypeSummarySet tss2 = new TypeSummarySet();
            TypeSummarySet tss3 = new TypeSummarySet();

            Console.WriteLine("Compare same key with diff data scenario:");
            foreach (var item in same123)
            {
                if (item == "ping")
                {
                    continue;
                }

                //Redis Value
                var    byteArray1 = rh1.GetT <byte[]>(item);
                string hexValue1  = BitConverter.ToString(byteArray1, 0).Replace("-", string.Empty).ToLower();

                var    byteArray2 = rh2.GetT <byte[]>(item);
                string hexValue2  = BitConverter.ToString(byteArray2, 0).Replace("-", string.Empty).ToLower();

                var    byteArray3 = rh3.GetT <byte[]>(item);
                string hexValue3  = BitConverter.ToString(byteArray3, 0).Replace("-", string.Empty).ToLower();

                //Rpc Call
                string method = "get_deserialized_info";
                string url1   = "http://192.168.197.34:8000";
                string url2   = "http://192.168.197.13:8000";
                string url3   = "http://192.168.197.29:8000";

                if (hexValue1 != hexValue2)
                {
                    Console.WriteLine("Vaule1 Value2 diff: {0}", item);

                    string parameter1 = "{\"key\":\"" + item + "\",\"value\":\"" + hexValue1 + "\"}";
                    string code1      = string.Empty;

                    var    request1  = new RpcRequestManager(url1);
                    string response1 = request1.PostRequest(method, parameter1, out code1);
                    Console.WriteLine("Db1 rpc data:\r\n" + response1);
                    var    result1 = JObject.Parse(response1);
                    string type1   = result1["result"]["TypeName"].ToString();
                    string value1  = result1["result"]["Value"].ToString();

                    var data1 = new DataResult(item, type1, value1);
                    tss1.AddDataResult(data1);
                    tss1.AddTypeSummary(data1);

                    string parameter2 = "{\"key\":\"" + item + "\",\"value\":\"" + hexValue2 + "\"}";
                    string code2      = string.Empty;

                    var    request2  = new RpcRequestManager(url2);
                    string response2 = request2.PostRequest(method, parameter2, out code2);
                    Console.WriteLine("Db2 rpc data:\r\n" + response2);
                    var    result2 = JObject.Parse(response2);
                    string type2   = result2["result"]["TypeName"].ToString();
                    string value2  = result2["result"]["Value"].ToString();

                    var data2 = new DataResult(item, type2, value2);
                    tss2.AddDataResult(data2);
                    tss2.AddTypeSummary(data2);
                }

                if (hexValue1 != hexValue3)
                {
                    Console.WriteLine("Vaule1 Value3 diff: {0}", item);
                    string parameter3 = "{\"key\":\"" + item + "\",\"value\":\"" + hexValue3 + "\"}";
                    string code3      = string.Empty;

                    var    request3  = new RpcRequestManager(url3);
                    string response3 = request3.PostRequest(method, parameter3, out code3);
                    Console.WriteLine("Db3 rpc data:\r\n" + response3);
                    var    result3 = JObject.Parse(response3);
                    string type3   = result3["result"]["TypeName"].ToString();
                    string value3  = result3["result"]["Value"].ToString();

                    var data3 = new DataResult(item, type3, value3);
                    tss3.AddDataResult(data3);
                    tss3.AddTypeSummary(data3);
                }
                Assert.IsTrue(true);
            }
        }
        public void RpcConnectChain(CommandInfo ci)
        {
            var    req        = RpcRequestManager.CreateRequest(new JObject(), "connect_chain", 1);
            string returnCode = string.Empty;
            long   timeSpan   = 0;
            string resp       = _requestManager.PostRequest(req.ToString(), out returnCode, out timeSpan);

            ci.TimeSpan = timeSpan;
            if (!CheckResponse(ci, returnCode, resp))
            {
                return;
            }

            JObject jObj = JObject.Parse(resp);

            var j = jObj["result"];

            if (j["error"] != null)
            {
                ci.ErrorMsg.Add(j["error"].ToString());
                return;
            }

            if (j["result"]["BasicContractZero"] != null)
            {
                _genesisAddress = j["result"]["BasicContractZero"].ToString();
            }
            string message = JObject.FromObject(j["result"]).ToString();

            ci.InfoMsg.Add(message);
            ci.Result = true;
        }