#--------------------------------- Analysis ---------------------------------# p("input loaded") graph_gen = GraphGen(nodes_all, val_time_1, val_pos_1, val_rad) p("graph made") nodes_val = graph_gen.nodes_val comm_plan_original, key2idx, potential_conns = graph_gen.genCommPlan() p("comm plan made") comm_plan_modified = Adversary.impersonation(nodes_val, comm_plan_original) p("impersonation done") sim_conns_original = graph_gen.genSimuConns(comm_plan_modified) p("connections simulated") sim_conns_modified = Adversary.dissemination(nodes_val, comm_plan_original, sim_conns_original) p("dissemination done") id2edges = graph_gen.formEdges(sim_conns_modified, potential_conns, key2idx) p("edges formed") results = SybilDetection.runDetectionAlgorithms(nodes_val, id2edges) p("detection run") # Utils.printEdges("edges.csv", id2edges) g1 = graph_gen i2e1 = id2edges r1 = results # graph_gen = GraphGen(nodes_all, val_time_2, val_pos_2, val_rad) # p("graph made") # nodes_val = graph_gen.nodes_val # comm_plan_original, key2idx, potential_conns = graph_gen.genCommPlan() # p("comm plan made")
# results = SybilDetection.createDummyResults(nodes_all) # gui.addLocVal("val1", graph_gen, COMBINED_EDGES, results) # syb_x, syb_y = GraphAnalysis.calcNodeLHCurve(COMBINED_EDGES["syb"]) # mal_x, mal_y = GraphAnalysis.calcNodeLHCurve(COMBINED_EDGES["mal"]) # gui.plotLHCurves(syb_x, {"syb":syb_y}, fig_idx=FIG_IDX, n_type="syb") # gui.plotLHCurves(mal_x, {"mal":mal_y}, fig_idx=FIG_IDX, n_type="mal") # gui.drawSim() #-------------------------------------------------------------------# #----------- TEST 4: FLIPPING COINS COMBINED W MOVEMEMNT -----------# adv_keys = {(i + 1): ("mal" + str(i)) for i in range(NUM_MAL)} adv_keys.update({0: "syb"}) comm_plan, key2idx, potential_conns = graph_gen.genCommPlan_customBroadcasters( adv_keys) sim_conns = graph_gen.genSimuConns(comm_plan) id_to_edges = graph_gen.formEdges(sim_conns, potential_conns, key2idx) i = -1 j = -1 for syb_edge in id_to_edges[syb_node.id]: i += 1 mal_node = nodes_mal[i % NUM_MAL] for mal_edge in id_to_edges[mal_node.id]: if mal_edge.node_src == syb_edge.node_src and mal_edge.time == syb_edge.time: syb_edge.successful = mal_edge.successful (xH, yH) = syb_edge.node_src.getPos(syb_edge.time) (xS, yS) = syb_edge.node_dst.getPos(syb_edge.time) (xM, yM) = mal_edge.node_dst.getPos(mal_edge.time) syb_dir = max([(yS - yH, "up"), (yH - yS, "down"), (xH - xS, "left"), (xS - xH, "right")])[1]