2

If a share does not lead to a valid block they would not require to be sent to the server? Or is the only purpose of the share sent to the server to show that the client did some work?

1

No person decides. This block of C++ code decides:

bool CheckProofOfWork(uint256 hash, unsigned int nBits)
{
    CBigNum bnTarget;
    bnTarget.SetCompact(nBits);

    // Check range
    if (bnTarget <= 0 || bnTarget > bnProofOfWorkLimit)
        return error("CheckProofOfWork() : nBits below minimum work");

    // Check proof of work matches claimed amount
    if (hash > bnTarget.getuint256())
        return error("CheckProofOfWork() : hash doesn't match nBits");

    return true;
}

For people who can't read C++: It looks at the target hash field, then unpacks it, and compares it to the actual hash.

2
1

Yes, shares are there to provide to the pool operator that you are working with the pool. Because you are actually hashing data and providing valid hashes of the data the pool sent, it proves you are working with them, meaning you deserve some of the sweet BTC reward when someone finds the actual answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.