public override WorkBlock GetWorkBlock()
        {
            WorkBlock work = null;

            JObject obj = null;

            try
            {
                // Get block from bitcoin
                BitnetClient bc = new BitnetClient("http://" + mURL + ":" + mPort);
                bc.Credentials = new NetworkCredential(mUser, mPass);
                mBlockCount    = bc.GetBlockCount();
                obj            = bc.GetWork();
                mNewBlockReady = false;
            }
            catch (Exception e)
            {
                Console.WriteLine("Failed to get work!");
                Console.WriteLine(e.Message);
            }

            if (obj != null)
            {
                work = new WorkBlock(obj);
            }
            return(work);
        }
示例#2
0
        WorkBlock GetWork()
        {
            /*
             * HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://127.0.0.1:8332/");
             * req.TransferEncoding = "";
             * req.ServicePoint.UseNagleAlgorithm = false;
             * req.Method = "POST";
             * req.ContentType = "application/json";
             * req.Expect = "";
             * req.Credentials = new NetworkCredential("rpcuser", "rpcpass");
             *
             * StreamWriter sw = new StreamWriter(req.GetRequestStream());
             * sw.Write("{\"method\": \"getwork\", \"params\": [], \"id\":0}\r\n");
             * sw.Close();
             *
             * HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
             * StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.Default);
             *
             * string str = sr.ReadToEnd();
             * Console.WriteLine(str);
             * WorkBlock work = new WorkBlock(str);
             *
             * sr.Close();
             */

            BitnetClient bc = new BitnetClient("http://127.0.0.1:8332");

            bc.Credentials = new NetworkCredential("rpcuser", "rpcpass");
            JObject obj = bc.GetWork();

            WorkBlock work = new WorkBlock(obj);

            return(work);
        }
        public override bool SubmitWork(WorkBlock work, uint solution)
        {
            // Submit this solution to bitcoin
            string data = work.GetSolutionString(solution);

            Console.WriteLine("Trying solution: " + data);
            BitnetClient bc = new BitnetClient("http://" + mURL + ":" + mPort);

            bc.Credentials = new NetworkCredential(mUser, mPass);
            bool success = bc.GetWork(data);

            if (!success)
            {
                data    = work.GetSolutionString((uint)IPAddress.HostToNetworkOrder((int)solution));
                success = bc.GetWork(data);
            }

            return(success);
        }