def request_block_mine(): data = request.get_json() if data: miner = data.get("miner_transaction") user = data.get("user_transaction") miner_block = Block(block_type=miner.get('block_type'), account=miner.get('account'), representative=miner.get('representative'), previous=miner.get('previous'), link_as_account=miner_account, balance=miner.get('balance')) miner_block_hash = miner_block.work_block_hash if check_balance(miner.get('account'), miner.get('balance')): miner_block.solve_work() miner_block_json = json.loads(miner_block.json()) miner_block_new_json = { "account": miner_block_json.get("account"), "balance": miner_block_json.get("balance"), "link": miner_block_json.get("link"), "link_as_account": miner_block_json.get("link_as_account"), "previous": miner_block_json.get("previous"), "representative": miner_block_json.get("representative"), "type": miner_block_json.get("type"), "signature": miner.get("signature") } requests.post(url, json={ "action": "process", "block": miner_block_new_json }) user_transaction = mine_block(user.get('block_type'), user.get('account'), user.get('representative'), miner_block_hash, user.get('link_as_account'), user.get('balance')) user_transaction_json = json.loads(user_transaction.json()) user_transaction_new_json = { "account": user_transaction_json.get("account"), "balance": user_transaction_json.get("balance"), "link": user_transaction_json.get("link"), "link_as_account": user_transaction_json.get("link_as_account"), "previous": user_transaction_json.get("previous"), "representative": user_transaction_json.get("representative"), "type": user_transaction_json.get("type"), "signature": user.get("signature") } r = requests.post(url, json={ "action": "process", "block": user_transaction_new_json }) return jsonify(r.text) abort(401)
def mine_block(block_type, account, representative, previous, link_as_account, balance): block = Block( block_type=block_type, account=account, representative=representative, previous=previous, link_as_account=link_as_account, balance=balance ) block.solve_work() return block.json()
def create_block(prev_block, private_key, amount): account_id = get_account_id(private_key=private_key) link_block = legacy_pocketable_block_factory( account_id=account_id, amount=amount) raw_block = RawBlock( account=account_id, block_type="receive", previous=prev_block.block_hash, source=link_block.block_hash) raw_block.sign(private_key) raw_block.solve_work(difficulty=TEST_DIFFICULTY) block = Block( block_data=raw_block.to_dict(), link_block=link_block, ) return block
def create_link_block(account_id, amount): sending_private_key = generate_seed() sending_account_id = get_account_id(private_key=sending_private_key) block = RawBlock( block_type="send", account=sending_account_id, previous=generate_seed().upper(), destination=account_id, balance=amount + random.randint(-amount, 2**110) ) block.sign(sending_private_key) block.solve_work(difficulty=TEST_DIFFICULTY) link_block = LinkBlock( block_data=block.to_dict(), amount=amount, timestamp=Timestamp( date=time.time(), source=TimestampSource.WALLET ) ) return link_block