Changeset View
Changeset View
Standalone View
Standalone View
test/functional/abc_p2p_avalanche_peer_discovery.py
Show First 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | class AvalancheTest(BitcoinTestFramework): | ||||
def run_test(self): | def run_test(self): | ||||
node = self.nodes[0] | node = self.nodes[0] | ||||
# duplicate the deterministic sig test from src/test/key_tests.cpp | # duplicate the deterministic sig test from src/test/key_tests.cpp | ||||
privkey = ECKey() | privkey = ECKey() | ||||
privkey.set(bytes.fromhex( | privkey.set(bytes.fromhex( | ||||
"12b004fff7f4b69ef8650e767f18f11ede158148b425660723b9f9a66e61f747"), True) | "12b004fff7f4b69ef8650e767f18f11ede158148b425660723b9f9a66e61f747"), True) | ||||
pubkey = privkey.get_pubkey() | wif_privkey = bytes_to_wif(privkey.get_bytes()) | ||||
self.log.info( | self.log.info( | ||||
"Check the node is signalling the avalanche service bit only if there is a proof.") | "Check the node is signalling the avalanche service bit only if there is a proof.") | ||||
assert_equal( | assert_equal( | ||||
int(node.getnetworkinfo()['localservices'], 16) & NODE_AVALANCHE, | int(node.getnetworkinfo()['localservices'], 16) & NODE_AVALANCHE, | ||||
0) | 0) | ||||
# Create stakes by mining blocks | # Create stakes by mining blocks | ||||
addrkey0 = node.get_deterministic_priv_key() | addrkey0 = node.get_deterministic_priv_key() | ||||
blockhashes = node.generatetoaddress(2, addrkey0.address) | blockhashes = node.generatetoaddress(2, addrkey0.address) | ||||
stakes = create_coinbase_stakes(node, [blockhashes[0]], addrkey0.key) | stakes = create_coinbase_stakes(node, [blockhashes[0]], addrkey0.key) | ||||
proof_sequence = 11 | proof_sequence = 11 | ||||
proof_expiration = 12 | proof_expiration = 12 | ||||
proof = node.buildavalancheproof( | proof = node.buildavalancheproof( | ||||
proof_sequence, proof_expiration, pubkey.get_bytes().hex(), | proof_sequence, proof_expiration, wif_privkey, stakes) | ||||
stakes) | |||||
# Restart the node | # Restart the node | ||||
self.restart_node(0, self.extra_args[0] + [ | self.restart_node(0, self.extra_args[0] + [ | ||||
"-avaproof={}".format(proof), | "-avaproof={}".format(proof), | ||||
"-avamasterkey=cND2ZvtabDbJ1gucx9GWH6XT9kgTAqfb6cotPt5Q5CyxVDhid2EN", | "-avamasterkey=cND2ZvtabDbJ1gucx9GWH6XT9kgTAqfb6cotPt5Q5CyxVDhid2EN", | ||||
]) | ]) | ||||
assert_equal( | assert_equal( | ||||
Show All 33 Lines | def run_test(self): | ||||
check_avahello([ | check_avahello([ | ||||
"-avaproof={}".format(proof), | "-avaproof={}".format(proof), | ||||
"-avadelegation={}".format(delegation), | "-avadelegation={}".format(delegation), | ||||
"-avamasterkey={}".format(bytes_to_wif(master_key.get_bytes())), | "-avamasterkey={}".format(bytes_to_wif(master_key.get_bytes())), | ||||
]) | ]) | ||||
stakes = create_coinbase_stakes(node, [blockhashes[1]], addrkey0.key) | stakes = create_coinbase_stakes(node, [blockhashes[1]], addrkey0.key) | ||||
interface_proof_hex = node.buildavalancheproof( | interface_proof_hex = node.buildavalancheproof( | ||||
proof_sequence, proof_expiration, pubkey.get_bytes().hex(), | proof_sequence, proof_expiration, wif_privkey, stakes) | ||||
stakes) | |||||
limited_id = FromHex( | limited_id = FromHex( | ||||
AvalancheProof(), | AvalancheProof(), | ||||
interface_proof_hex).limited_proofid | interface_proof_hex).limited_proofid | ||||
# delegate | # delegate | ||||
delegated_key = ECKey() | delegated_key = ECKey() | ||||
delegated_key.generate() | delegated_key.generate() | ||||
interface_delegation_hex = node.delegateavalancheproof( | interface_delegation_hex = node.delegateavalancheproof( | ||||
▲ Show 20 Lines • Show All 133 Lines • Show Last 20 Lines |