コード例 #1
0
ファイル: MainForm.cs プロジェクト: vicyui/ehd-miner
        private void updateMinerInfo()
        {
            Dictionary <string, object> param = new Dictionary <string, object>();

            param.Add("token", token);

            param.Add("method", "miner.register");

            //string ip = RunProcess("cmd.exe", "curl ipinfo.io");
            //param.Add("ip", JsonConvert.DeserializeObject<JObject>(ip)["ip"]);
            param.Add("mac", AddressHelper.GetLocalMac());

            param.Add("coinbase", "0x" + address);

            long[] size = FileUtil.GetHardDiskSpace();
            param.Add("total_disk_size", size[0]);
            param.Add("total_plotted_disk_size", size[1] + FileUtil.PlotdataDictoryLength(plotdataDir));// 每个盘符的plotdata目录大小+程序本身批盘目录大小

            string nodekey;

            do
            {
                nodekey = RunProcess("cmd.exe", "curl  -H \"Content-Type: application/json\" --data \"{\\\"jsonrpc\\\":\\\"2.0\\\",\\\"method\\\":\\\"admin_nodeInfo\\\",\\\"params\\\":[],\\\"id\\\":1}\" http://127.0.0.1:8545");
                Thread.Sleep(1000);
            } while (nodekey.Length == 0);
            param.Add("nodekey", JsonConvert.DeserializeObject <JObject>(nodekey)["result"]["id"]);

            string         result      = RunProcess("cmd.exe", "curl  -H \"Content-Type: application/json\" --data \"{\\\"jsonrpc\\\":\\\"2.0\\\",\\\"method\\\":\\\"admin_peers\\\",\\\"params\\\":[],\\\"id\\\":1}\" http://127.0.0.1:8545");
            JObject        resultJson  = JsonConvert.DeserializeObject <JObject>(result);
            var            resultArray = JArray.Parse(resultJson["result"].ToString());
            IList <JValue> peers       = new List <JValue>();

            foreach (var item in resultArray)
            {
                peers.Add((JValue)item["id"]);
            }
            param.Add("peers", peers);

            string is_mining = RunProcess("cmd.exe", "curl  -H \"Content-Type: application/json\" --data \"{\\\"jsonrpc\\\":\\\"2.0\\\",\\\"method\\\":\\\"eth_mining\\\",\\\"params\\\":[],\\\"id\\\":1}\" http://127.0.0.1:8545");

            if (JsonConvert.DeserializeObject <JObject>(is_mining)["result"].ToString() == "True")
            {
                is_mining = "Y";
            }
            else
            {
                is_mining = "N";
            }
            param.Add("is_mining", is_mining);

            string is_syncing = RunProcess("cmd.exe", "curl  -H \"Content-Type: application/json\" --data \"{\\\"jsonrpc\\\":\\\"2.0\\\",\\\"method\\\":\\\"eth_syncing\\\",\\\"params\\\":[],\\\"id\\\":1}\" http://127.0.0.1:8545");

            if (JsonConvert.DeserializeObject <JObject>(is_syncing)["result"].ToString() == "True")
            {
                is_syncing = "Y";
            }
            else
            {
                is_syncing = "N";
            }
            param.Add("is_syncing", is_syncing);

            string block_number = RunProcess("cmd.exe", "curl  -H \"Content-Type: application/json\" --data \"{\\\"jsonrpc\\\":\\\"2.0\\\",\\\"method\\\":\\\"eth_blockNumber\\\",\\\"params\\\":[],\\\"id\\\":1}\" http://127.0.0.1:8545");

            param.Add("block_number", Convert.ToInt32(JsonConvert.DeserializeObject <JObject>(block_number)["result"].ToString(), 16));

            string       sql   = "select * from t_node where on_used = 1;";
            DataTable    table = DBHelper.ExecuteQuery(sql, new Dictionary <string, object>());
            IList <Node> nodes = DataTableConverterHelper <Node> .ConvertToModelList(table);

            string paid_node = nodes[0].Name_en;

            param.Add("paid_node", paid_node);
            //Console.WriteLine(JsonConvert.SerializeObject(param));
            try
            {
                client.Post(JsonConvert.SerializeObject(param), "");
            }
            catch (Exception)
            {
                return;
            }
        }