void BeginBlock() { mEventLog.RecordEvent(EventLog.EventType.Upstream, string.Format("Getting {0} block", mMiningTarget.mName)); WorkBlock work = mUpstream.GetWorkBlock(); if (work != null) { mEventLog.RecordEvent(EventLog.EventType.Upstream, string.Format("Got {0} block: {1}", mMiningTarget.mName, work.ToString())); // Put the current block in the previous list if (mBlock != null) { mPrevBlocks[mPrevBlockIndex++] = mBlock; if (mPrevBlockIndex >= mPrevBlocks.Length) { mPrevBlockIndex = 0; } } mBlock = work; mBlock.mAlgorithm = mMiningTarget.mPOWAlgorithm; } else { mEventLog.RecordEvent(EventLog.EventType.Upstream, string.Format("GetWork failed")); } }