Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
def list_all_node():
	for n in node.get_all():
		log.write(n, logging.DEBUG)
Exemplo n.º 7
0
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()
Exemplo n.º 8
0
def list_all_node():
    print("=== list all nodes ===")
    for n in node.get_all():
        print(n)
Exemplo n.º 9
0
def show_node_list():
    from app import node, log
    import logging
    for n in node.get_all():
        log.write(n, logging.DEBUG)
    main_menu()