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; }
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; }
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; }