transaction_1 = pickle.load(read_file) print(transaction_1) my_blockchain = TransactionBlockChain("my_blockchain for testing how it works") my_blockchain.add_transaction(transaction_1) transaction_2 = Transaction("Another Transaction") transaction_2.add_input(public_key_2, 3) transaction_2.add_output(public_key_3, 3) transaction_2.sign(private_key_2) my_blockchain.add_transaction(transaction_2) transaction_3 = Transaction("Last transaction") transaction_3.add_input(public_key_3, 4) transaction_3.add_output(public_key_1, 3) transaction_3.add_required_signature(public_key_2) transaction_3.sign(private_key_3) transaction_3.sign(private_key_2) my_blockchain.add_transaction(transaction_3) transaction_4 = Transaction("truly second transaction") transaction_4.add_input(public_key_3, 5) transaction_4.add_output(public_key_1, 5) transaction_4.sign(private_key_3) my_blockchain.check() with open("bn.dat", "wb") as storage_file: pickle.dump(my_blockchain, storage_file) with open("bn.dat", "rb") as read_file: my_blockchain = pickle.load(read_file)
new_transaction.add_input(public_key_1, 1.2) new_transaction.add_output(public_key_2, 1.1) new_transaction.sign(private_key_1) transactions.append(new_transaction) new_transaction = Transaction( "incorrect_transaction_1_to_1_invalid_private_key") new_transaction.add_input(public_key_1, 1) new_transaction.add_output(public_key_2, 1) new_transaction.sign(private_key_2) transactions.append(new_transaction) new_transaction = Transaction("correct_transaction_escrow") new_transaction.add_input(public_key_1, 1) new_transaction.add_output(public_key_2, 1) new_transaction.add_required_signature(public_key_4) new_transaction.sign(private_key_1) new_transaction.sign(private_key_4) transactions.append(new_transaction) new_transaction = Transaction( "incorrect_transaction_escrow_no_signed_by_arbiter") new_transaction.add_input(public_key_1, 1) new_transaction.add_output(public_key_2, 1) new_transaction.add_required_signature(public_key_4) new_transaction.sign(private_key_1) transactions.append(new_transaction) new_transaction = Transaction( "incorrect_transaction_2_to_1_only_one_signature") new_transaction.add_input(public_key_1, 1)