Exemple #1
0
    def prepare_mine_swblock(self):
        block_txs = []
        pool_txs = Blockchain.get_transactions_to_block()
        if pool_txs != ['']:
            block_txs.append(pool_txs)

        f = open(MINER_PRIVKEY_FILE, 'r')
        miner_privkey = f.read()
        f.close()

        miner_privkey = miner_privkey.replace('\n', '')

        miner_hashed_pbk = Wallet.get_hashed_pbk_from_addr(
            Wallet.bech32_addr_from_privkey(miner_privkey, NETWORKS.BITCOIN))
        coinbase = SwCoinbaseTransaction(1,
                                         miner_hashed_pbk,
                                         0,
                                         out_value=self.blockchain.coinbase)

        raw_coinbase_tx = coinbase.get_raw_transaction(hex=True)
        block_txs.append(raw_coinbase_tx)

        last_block = Blockchain.get_n_block(last=True)
        last_block_h = last_block.hash_block()

        timestamp = int(time.time())

        new_block = Block(version=1,
                          bits=2,
                          previous_hash=last_block_h,
                          transactions=block_txs,
                          timestamp=timestamp)

        return new_block
Exemple #2
0
 def do_show_miner_data(self, args):
     try:
         f = open(MINER_PRIVKEY_FILE, 'r')
         privkey = f.read().replace('\n', '')
         f.close()
         miner_bech_addr = Wallet.bech32_addr_from_privkey(
             privkey, NETWORKS.BITCOIN)
         prLightPurple("Miner bech32 addr : [" + miner_bech_addr + "]")
         miner_addr = Wallet.private_key_to_addr(privkey)
         prLightPurple("Miner raw addr: [" + miner_addr + "]")
     except Exception as e:
         prRed(e)
Exemple #3
0
    def genesis_block(self):
        prev_hash = '0000000000000000000000000000000000000000000000000000000000000000'

        f = open(MINER_PRIVKEY_FILE, 'r')
        miner_prkey = f.read().replace('\n', '')
        f.close()

        hashed_pbk = Wallet.get_hashed_pbk_from_addr(
            Wallet.bech32_addr_from_privkey(miner_prkey, NETWORKS.BITCOIN))
        coin_tsx = SwCoinbaseTransaction(1,
                                         hashed_pbk,
                                         0,
                                         out_value=self.coinbase)

        serialized_tx = coin_tsx.get_raw_transaction(hex=True)
        genesis = Block(bits=self.complexity,
                        timestamp=0,
                        previous_hash=prev_hash,
                        transactions=[serialized_tx])

        self.mine(genesis)
        return genesis