internal Work(DifficultyTarget target, IReadOnlyList <byte> header, ShareSubmitInfo info, ulong nonceBase) { this.target = target; this.header = header; this.info = info; this.nonceBase = nonceBase; uniq = System.Threading.Interlocked.Increment(ref next); }
public void StartNewJob(NewJob job) { Console.WriteLine($"OK Job={job.jobid}, flushing={job.flush}"); lock (careful) { careful.headerGenerator.NewJob(job); careful.phase = ConnectionPhase.GotWork; var nonce2 = careful.headerGenerator.CopyNonce2(); var tracking = new ShareSubmitInfo(job.jobid, nonce2, job.ntime); var persist = careful.headerGenerator.Header.ToArray(); careful.workMaker.SetHeader(tracking, persist); } }
internal void SetHeader(ShareSubmitInfo tracking, IReadOnlyList <byte> hdr) { bool changed; if (null == both) { both = new Both(tracking, hdr); changed = true; } else { changed = hdr.SequenceEqual(both.header) == false; if (changed) { both.header = hdr; } both.info = tracking; } if (changed) { ConsumedNonces = 0; } }
/// <summary> /// Enqueues a nonce to be sent to server. /// </summary> internal void Submit(Stratum.ShareSubmitInfo source, uint nonce) => pending.Add(new CandidateNonce(source.JobId, source.Nonce2, source.NetworkTime, nonce));
internal Both(ShareSubmitInfo info, IReadOnlyList <byte> header) { this.info = info; this.header = header; }