Bitcoin Forum
October 22, 2019, 05:33:22 PM *
News: Latest Bitcoin Core release: 0.18.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Forum issue - Posting in code tags  (Read 148 times)
MagicByt3
Full Member
***
Offline Offline

Activity: 350
Merit: 181


View Profile
December 05, 2018, 12:03:46 AM
 #1

I am having some trouble posting in my Satoshi codebase post.

https://bitcointalk.org/index.php?topic=5077159.0

I managed to create the first 2 post's fine but I am having trouble posting part of the codebase into code tags.
I am posting code from Version 0.1.5 (link below)

https://github.com/bitcoin/bitcoin/releases/tag/v0.1.5

I copy lines from the file

File - main.cpp
lines 2213 - 2390

This is the Bitcoinminer section of the codebase.

I have split up the code like the posts above in link but the forum the shows me a Blocked screen.
It then says banned seems to be CF blocking the post?

Is there any reason that the site would not allow posting of this part of the code in tags?
At first I thought it may have been some kind or error or blocking as it was part of the miner in the codebase but even with the sections broken down it still blocks posting.

Thanks.

<3 Bitcoin
1571765602
Hero Member
*
Offline Offline

Posts: 1571765602

View Profile Personal Message (Offline)

Ignore
1571765602
Reply with quote  #2

1571765602
Report to moderator
1571765602
Hero Member
*
Offline Offline

Posts: 1571765602

View Profile Personal Message (Offline)

Ignore
1571765602
Reply with quote  #2

1571765602
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1571765602
Hero Member
*
Offline Offline

Posts: 1571765602

View Profile Personal Message (Offline)

Ignore
1571765602
Reply with quote  #2

1571765602
Report to moderator
1571765602
Hero Member
*
Offline Offline

Posts: 1571765602

View Profile Personal Message (Offline)

Ignore
1571765602
Reply with quote  #2

1571765602
Report to moderator
1571765602
Hero Member
*
Offline Offline

Posts: 1571765602

View Profile Personal Message (Offline)

Ignore
1571765602
Reply with quote  #2

1571765602
Report to moderator
suchmoon
Legendary
*
Offline Offline

Activity: 2100
Merit: 4149


Pedal-powered plaguebot


View Profile
December 05, 2018, 04:26:57 AM
Last edit: December 05, 2018, 04:55:19 AM by suchmoon
Merited by DdmrDdmr (1)
 #2

CF doesn't know it's a code tag so it probably thinks you're doing some sort of buffer overflow attack LOL.

I've had similar problems trying to send stuff via PM.

Edit: after some experimenting it looks like it doesn't like the word "Sleep". I removed three occurrences of "Sleep" from that function and it went through.

Edit 2: Actually just the first one is a problem - the "Sleep" and "(50);" (I can't even quote this line here - CF blocks it) ~10 lines from the top. Removing one letter allowed it to be posted.

Some experiments outside code tags:

Sleep(50); // this goes through
"Sleep();" // this goes through
"Slee(50);" // blows up if I add the "p"
"Slee(5);" // blows up if I add the "p"
"Slee(4);" // blows up if I add the "p"
'Slee     (12345);' // blows up if I add the "p"

So quotes + an argument to the Sleep function blows it up. Perhaps any character preceding Sleep is a problem. So I just removed all leading spaces on that line and it went through:

Code:
bool BitcoinMiner()
{
    printf("BitcoinMiner started\n");
    SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_LOWEST);

    CKey key;
    key.MakeNewKey();
    CBigNum bnExtraNonce = 0;
    while (fGenerateBitcoins)
    {
Sleep(50); // <--- suchmoon fixed satoshi's code LOL
        CheckForShutdown(3);
        while (vNodes.empty())
        {
            Sleep(1000);
            CheckForShutdown(3);
        }

        unsigned int nTransactionsUpdatedLast = nTransactionsUpdated;
        CBlockIndex* pindexPrev = pindexBest;
        unsigned int nBits = GetNextWorkRequired(pindexPrev);


        //
        // Create coinbase tx
        //
        CTransaction txNew;
        txNew.vin.resize(1);
        txNew.vin[0].prevout.SetNull();
        txNew.vin[0].scriptSig << nBits << ++bnExtraNonce;
        txNew.vout.resize(1);
        txNew.vout[0].scriptPubKey << key.GetPubKey() << OP_CHECKSIG;


        //
        // Create new block
        //
        auto_ptr<CBlock> pblock(new CBlock());
        if (!pblock.get())
            return false;

        // Add our coinbase tx as first transaction
        pblock->vtx.push_back(txNew);

        // Collect the latest transactions into the block
        int64 nFees = 0;
        CRITICAL_BLOCK(cs_main)
        CRITICAL_BLOCK(cs_mapTransactions)
        {
            CTxDB txdb("r");
            map<uint256, CTxIndex> mapTestPool;
            vector<char> vfAlreadyAdded(mapTransactions.size());
            bool fFoundSomething = true;
            unsigned int nBlockSize = 0;
            while (fFoundSomething && nBlockSize < MAX_SIZE/2)
            {
                fFoundSomething = false;
                unsigned int n = 0;
                for (map<uint256, CTransaction>::iterator mi = mapTransactions.begin(); mi != mapTransactions.end(); ++mi, ++n)
                {
                    if (vfAlreadyAdded[n])
                        continue;
                    CTransaction& tx = (*mi).second;
                    if (tx.IsCoinBase() || !tx.IsFinal())
                        continue;

                    // Transaction fee requirements, mainly only needed for flood control
                    // Under 10K (about 80 inputs) is free for first 100 transactions
                    // Base rate is 0.01 per KB
                    int64 nMinFee = tx.GetMinFee(pblock->vtx.size() < 100);

                    map<uint256, CTxIndex> mapTestPoolTmp(mapTestPool);
                    if (!tx.ConnectInputs(txdb, mapTestPoolTmp, CDiskTxPos(1,1,1), 0, nFees, false, true, nMinFee))
                        continue;
                    swap(mapTestPool, mapTestPoolTmp);

                    pblock->vtx.push_back(tx);
                    nBlockSize += ::GetSerializeSize(tx, SER_NETWORK);
                    vfAlreadyAdded[n] = true;
                    fFoundSomething = true;
                }
            }
        }
        pblock->nBits = nBits;
        pblock->vtx[0].vout[0].nValue = pblock->GetBlockValue(nFees);
        printf("\n\nRunning BitcoinMiner with %d transactions in block\n", pblock->vtx.size());


        //
        // Prebuild hash buffer
        //
        struct unnamed1
        {
            struct unnamed2
            {
                int nVersion;
                uint256 hashPrevBlock;
                uint256 hashMerkleRoot;
                unsigned int nTime;
                unsigned int nBits;
                unsigned int nNonce;
            }
            block;
            unsigned char pchPadding0[64];
            uint256 hash1;
            unsigned char pchPadding1[64];
        }
        tmp;

        tmp.block.nVersion       = pblock->nVersion;
        tmp.block.hashPrevBlock  = pblock->hashPrevBlock  = (pindexPrev ? pindexPrev->GetBlockHash() : 0);
        tmp.block.hashMerkleRoot = pblock->hashMerkleRoot = pblock->BuildMerkleTree();
        tmp.block.nTime          = pblock->nTime          = max((pindexPrev ? pindexPrev->GetMedianTimePast()+1 : 0), GetAdjustedTime());
        tmp.block.nBits          = pblock->nBits          = nBits;
        tmp.block.nNonce         = pblock->nNonce         = 1;

        unsigned int nBlocks0 = FormatHashBlocks(&tmp.block, sizeof(tmp.block));
        unsigned int nBlocks1 = FormatHashBlocks(&tmp.hash1, sizeof(tmp.hash1));


        //
        // Search
        //
        unsigned int nStart = GetTime();
        uint256 hashTarget = CBigNum().SetCompact(pblock->nBits).getuint256();
        uint256 hash;
        loop
        {
            BlockSHA256(&tmp.block, nBlocks0, &tmp.hash1);
            BlockSHA256(&tmp.hash1, nBlocks1, &hash);


            if (hash <= hashTarget)
            {
                pblock->nNonce = tmp.block.nNonce;
                assert(hash == pblock->GetHash());

                    //// debug print
                    printf("BitcoinMiner:\n");
                    printf("proof-of-work found  \n  hash: %s  \ntarget: %s\n", hash.GetHex().c_str(), hashTarget.GetHex().c_str());
                    pblock->print();

                SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_NORMAL);
                CRITICAL_BLOCK(cs_main)
                {
                    // Save key
                    if (!AddKey(key))
                        return false;
                    key.MakeNewKey();

                    // Process this block the same as if we had received it from another node
                    if (!ProcessBlock(NULL, pblock.release()))
                        printf("ERROR in BitcoinMiner, ProcessBlock, block not accepted\n");
                }
                SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_LOWEST);

                Sleep(500);
                break;
            }

            // Update nTime every few seconds
            if ((++tmp.block.nNonce & 0x3ffff) == 0)
            {
                CheckForShutdown(3);
                if (tmp.block.nNonce == 0)
                    break;
                if (pindexPrev != pindexBest)
                    break;
                if (nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 60)
                    break;
                if (!fGenerateBitcoins)
                    break;
                tmp.block.nTime = pblock->nTime = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
            }
        }
    }

    return true;
}

MagicByt3
Full Member
***
Offline Offline

Activity: 350
Merit: 181


View Profile
December 05, 2018, 06:37:28 AM
 #3

Thank you for that!

I spent a good bit of time splitting it down into separate code sections only to be faced with the big red no no sign, got very frustrating..

edit : Just noticed your "commit" Smiley  love it..  Cheesy



<3 Bitcoin
LoyceV
Legendary
*
Online Online

Activity: 1638
Merit: 4912


Largest Merit Circle on BPIP!


View Profile WWW
December 05, 2018, 07:13:26 AM
 #4

Whenever this happens, please email or obfuscate-then-PM me what you posted. Cloudflare has a ton of rules, some of which seem useful (like detecting fake robots), but others do stupid stuff like that.

Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!