UIntToHexString() public static method

public static UIntToHexString ( uint val ) : string
val uint
return string
示例#1
0
        public override bool SubmitWork(WorkBlock work, uint solution)
        {
            JobInfo ji = (JobInfo)work;

            // {"params": ["slush.miner1", "bf", "00000001", "504e86ed", "b2957c02"], "id": 4, "method": "mining.submit"}
            // Values in particular order: worker_name (previously authorized!), job_id, extranonce2, ntime, nonce.
            string[] parms = new string[5];
            parms[0] = mUser;
            parms[1] = ji.mJobID;
            parms[2] = ji.mExtraNonce2;
            parms[3] = ji.mTimeStr;
            parms[4] = Utils.UIntToHexString(solution);

            mSubmitString = String.Format("Submit Job({0}), Time({1}), Solution({2})", parms[1], parms[3], parms[4]) + "\n" + ji.strData + "\n" + ji.strTarget;
            Console.WriteLine(mSubmitString);
            mLog.WriteLine(mSubmitString);


            mAwaitingSubmitResult = true;
            SendRPC("mining.submit", parms);
            while (mAwaitingSubmitResult)
            {
                Thread.Sleep(50);
            }
            return(mSubmitResult);
        }
示例#2
0
        public void GenerateWork()
        {
            byte[] en2b = new byte[mExtraNonceSize];
            for (int i = 0; i < mExtraNonceSize; i++)
            {
                ulong mask   = (ulong)0xFF << (i * 8);
                ulong masked = (mExtraNonceB & mask) >> (i * 8);
                en2b[mExtraNonceSize - (1 + i)] = (byte)masked;
            }
            mExtraNonceB++;

            mExtraNonce2 = Utils.ByteArrayToHexString(en2b);
            string coinbase = mCoinBaseA + mExtraNonce + mExtraNonce2 + mCoinBaseB;

            byte[] cb         = Utils.HexStringToByteArray(coinbase);
            byte[] cbHash     = MinerLib_cs.Scrypt.SHA2562(cb);
            string merkleRoot = Utils.ByteArrayToHexString(cbHash);

            foreach (string merkle in mMerkleBranch)
            {
                byte[] hashData   = Utils.HexStringToByteArray(merkleRoot + merkle);
                byte[] merkleHash = MinerLib_cs.Scrypt.SHA2562(hashData);
                merkleRoot = Utils.ByteArrayToHexString(merkleHash);
            }

            // byteswap the merkle root section
            byte[] merkleData = Utils.HexStringToByteArray(merkleRoot);
            Utils.ByteSwapIntegers(merkleData);
            merkleRoot = Utils.ByteArrayToHexString(merkleData);


            uint time = (uint)Utils.UnixTime() + 120;

            mTimeStr = Utils.UIntToHexString(time);

            strData = mVersion + mPrevHash + merkleRoot + mTimeStr + mDifficulty + "00000000" + "000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000";
            data    = Utils.HexStringToByteArray(strData);
        }