def main(): network = Network.get_instance() nodes = ["Alice", "Bob", "Eve"] network.start(nodes) network.delay = 0.1 host_alice = Host('Alice') host_alice.add_connection('Bob') host_alice.start() host_bob = Host('Bob') host_bob.add_connections(['Alice', 'Eve']) host_bob.start() host_eve = Host('Eve') host_eve.add_connection('Bob') host_eve.start() network.add_hosts([host_alice, host_bob, host_eve]) host_bob.q_relay_sniffing = True host_bob.q_relay_sniffing_fn = bob_sniffing_quantum host_bob.c_relay_sniffing = True host_bob.c_relay_sniffing_fn = bob_sniffing_classical t1 = host_alice.run_protocol(alice) t2 = host_eve.run_protocol(eve) t1.join() t2.join() network.stop(True) exit()
def main(): network = Network.get_instance() # backend = ProjectQBackend() backend = CQCBackend() nodes = ['A', 'B', 'C'] network.start(nodes, backend) network.delay = 0.1 host_A = Host('A', backend) host_A.add_connection('B') host_A.delay = 0 host_A.start() host_B = Host('B', backend) host_B.add_connections(['A', 'C']) host_B.delay = 0 host_B.start() host_C = Host('C', backend) host_C.add_connection('B') host_C.delay = 0 host_C.start() network.add_host(host_A) network.add_host(host_B) network.add_host(host_C) t1 = host_A.run_protocol(protocol_1, (host_C.host_id, )) t2 = host_C.run_protocol(protocol_2, (host_A.host_id, )) t1.join() t2.join() network.stop(True)
def main(): network = Network.get_instance() network.start() network.delay = 0.2 host_alice = Host('Alice', backend) host_alice.add_connection('Bob') host_alice.start() host_bob = Host('Bob', backend) host_bob.add_connections(['Alice', 'Eve']) host_bob.start() host_eve = Host('Eve', backend) host_eve.add_connections(['Bob', 'Dean']) host_eve.start() host_dean = Host('Dean', backend) host_dean.add_connection('Eve') host_dean.start() network.add_hosts([host_alice, host_bob, host_eve, host_dean]) print('alice sends message') host_alice.send_classical('Bob', 'hello1') host_alice.send_classical('Bob', 'hello2') host_alice.send_classical('Bob', 'hello3') host_alice.send_classical('Bob', 'hello4') host_alice.send_classical('Bob', 'hello5') host_alice.send_classical('Bob', 'hello6') host_alice.send_classical('Bob', 'hello7') host_alice.send_classical('Bob', 'hello8') host_alice.send_classical('Bob', 'hello9') host_alice.send_classical('Bob', 'hello10') start_time = time.time() while time.time() - start_time < 10: pass network.stop(True) exit()
def main(): network = Network.get_instance() nodes = ['A', 'B', 'C', 'D', 'E'] network.start(nodes) host_A = Host('A') host_A.add_connections(['B', 'C', 'D', 'E']) host_A.start() host_B = Host('B') host_B.add_c_connections(['C', 'D', 'E']) host_B.start() host_C = Host('C') host_C.add_c_connections(['B', 'D', 'E']) host_C.start() host_D = Host('D') host_D.add_c_connections(['B', 'C', 'E']) host_D.start() host_E = Host('E') host_E.add_c_connections(['B', 'C', 'D']) host_E.start() network.add_hosts([host_A, host_B, host_C, host_D, host_E]) for i in range(10): # The ID of the generated secret EPR pair has to be agreed upon in advance epr_id = '123' host_A.run_protocol( distribute, ([host_B.host_id, host_C.host_id, host_D.host_id, host_E.host_id ], )) host_B.run_protocol(node, (host_A.host_id, )) host_C.run_protocol(node, (host_A.host_id, )) host_D.run_protocol(sender, (host_A.host_id, host_E.host_id, epr_id)) host_E.run_protocol(receiver, (host_A.host_id, host_D.host_id, epr_id), blocking=True) time.sleep(0.5) network.stop(True)