Changeset View
Changeset View
Standalone View
Standalone View
test/functional/p2p_eviction.py
Show First 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
block.solve() | block.solve() | ||||
block_peer.send_blocks_and_test([block], node, success=True) | block_peer.send_blocks_and_test([block], node, success=True) | ||||
protected_peers.add(current_peer) | protected_peers.add(current_peer) | ||||
self.log.info( | self.log.info( | ||||
"Create 4 peers and protect them from eviction by sending us a proof") | "Create 4 peers and protect them from eviction by sending us a proof") | ||||
privkey = ECKey() | privkey = ECKey() | ||||
privkey.generate() | privkey.generate() | ||||
wif_privkey = bytes_to_wif(privkey.get_bytes()) | |||||
pubkey = privkey.get_pubkey() | pubkey = privkey.get_pubkey() | ||||
stakes = create_coinbase_stakes( | stakes = create_coinbase_stakes( | ||||
node, blocks, node.get_deterministic_priv_key().key) | node, blocks, node.get_deterministic_priv_key().key) | ||||
for i in range(4): | for i in range(4): | ||||
proof_peer = node.add_p2p_connection(SlowP2PDataStore()) | proof_peer = node.add_p2p_connection(SlowP2PDataStore()) | ||||
current_peer += 1 | current_peer += 1 | ||||
proof_peer.sync_with_ping() | proof_peer.sync_with_ping() | ||||
proof = node.buildavalancheproof( | proof = node.buildavalancheproof( | ||||
42, 2000000000, pubkey.get_bytes().hex(), [stakes[i]]) | 42, 2000000000, wif_privkey, [stakes[i]]) | ||||
avaproof_msg = msg_avaproof() | avaproof_msg = msg_avaproof() | ||||
avaproof_msg.proof = FromHex(AvalancheProof(), proof) | avaproof_msg.proof = FromHex(AvalancheProof(), proof) | ||||
proof_peer.send_message(avaproof_msg) | proof_peer.send_message(avaproof_msg) | ||||
protected_peers.add(current_peer) | protected_peers.add(current_peer) | ||||
self.log.info( | self.log.info( | ||||
"Create 5 slow-pinging peers, making them eviction candidates") | "Create 5 slow-pinging peers, making them eviction candidates") | ||||
Show All 33 Lines | def run_test(self): | ||||
fastpeer = node.add_p2p_connection(P2PInterface()) | fastpeer = node.add_p2p_connection(P2PInterface()) | ||||
current_peer += 1 | current_peer += 1 | ||||
wait_until(lambda: "ping" in fastpeer.last_message, timeout=10) | wait_until(lambda: "ping" in fastpeer.last_message, timeout=10) | ||||
self.log.info( | self.log.info( | ||||
"Create 128 peers and protect them from eviction by sending an avahello message") | "Create 128 peers and protect them from eviction by sending an avahello message") | ||||
proof = node.buildavalancheproof( | proof = node.buildavalancheproof( | ||||
42, 2000000000, pubkey.get_bytes().hex(), [stakes[0]]) | 42, 2000000000, wif_privkey, [stakes[0]]) | ||||
proof_obj = FromHex(AvalancheProof(), proof) | proof_obj = FromHex(AvalancheProof(), proof) | ||||
delegation = node.delegateavalancheproof( | delegation = node.delegateavalancheproof( | ||||
f"{proof_obj.limited_proofid:064x}", | f"{proof_obj.limited_proofid:064x}", | ||||
bytes_to_wif(privkey.get_bytes()), | bytes_to_wif(privkey.get_bytes()), | ||||
pubkey.get_bytes().hex(), | pubkey.get_bytes().hex(), | ||||
) | ) | ||||
for _ in range(128): | for _ in range(128): | ||||
▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines |