Bitcoin Cash Mining: What is Cryptocurrency Mining

Bitcoin Cash mining is the method of creating fresh Bitcoin Cash by solving Calculation/puzzles. It consists of computing systems prepared with dedicated chips challenging to solve mathematical,Physics puzzles.

The 1st Cryptocurrency Bitcoin Cash miner, as these systems are called, to solve the Problem/puzzle is pleased (Reward) with Bitcoin Cash Cryptocurrency coinmarketcap.

How does Bitcoin Cash Cryptocurrency make money?

By Crypto Bitcoin Cash mining, you can make Bitcoin Cash without having to deposit down money for it. Bitcoin Cash miners collect Crypto Currency as a reward for finishing “blocks” of verified transactions, which are supplementary to the blockchain Process. Crypto Mining Using Python 

What Is Bitcoin Cash CryptoCurrency?

Bitcoin Cash CryptoCurrency is a decentralized digital currency that you can Online buy, sell Crypto and exchange directly In Local Currency, without an intermediary like a Exchange Office, bank, Airport Exchange

Is Bitcoin Cash crypto currency safe?
Yes, Bitcoin Cash cryptocurrency is Safe and authorized By Many Countries Govt. And legally Use In Many Countries Today Bitcoin Cash Price USD, Inr in India.

How Does Bitcoin Cash Mining Work?

Bitcoin Cash crypto currency mining is the method of adding Fresh/new Complete transactions to the Crypto Currency blockchain.

Read More:-

Best crypto to invest in 2021-22

1. Ethereum (ETH) Market cap: Over $479,165,217,340
2. Bitcoin (BTC) Market cap: Over $912,372,381,963
3. Tether (USDT) Market cap: Over $75,613,360,577
4. Binance Coin (BNB) Market cap: Over $92,967,793,140
5. Solana (SOL) Market cap: Over $55,714,439,025
6. Cardano (ADA) Market cap: Over $43,451,872,759

welcome Visitor in this blog post  Build a Mine CryptoCurrency Using Python 3 Script on Command Line with hashlib Library Complete Source Code crypto mining Calculater.

Read  – Monero Crypto Price Today

create and follow this code. 

import hashlib
from time import sleep

def hash_256(string):
    return hashlib.sha256(string.encode('utf-8')).hexdigest()

class TransactionGenerator:
    def __init__(self):
        self.random_seed = 0

    def generate_transaction(self):
        transaction_payload = 'This is a transaction between A and B. ' \
                              'We add a random seed here {} to make its hash unique'.format(self.random_seed)
        transaction_hash = hash_256(transaction_payload)
        self.random_seed += 1
        return transaction_hash

# a block is a set of transactions and contains information of the previous blocks.
class Block:
    def __init__(self, hash_prev_block, target):
        self.transactions = []
        self.hash_prev_block = hash_prev_block  # hash of the all previous blocks. used to maintain integrity.
        self.hash_merkle_block = None = target
        self.nounce = 0

    def add_transaction(self, new_transac):
        if not self.is_block_full():
            self.hash_merkle_block = hash_256(str('-'.join(self.transactions)))

    def is_block_full(self):
        # blocks cannot go above 1Mb. Here let's say we cannot go above 1000 transactions.
        return len(self.transactions) >= 1000

    def is_block_ready_to_mine(self):
        return self.is_block_full()

    def __str__(self):
        return '-'.join([self.hash_merkle_block, str(self.nounce)])

    def apply_mining_step(self):
        current_block_hash = hash_256(self.__str__())
        print('CURRENT_BLOCK_HASH = {}, TARGET = {}'.format(current_block_hash,
        if int(current_block_hash, 16) < int(, 16):
            print('Block was successfully mined! You will get a reward of x BTC!')
            print('It took {} steps to mine it.'.format(self.nounce))
            return True
            # Incrementing the nounce to change current_block_hash to hope to be below the target.
            self.nounce += 1
        return False

class BlockChain:
    def __init__(self):
        self.block_chain = []

    def push(self, block):

    def notify_everybody(self):
        print('-' * 80)
        print('[block #{}] : {}'.format(len(self.block_chain), self.get_last_block()))
        print('-' * 80)

    def get_last_block(self):
        return self.block_chain[-1]

def my_first_miner():
    last_block_header = '0e0fb2e3ae9bd2a0fa8b6999bfe6ab7df197a494d4a02885783a697ac74940d9'
    last_block_target = '000ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'

    # init the block chains
    block_chain = BlockChain()

    transaction_generator = TransactionGenerator()

    # fills a block with transactions. We have 1500 pending transactions.
    # Sorry 500 transactions will have to wait for the next block!
    block = Block(last_block_header, last_block_target)
    for i in range(1500):

    assert block.is_block_full()
    assert block.is_block_ready_to_mine()

    # now that our block is full, we can start to mine it.
    while not block.apply_mining_step():


    # Difficulty is updated every 2016 blocks.
    # Objective is one block generated every 10 minutes.
    # If during the last two weeks, blocks are generated every 5 minutes, then difficulty is multiplied by 2.
    last_block_header = hash_256(str(block_chain.get_last_block()))

    block_2 = Block(last_block_header, last_block_target)

    for i in range(1232):

    assert block_2.is_block_full()
    assert block_2.is_block_ready_to_mine()

    # now that our block is full, we can start to mine it.
    while not block_2.apply_mining_step():


    # now let's increase the difficulty.
    # we have now 4 zeros at the beginning instead of 3.
    last_block_target = '0000dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'

    last_block_header = hash_256(str(block_chain.get_last_block()))

    block_3 = Block(last_block_header, last_block_target)

    for i in range(1876):

    assert block_3.is_block_full()
    assert block_3.is_block_ready_to_mine()

    # now that our block is full, we can start to mine it.
    while not block_3.apply_mining_step():


    for i, block_added in enumerate(block_chain.block_chain):
        print('Block #{} was added. It took {} steps to find it.'.format(i, block_added.nounce))
    print('Difficulty was increased for the last block!')

if __name__ == '__main__':

Leave a Comment

Your email address will not be published. Required fields are marked *