def send_to_all_node(message, except_my_node=False): # node 목록에서 ip 만 리스트로 추출 address_list = list(map(lambda x: x.ip_address, node.get_all())) # True 일 경우 내 node를 제외한 node에게 전송 if except_my_node: address_list = list( filter(lambda x: x != my_ip_address.get_ip_address('en0'), address_list)) send_threads = [] for addr in address_list: try: # 메세지를 전송하는 스레드 생성 및 실행 t = threading.Thread(target=send, kwargs={ 'ip_address': addr, 'message': message, 'port': 3000 }) t.start() send_threads.append(t) except Exception as e: print("SENDTOALL EXCEPT", e) # 스레드 객체를 배열로 저장해둔 후 동기화 for thread in send_threads: thread.join()
def send_to_all_node(message, except_my_node=False): # node 목록에서 ip만 리스트로 추출 nodelist = node.get_all() address_list = [] for nd in nodelist: address_list.append(nd.ip_address) print(address_list) # except_my_node=True 일 경우 내 node를 제외한 node에게 전송 if except_my_node: address_list = address_list # 나중에 수정 send_threads = [] for addr in address_list: try: # 메시지를 전송하는 스레드 생성 및 실행 t = threading.Thread(target=send, kwargs={ 'ip_address': addr, 'message': message, 'port': 3000 }) t.start() send_threads.append(t) except: print("SENDTOALL EXCEPT", e) # 스레드 객체를 배열로 저장해둔 후 동기화 for thread in send_threads: thread.join()
def send_to_all_node(message, except_my_node=False): address_list = list(map(lambda x: x.ip_address, node.get_all())) if except_my_node: address_list = list( filter(lambda x: x != my_ip_address.get_ip_address('en0'), address_list)) send_threads = [] for addr in address_list: try: t = threading.Thread(target=send, kwargs={ 'ip_address': addr, 'message': message, 'port': 3000 }) t.start() send_threads.append(t) except Exception as e: print("SENDTOALL EXCEPT", e) for thread in send_threads: thread.join()
def block_gen_signal(): gen_signal = False vote_count = get_vote_count() node_count = node.get_all() # except node itself if vote_count == node_count: gen_signal = True return gen_signal
def send_to_all_node(message): address_list = list(map(lambda x: x.ip_address, node.get_all())) send_thread = [] for addr in address_list: try: # t = threading.Thread(target=send, # kwarg=addr, # message=message) # t.start() # send_thread.append(t) send(addr, message, 3000, 1) except Exception as e: print("SENDTOALL EXCEPT", e) for thread in send_thread: pass
def list_all_node(): for n in node.get_all(): log.write(n, logging.DEBUG)
def start(thread_name, ip_address, port): import json addr = (ip_address, port) buf_size = 1024 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # tcp_socket.bind(addr) tcp_socket.listen(5) while True: receive_socket, sender_ip = tcp_socket.accept() while True: log.write("Receiving") data = receive_socket.recv(buf_size) try: if len(data) == 0: break data_json_obj = json.loads(data) if data_json_obj['type'] == 'T': log.write("Receiving a transaction") verify_msg = data_json_obj['time_stamp'] + data_json_obj[ 'message'] verification = key.verify_signature( data_json_obj['pub_key'], data_json_obj['signature'], verify_msg) if verification is True: log.write("Transaction is valid") tx = Transaction().from_json(data_json_obj) transaction.add_transaction(tx) elif data_json_obj['type'] == 'N': from node import node_controller log.write("Receiving Node") node_list = node.get_all() received_ip = data_json_obj['ip_address'] sync_flag = False for outer_list in node_list: outer_list = str(outer_list) if outer_list == received_ip: sync_flag = True if sync_flag is False: node_controller.add_new_node(data_json_obj) # # When received block, add to file database # elif data_json_obj['type'] == 'B': # transaction.remove_all() # create_block(data_json_obj['block_id'], data) except: traceback.print_exc() break tcp_socket.close() receive_socket.close()
def list_all_node(): print("=== list all nodes ===") for n in node.get_all(): print(n)
def show_node_list(): from app import node, log import logging for n in node.get_all(): log.write(n, logging.DEBUG) main_menu()