KR102205750B1 - 메시지 브로드캐스트를 위한 방법 및 디바이스 - Google Patents

메시지 브로드캐스트를 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR102205750B1
KR102205750B1 KR1020197014976A KR20197014976A KR102205750B1 KR 102205750 B1 KR102205750 B1 KR 102205750B1 KR 1020197014976 A KR1020197014976 A KR 1020197014976A KR 20197014976 A KR20197014976 A KR 20197014976A KR 102205750 B1 KR102205750 B1 KR 102205750B1
Authority
KR
South Korea
Prior art keywords
message
processing device
consensus node
message processing
broadcast
Prior art date
Application number
KR1020197014976A
Other languages
English (en)
Other versions
KR20190069554A (ko
Inventor
닝 리
Original Assignee
어드밴스드 뉴 테크놀로지스 씨오., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. filed Critical 어드밴스드 뉴 테크놀로지스 씨오., 엘티디.
Publication of KR20190069554A publication Critical patent/KR20190069554A/ko
Application granted granted Critical
Publication of KR102205750B1 publication Critical patent/KR102205750B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

본 출원의 구현예는 메시지 브로드캐스트를 위한 방법 및 디바이스를 개시한다. 각각의 합의 노드에 하나의 메시지 처리 디바이스가 할당되고, 합의 노드 간에 메시지를 브로드캐스트하는 작업은 구현을 위해 메시지 처리 디바이스로 핸드오버된다. 특정 합의 노드에 대해, 합의 노드에 대응하는 메시지 처리 디바이스는 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 스레드를 생성하여, 또다른 합의 노드에 대응하는 메시지 처리 디바이스가 브로드캐스트 메시지를 수신할 때까지, 메시지 브로드캐스트 태스크를 실행할 수 있다. 이와 같이, 메시지 브로드캐스트 태스크를 실행하기 위한 스레드는 합의 노드의 리소스를 소비하지 않고 메시지 처리 디바이스의 컴퓨팅 리소스만을 소비한다. 따라서, 합의 노드에 부담을 야기하지 않으므로, 합의 노드는 서비스에 대해 보다 효율적으로 합의 검증을 수행할 수 있다.

Description

메시지 브로드캐스트를 위한 방법 및 디바이스
본 출원은 블록체인 기술 분야에 관한 것으로, 특히 메시지 브로드캐스트를 위한 방법 및 디바이스에 관한 것이다.
블록체인 기술 분야에서, 서비스에 대한 합의(consensus) 검증 수행을 담당하는 블록체인 노드는 합의 노드라고 불린다. 블록체인 세계화의 추세로, 합의 노드는 종종 전세계적으로 분포된다.
각각의 합의 노드는 일반적으로 서비스 핸들링 단계, 합의 검증 단계, 및 다른 단계에서 합의 노드에 메시지(예를 들어, 서비스 메시지 또는 합의 메시지)를 브로드캐스트할 필요가 있다. 세계화된 이종(heterogeneous) 네트워크는 메시지 송신 프로세스에서 불안정성을 야기할 수 있고, 예를 들어 중국 네트워크와 미국 네트워크는 이종 네트워크이며, 미국 네트워크의 합의 노드는 중국 네트워크의 합의 노드에 의해 브로드캐스트되는 메시지를 수신하는데 실패할 수 있다. 따라서, 각각의 또다른 합의 노드가 상대적으로 높은 성공률로 메시지를 수신하는 것을 보장(ensure)하기 위해, 메시지를 브로드캐스트하는 합의 노드는 일반적으로 각각의 또다른 합의 노드에 대한 하나의 스레드(thread)를 생성하고 스레드를 사용하여 메시지를 또다른 합의 노드에 전송하는 태스크를 실행한다.
구체적으로, 스레드를 사용하여 또다른 합의 노드에 메시지를 전송한 후에, 메시지를 브로드캐스트하는 합의 노드는 (또다른 합의 노드가 메시지를 수신하였음을 알리기 위해) 또다른 합의 노드에 의해 반환된 통지를 수신하기를 대기한다. 스레드를 사용하여 지정된 시간 내에 통지를 수신하지 못하면, 메시지를 브로드캐스트하는 합의 노드는, 메시지를 브로드캐스트하는 합의 노드가 통지를 수신할 때까지, 스레드를 사용하여 또다른 합의 노드에 메시지를 다시 전송한다. 대안적으로, 메시지를 다수회 전송한 후에 메시지를 브로드캐스트하는 합의 노드가 스레드를 사용하여 통지를 여전히 수신하지 못하면, 메시지를 브로드캐스트하는 합의 노드가 스레드를 취소(cancel)한다. 따라서, 또다른 합의 노드가 비교적 높은 성공률로 메시지를 수신하는 것이 보장될 수 있다.
그러나, 실제로, 메시지를 브로드캐스트하는 합의 노드에 의해 생성된 스레드를 사용하여 메시지를 또다른 합의 노드에 전송하는 태스크을 실행할 때, 메시지를 브로드캐스트하는 합의 노드는 일반적으로 메시지를 다수회 반복적으로 전송할 필요가 있다. 이는 메시지를 브로드캐스트하는 합의 노드의 다수의 컴퓨팅 리소스를 소비하여 메시지를 브로드캐스트하는 합의 노드에 과도한 부담을 야기한다.
본 출원의 구현예는 메시지 브로드캐스트를 위한 기존의 방법이 메시지를 브로드캐스트하는 합의 노드에 과도한 부담을 야기한다는 문제를 완화하기 위한 메시지 브로드캐스트를 위한 방법 및 디바이스를 제공한다.
이전의 기술적인 문제를 완화하기 위해, 본 출원의 구현예는 다음과 같이 구현된다:
본 출원의 구현예는 메시지 브로드캐스트를 위한 방법을 제공하며, 상기 방법은, 블록체인 네트워크의 합의 노드에 의해, 제 1 브로드캐스트 메시지를 획득하는 단계; 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 1 스레드를 생성하는 단계; 제 1 스레드를 사용하여 제 1 브로드캐스트 메시지를 메시지 처리 디바이스에 전송하여, 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 전송하는 단계; 및 제 1 스레드를 취소하는 단계를 포함한다.
본 출원의 구현예는 메시지 브로드캐스트를 위한 또다른 방법을 제공하며, 상기 방법은, 메시지 처리 디바이스에 의해, 메시지 처리 디바이스에 대응하는 합의 노드에 의해 전송된 제 1 브로드캐스트 메시지를 수신하는 단계; 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 2 스레드를 생성하는 단계; 제 2 스레드를 사용하여 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송하는 단계; 및 또다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하였다고 결정하는 것에 응답하여 제 2 스레드를 취소하는 단계를 포함한다.
본 출원의 구현예는 메시지 브로드캐스트를 위한 디바이스를 제공하며, 상기 디바이스는, 제 1 브로드캐스트 메시지를 획득하도록 구성된 획득 모듈; 디바이스에 대응하는 메시지 처리 디바이스에 대한 제 1 스레드를 생성하고, 제 1 스레드를 사용하여 제 1 브로드캐스트 메시지를 메시지 처리 디바이스에 전송하여, 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 전송하도록 구성된 전송 모듈; 및 제 1 스레드를 취소하도록 구성된 취소 모듈을 포함한다.
본 출원의 구현예는 메시지 브로드캐스트를 위한 또다른 디바이스를 제공하며, 상기 디바이스는, 디바이스에 대응하는 합의 노드에 의해 전송된 제 1 브로드캐스트 메시지를 수신하도록 구성된 제 1 수신 모듈; 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 2 스레드를 생성하고, 제 2 스레드를 사용하여 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송하도록 구성된 전송 모듈; 또다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하였다고 결정하는 것에 응답하여 제 2 스레드를 취소하도록 구성된 취소 모듈을 포함한다.
본 출원의 구현예에서 제공되는 이전의 기술적 해결책으로부터, 본 출원의 구현예에서, 각각의 합의 노드에 하나의 메시지 처리 디바이스가 할당되고, 합의 노드 간에 메시지를 브로드캐스트하는 작업은 구현을 위해 메시지 처리 디바이스로 핸드오버된다는 것을 배울 수 있다. 특정 합의 노드에 대해, 합의 노드에 대응하는 메시지 처리 디바이스는 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 스레드를 생성하여, 또다른 합의 노드에 대응하는 메시지 처리 디바이스가 브로드캐스트 메시지를 수신할 때까지, 메시지 브로드캐스트 태스크를 실행할 수 있다. 이와 같이, 메시지 브로드캐스트 태스크를 실행하기 위한 스레드는 합의 노드의 리소스를 소비하지 않고 메시지 처리 디바이스의 컴퓨팅 리소스만을 소비한다. 따라서, 합의 노드에 부담을 야기하지 않으므로, 합의 노드는 서비스에 대해 보다 효율적으로 합의 검증을 수행할 수 있다.
본 출원의 구현예 또는 기존의 기술에서의 기술적 해결책을 보다 명확하게 설명하기 위해, 다음은 구현예 또는 기존의 기술을 설명하기 위해 필요한 첨부 도면을 간략하게 설명한다. 명백하게, 다음의 설명에서의 첨부된 도면은 단지 본 출원의 일부 구현예만을 도시하고, 당업자는 창조적인 노력없이 이들 첨부 도면으로부터 다른 도면을 도출할 수 있다.
도 1은 본 출원의 구현예에 따른 메시지 브로드캐스트를 위한 방법을 예시하는 흐름도이다.
도 2는 기존의 메시지 브로드캐스트 방법을 본 출원에 제공된 메시지 브로드캐스트 방법과 비교한 일례를 예시한 개략도이다.
도 3은 본 출원의 구현예에 따른 메시지 브로드캐스트를 위한 디바이스를 예시하는 개략도이다.
도 4는 본 출원의 구현예에 따른 메시지 브로드캐스트를 위한 또다른 디바이스를 예시하는 개략도이다.
본 출원의 구현예는 메시지 브로드캐스트를 위한 방법 및 디바이스를 제공한다.
당업자가 본 출원의 기술적 해결책을 더 잘 이해하게 하기 위해, 다음은 본 출원의 구현예에서 첨부 도면을 참조하여 본 출원의 구현예의 기술적 해결책을 명확하고 포괄적으로 설명한다. 명백하게, 설명된 구현예는 단지 본 출원의 구현예의 전부가 아닌 단지 일부이다. 창의적인 노력없이 본 출원의 구현에 기초하여 당업자에 의해 획득된 다른 모든 구현은 본 출원의 보호 범위 내에 있다.
본 출원의 구현예에 제공된 기술적 해결책은 첨부 도면을 참조하여 이하에서 상세히 설명된다.
도 1은 본 출원의 구현예에 따른 메시지 브로드캐스트를 위한 방법을 예시하는 흐름도이다. 메시지 브로드캐스트를 위한 방법은 다음 단계를 포함한다.
S101. 합의 노드는 제 1 브로드캐스트 메시지를 획득한다.
본 출원의 이러한 구현예에서, 합의 노드는 블록체인 네트워크에서 서비스에 대한 합의 검증에 참여하는 블록체인 노드이다. 전형적인 블록체인 네트워크에서, 모든 블록체인 노드는 합의 노드로서 합의 검증에 참여할 수 있다. 그러나, 특정 블록체인 네트워크(예를 들어, 컨소시엄-체인 서브네트워크 및 공용(public)-체인 서브네트워크가 포함된 블록체인 네트워크)에서는, 모든 블록체인 노드가 합의 노드로서 합의 검증에 참여할 수 있는 것은 아니다.
서비스 핸들링 단계, 합의 검증 단계, 및 다른 단계에서 합의 노드는 서로에게 메시지를 브로드캐스트 또는 전송할 필요가 있다는 것이 본 출원의 구현예의 애플리케이션 시나리오이다.
서비스 핸들링 단계는, 소정의 합의 노드가 서비스 메시지를 수신하고, 서비스 메시지를 또다른 합의 노드로 브로드캐스트하여, 모든 합의 노드가 서비스 메시지를 수신하게 하는 것을 의미한다. 이는 서비스 메시지에 대한 후속하는 합의 검증을 용이하게 한다. 합의 검증 단계는 모든 합의 노드가 특정 합의 알고리즘을 준수하여 검증 결과에 대한 합의에 도달하는 단계이다. 합의 검증 단계에서, 모든 합의 노드는 합의에 도달하기 위해 서로에게 검증 메시지를 전송해야 한다.
본 출원의 이러한 구현예에서, 제 1 브로드캐스트 메시지는 서비스 메시지, 검증 메시지, 또는 특정 합의 노드에 의해 또다른 합의 노드로 브로드캐스트되거나 전송되는 메시지일 수 있다.
이 방법은 임의의 합의 노드에 의해 수행될 수 있음을 주목할 가치가 있다. 서비스 처리 단계에서, 합의 노드는 클라이언트 또는 비합의 노드에 의해 전송된 서비스 메시지를 수신하고, 그 서비스 메시지를 획득된 제 1 브로드캐스트 메시지로서 사용할 수 있다. 합의 검증 단계에서, 합의 노드는 서비스 메시지를 검증한 후에 검증 메시지를 생성하고, 그 검증 메시지를 획득된 제 1 브로드캐스트 메시지로서 사용할 수 있다.
S102. 합의 노드는 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 1 스레드를 생성하고, 제 1 스레드를 사용하여 제 1 브로드캐스트 메시지를 메시지 처리 디바이스에 전송한다.
S103. 합의 노드는 제 1 스레드를 취소한다.
본 출원의 이러한 구현예에서, 합의 노드는 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송하고, 제 1 브로드캐스트 메시지를 브로드캐스트 또는 전송하는 태스크를 처리를 위해 합의 노드에 대응하는 메시지 처리 디바이스로 완전히 핸드오버하여, 메시지 처리 디바이스로 하여금 또다른 합의 노드의 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 성공적으로 수신하도록 보장하게할 수 있다. 이와 같이, 합의 노드는 모든 다른 합의 노드가 가능한 많은 제 1 브로드캐스트 메시지를 수신하도록 보장하기 위해 컴퓨팅 리소스를 소비 할 필요가 없다.
도 2는 기존의 메시지 브로드캐스트 방법과 본 출원에 제공된 메시지 브로드캐스트 방법을 비교한 일례를 예시하는 개략도이다. 도 2에 도시된 바와 같이, 합의 노드에 대응하는 메시지 처리 디바이스는 합의 노드와 독립적인 컴퓨팅 디바이스이다. 합의 노드 간의 메시지 교환은 합의 노드에 각각 대응하는 메시지 처리 디바이스에 의해 수행된다.
즉, 합의 노드는 단지 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 1 스레드를 생성하면 되고, 제 1 스레드를 지속적으로 유지하기 위해 컴퓨팅 리소스를 소비하는 것없이, 제 1 스레드를 사용하여 제 1 브로드캐스트 메시지를 합의 노드에 대응하는 메시지 처리 디바이스에 송신 한 후에 제 1 스레드를 취소할 수 있다.
제 1 스레드는 합의 노드에 대응하는 메시지 처리 디바이스를 위해 합의 노드에 의해 생성된 스레드이고, 이하 설명되는 제 2 스레드는 또다른 합의 노드에 대응하는 메시지 처리 디바이스를 위해 메시지 처리 디바이스에 의해 생성된 스레드이다.
실제로, 합의 노드는 비동기 호출 기술을 사용하여 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송하는데 사용되는 제 1 스레드를 생성한다. 제 1 스레드를 사용하여 제 1 브로드캐스트 메시지를 전송한 후에, 합의 노드는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하였는지의 여부를 고려하지 않고 제 1 스레드를 직접 취소할 수 있다.
합의 노드 및 합의 노드에 대응하는 메시지 처리 디바이스는 일반적으로 이종 네트워크에서 분산되지 않는다는 점에 주목할 가치가 있다. 즉, 합의 노드와 합의 노드에 대응하는 메시지 처리 디바이스 간의 정보 교환은 안정적이다. 따라서, 메시지 처리 디바이스는 일반적으로 메시지 처리 디바이스에 대응하는 합의 노드에 의해 송신된 메시지를 한번에 성공적으로 수신할 수 있다.
또한, 제 1 브로드캐스트 메시지가 합의 노드로부터 대응하는 메시지 처리 디바이스로 송신되는 과정에서 손실이 없도록 완전히 보장하기 위해, 지역 사설 라인(regional private line)이 합의 노드를 합의 노드에 대응하는 메시지 처리 디바이스를 접속시키기 위해 사용되어, 합의 노드와 합의 노드에 대응하는 메시지 처리 디바이스 사이에 존재할 수 있는 네트워크 교란(network disturbance)을 가능한 많이 완화시킬 수 있다.
합의 노드에 대응하는 메시지 처리 디바이스에게 메시지를 브로드캐스트하도록 명령하는 것 이외에, 합의 노드는 또한, 합의 노드에 대응하는 메시지 처리 디바이스를 사용하여 또다른 합의 노드에 의해 브로드캐스트되는 메시지를 수신할 수 있다.
구체적으로, 합의 노드는 합의 노드에 대응하는 메시지 처리 디바이스에 의해 전송된 제 2 브로드캐스트 메시지를 수신할 수 있다. 제 2 브로드캐스트 메시지는 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 의해 브로드캐스트된다. 메시지 처리 디바이스는 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 의해 브로드캐스트되는 제 2 브로드캐스트 메시지를 수신한 후에, 제 2 브로드캐스트 메시지를 합의 노드에 전송할 수 있다.
제 1 브로드캐스트 메시지와 제 2 브로드캐스트 메시지 모두는 합의 노드에 의해 브로드캐스트되는 브로드캐스트 메시지이고, 제 1 브로드캐스트 메시지와 제 2 브로드캐스트 메시지 모두는 서비스 메시지, 검증 메시지 등일 수 있다는 것에 주목할 가치가 있다.
S104. 메시지 처리 디바이스는 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 2 스레드를 생성하고, 제 2 스레드를 사용하여 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송한다.
S105. 메시지 처리 디바이스는 또다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하였다고 결정한 것에 응답하여 제 2 스레드를 취소한다.
기존의 기술에서, 합의 노드는 메시지 브로드캐스트를 담당한다. 합의 노드는 합의 노드의 컴퓨팅 리소스를 차지하는 스레드를 생성하고, 모든 다른 합의 노드가 합의 노드에 의해 브로드캐스트되는 메시지를 수신하도록 가능한 많이 보장하기 위해 스레드를 사용한다.
본 출원의 이러한 구현예에서, 합의 노드는 단지 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 송신하면 된다. 합의 노드와 독립적인 컴퓨팅 디바이스로서, 메시지 처리 디바이스는 메시지 브로드캐스트를 독립적으로 담당할 수 있다. 이와 같이, 합의 노드가 해제되므로 합의 노드는 제한된 컴퓨팅 리소스에 집중하여 합의 검증 작업을 보다 효율적으로 수행할 수 있다.
본 출원의 이러한 구현예에서, 메시지 처리 디바이스는 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 2 스레드를 생성하고, 제 2 스레드를 사용하여 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 성공적으로 수신한다는 확인을 대기하는데 메시지 처리 디바이스의 컴퓨팅 리소스를 소비한다.
구체적으로, 메시지 처리 디바이스는 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대해 생성된 제 2 스레드를 사용하여 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송하고; 수신된 응답 신호의 수를 카운팅하고 - 응답 신호는 제 1 브로드캐스트 메시지를 수신한 후에 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 의해 반환되는 것임 -; 카운트된 수신된 응답 신호의 수가 특정 값 - 특정 값은 0보다 큰 정수임 - 보다 작지 않을 때까지, 카운트된 수가 상기 특정 값보다 작다는 결정에 응답하여 각각의 제 2 스레드를 사용하여 제 1 브로드캐스트 메시지를 재전송할 수 있다. 특정 값은 구성가능(configurable)한다. 더 높은 특정 값은, 더 많은 합의 노드가 제 1 브로드캐스트 메시지를 수신하고, 그에 따라 합의 노드가 더 높은 성공률로 메시지를 브로드캐스트하도록 보장할 수 있다. 특정 값은 본 출원에서 특별히 제한되지 않는다.
또한, 카운트된 수가 특정 값보다 작은 경우, 메시지 처리 디바이스는, 이전 번에 카운트된 수신된 응답 신호의 전체 수가 특정 값보다 작지 않을 때까지, 응답 신호를 반환하지 않은 메시지 처리 디바이스에 대응하는 제 2 스레드를 이용하여, 응답 신호를 반환하지 않은 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송하는 것을 계속할 수 있다. 대안적으로, 메시지 처리 디바이스는, 다음 번에 카운트된 수신된 응답 신호의 수가 특정 값보다 작지 않을 때까지, 모든 제 2 스레드를 사용하여 제 1 브로드캐스트 메시지를 모든 다른 메시지 처리 디바이스에 다시 전송할 수 있다.
또한, 메시지 처리 디바이스가 제 2 스레드를 사용하여 제 1 브로드캐스트 메시지를 또다른 특정 메시지 처리 디바이스에 특정 횟수 전송한 후에, 제 2 스레드를 사용하여 메시지 처리 디바이스가 여전히 또다른 메시지 처리 디바이스에 의해 반환되는 응답 신호를 수신하지 않으면, 메시지 처리 디바이스는 제 1 브로드캐스트 메시지를 또다른 메시지 처리 디바이스에 전송하는 것을 중지할 수 있다. 특정 기간 후에, 메시지 처리 디바이스는 제 1 브로드캐스트 메시지를 또다른 메시지 처리 디바이스에 전송하는 것을 계속한다.
예를 들어, 메시지 처리 디바이스는 우선 제 1 브로드캐스트 메시지를 다른 메시지 처리 디바이스로 브로드캐스트하고, 그 후 응답 신호가 반환되지 않은 또다른 메시지 처리 디바이스를 결정하고(즉, 제 1 브로드캐스트 메시지를 수신하는 것에 실패한 메시지 처리 디바이스), 그 후 제 1 브로드캐스트 메시지를 수신하는 것에 실패한 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 재전송할 수 있다. 이러한 동작은 반복된다. 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 동일한 또다른 메시지 처리 디바이스에 3회 반복하여 전송한 후에, 해결되어야 할 일시적인 송신 문제가 있음을 나타낸다(문제는 제 1 브로드캐스트 메시지를 수신하는 것에 실패한 메시지 처리 디바이스의 고장(failure)으로 인해, 또는 대규모 네트워크 결함으로 인해 발생될 수 있다). 따라서, 메시지 처리 디바이스는 먼저 제 1 브로드캐스트 메시지를 또다른 메시지 처리 디바이스에 전송하는 것을 중지하고, 그 후 오랜 시간 동안 대기한 후에 (송신 문제가 해결되었을 수 있음) 제 1 브로드캐스트 메시지를 또다른 메시지 처리 디바이스에 전송하는 것을 계속한다.
본 출원의 이러한 구현예에서, 메시지 처리 디바이스는, 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하였다는 것을 보장한 후에만 제 2 스레드를 취소한다. 메시지 처리 디바이스는 지연 전달 및 보상 전달(메시지를 수신하는 것에 실패한 객체가 메시지를 보상하기 위해 적극적으로 요청함)과 같은 다양한 메시지 전달 정책을 사용하여 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하도록 보장할 수 있다. 메시지 처리 디바이스에 의해 사용되는 메시지 전달 정책은 본 출원에서 특별히 제한되지 않는다.
이전의 설명으로부터, 메시지 처리 디바이스는 실제로 동기 호출 기술을 사용하여, 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대해, 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 송신하기 위해 사용되는 하나의 제 2 스레드를 생성한다는 것을 알 수 있다. 제 2 스레드를 사용하여 제 1 브로드캐스트 메시지를 전송한 후에, 메시지 처리 디바이스는 여전히 제 2 스레드를 사용하여 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하는 것을 확인하기 위해 대기한다. 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하는 것에 실패한 경우, 메시지 처리 디바이스는 제 2 스레드를 이용하여 제 1 브로드캐스트 메시지를 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 재전송한다. 제 2 스레드는, 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 확실히 수신할 때까지 또는 전송을 중지하기 위한 조건이 트리거될 때까지만 취소된다.
S106. 또다른 합의 노드에 대응하는 메시지 처리 디바이스는 대응하는 또다른 합의 노드에 제 1 브로드캐스트 메시지를 전송한다.
이전 설명된 바와 같이, 또다른 합의 노드는, 또다른 합의 노드에 대응하는 메시지 처리 디바이스를 사용하여, 또다른 합의 노드에 의해 브로드캐스트되는 메시지를 수신할 수 있다.
도 1에 도시된 메시지 브로드캐스트를 위한 방법에 따르면, 각각의 합의 노드에 하나의 메시지 처리 디바이스가 할당되고, 합의 노드 간에 메시지를 브로드캐스트하는 작업은 구현을 위해 메시지 처리 디바이스로 핸드오버된다. 특정 합의 노드에 대해, 합의 노드에 대응하는 메시지 처리 디바이스는 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 스레드를 생성하여, 또다른 합의 노드에 대응하는 메시지 처리 디바이스가 브로드캐스트 메시지를 수신할 때까지, 메시지 브로드캐스트 태스크를 실행할 수 있다. 이와 같이, 메시지 브로드캐스트 태스크를 실행하기 위한 스레드는 합의 노드의 리소스를 소비하지 않고 메시지 처리 디바이스의 컴퓨팅 리소스만을 소비한다. 따라서, 합의 노드에 부담을 야기하지 않으므로, 합의 노드는 서비스에 대해 보다 효율적으로 합의 검증을 수행할 수 있다.
도 1에 도시된 메시지 브로드캐스트를 위한 방법에 기초하여, 본 출원의 구현예은 또한 대응하여 메시지 브로드캐스트를 위한 디바이스를 제공한다. 도 3에 도시된 바와 같이, 브로드캐스트 메시지를 위한 디바이스는, 제 1 브로드캐스트 메시지를 획득하도록 구성된 획득 모듈(301); 디바이스에 대응하는 메시지 처리 디바이스에 대한 제 1 스레드를 생성하고, 제 1 스레드를 사용하여 제 1 브로드캐스트 메시지를 메시지 처리 디바이스에 전송하여, 메세지 처리 디바이스가 제 1 브로드캐스트 메시지를 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 전송하게 하도록 구성된 전송 모듈(302); 및 제 1 스레드를 취소하도록 구성된 취소 모듈(303)을 포함한다.
디바이스는 지역 사설 라인을 사용하여 메시지 처리 디바이스에 접속된다.
디바이스는 디바이스에 대응하는 메시지 처리 디바이스에 의해 전송된 제 2 브로드캐스트 메시지를 수신하도록 구성된 수신 모듈(304)을 더 포함하며, 제 2 브로드캐스트 메시지는 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 의해 브로드캐스트된다.
도 1에 도시된 메시지 브로드캐스트를 위한 방법에 기초하여, 본 출원의 구현예은 또한 대응하여 메시지 브로드캐스트를 위한 다른 디바이스를 제공한다. 도 4에 도시된 바와 같이, 메시지 브로드캐스트를 위한 디바이스는, 디바이스에 대응하는 합의 노드에 의해 전송된 제 1 브로드캐스트 메시지를 수신하도록 구성된 제 1 수신 모듈(401); 각각의 다른 합의 노드에 대응하는 메시지 처리 디바이스에 대한 제 2 스레드를 생성하고, 제 2 스레드를 사용하여 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 제 1 브로드캐스트 메시지를 전송하는 전송 모듈(402); 및 또다른 합의 노드에 대응하는 메시지 처리 디바이스가 제 1 브로드캐스트 메시지를 수신하였다고 결정하는 것에 응답하여 제 2 스레드를 취소하도록 구성된 취소 모듈(403)을 포함한다.
취소 모듈(403)은 각각의 제 2 스레드를 사용하여 수신된 응답 신호의 수를 카운트하고 - 응답 신호는 제 1 브로드캐스트 메시지를 수신한 후에 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 의해 반환된 것임 - ; 카운트된 수신된 응답 신호의 수가 특정 값 - 특정 값은 0보다 큰 정수임 - 보다 작지 않을 때까지, 카운트된 수가 특정 값보다 작다는 것에 응답하여 각각의 제 2 스레드를 사용하여 제 1 브로드캐스트 메시지를 재전송하도록 구성된다.
디바이스는 또다른 합의 노드에 대응하는 메시지 처리 디바이스에 의해 브로드캐스트되는 제 2 브로드캐스트 메시지를 수신하고; 제 2 브로드캐스트 메시지를 합의 노드에 전송하도록 구성된 제 2 수신 모듈 (404)을 더 포함한다.
1990년대에, 기술적 개선이 하드웨어 개선(예를 들어, 다이오드, 트랜지스터 또는 스위치와 같은 회로 구조에 대한 개선)인지 또는 소프트웨어 개선(방법 절차에 대한 개선)인지가 명확하게 구별될 수 있다. 그러나, 기술이 발전함에 따라, 다수의 방법 절차의 현재의 개선은 하드웨어 회로 구조를 직접적인 개선으로서 고려될 수 있다. 거의 모든 설계자들은 대응 하드웨어 회로 구조를 얻기 위해, 하드웨어 회로 내로 개선된 방법 절차를 프로그래밍한다. 따라서, 방법 절차는 하드웨어 엔티티 모듈을 사용하여 개선될 수 있다. 예를 들어, 프로그래머블 로직 디바이스(programmable logic device; PLD)[예를 들어, 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA)]가 이러한 집적 회로이고, PLD의 로직 함수는 디바이스 프로그래밍을 통해 사용자에 의해 결정된다. 설계자는 주문형 집적 회로 칩을 설계하고 제조하도록 칩 제조자에게 요청하지 않고 디지털 시스템을 PLD로 "집적"하기 위해 프로그래밍을 수행한다. 또한, 현재, 집적 칩을 수동으로 제조하는 대신에, 이 타입의 프로그래밍은 "로직 컴파일러" 소프트웨어를 사용하여 대부분 구현된다. "로직 컴파일러" 소프트웨어는 프로그램을 개발하고 기입하는 데 사용된 소프트웨어 컴파일러와 유사하다. 원시 코드는 컴파일링되기 전에 특정 프로그래밍 언어로 기입될 필요가 있다. 언어는 하드웨어 기술 언어(hardware description language: HDL)라 칭한다. ABEL(Advanced Boolean Expression Language), AHDL(Altera Hardware Description Language), Confluence, CUPL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, 및 RHDL(Ruby Hardware Description Language)와 같은 다수의 HDL이 존재한다. VHDL(very-high-speed integrated circuit hardware description language) 및 Verilog가 현재 가장 통상적으로 사용된다. 당업자는, 방법 절차가 상기 여러 하드웨어 기술 언어를 사용하여 로직적으로 프로그래밍되고 집적 회로로 프로그래밍되면, 로직 방법 절차를 구현하는 하드웨어 회로가 쉽게 얻어질 수 있다는 것을 또한 이해해야 한다.
컨트롤러는 임의의 적절한 방식으로 구현될 수 있다. 예를 들어, 컨트롤러는 마이크로프로세서, 프로세서, 마이크로프로세서 또는 프로세서에 의해 실행될 수 있는 컴퓨터 판독가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터 판독가능 매체, 로직 게이트, 스위치, 주문형 집적 회로(ASIC), 프로그래머블 로직 컨트롤러 또는 내장형 마이크로프로세서의 형태일 수 있다. 컨트롤러의 예로는, ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 및 Silicone Labs C8051F320와 같은 마이크로프로세서를 포함하지만, 이들에 한정되지 않는다. 대안적으로, 메모리 컨트롤러는 메모리의 제어 로직의 일부로서 구현될 수 있다. 당업자는 컴퓨터 판독가능 프로그램 코드를 사용하여 컨트롤러를 구현하는 것 이외에, 컨트롤러가 논리 게이트, 스위치, 주문형 집적 회로, 프로그래머블 로직 컨트롤러, 또는 내장형 마이크로컨트롤러의 형태로 동일한 기능을 구현하게 하도록 방법 단계들이 로직적으로 프로그래밍될 수 있다는 것을 또한 인지한다. 따라서, 컨트롤러는 하드웨어 컴포넌트로서 간주될 수 있으며, 컨트롤러에 포함되고 다양한 기능을 구현하도록 구성된 디바이스는 또한 하드웨어 컴포넌트 내의 구조로서 간주될 수 있다. 대안적으로, 다양한 기능을 구현하도록 구성된 디바이스는 방법을 구현하기위한 소프트웨어 모듈 및 하드웨어 컴포넌트 내의 구조 모두로서 간주될 수 있다.
이전 구현예에서 예시시된 시스템, 디바이스, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티를 사용하거나 특정 기능을 갖는 제품을 사용하여 구체적으로 구현될 수 있다. 일반적인 구현 디바이스는 컴퓨터이다. 특히, 컴퓨터는 예를 들어 퍼스널 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트 폰, 개인 휴대 정보 단말기, 미디어 플레이어, 네비게이션 디바이스, 이메일 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스 또는 이들 디바이스의 조합일 수 있다.
설명의 용이함을 위해, 이전 디바이스는 기능에 기초하여 디바이스를 다양한 유닛들로 분할하여 설명된다. 물론, 본 출원이 구현될 때, 유닛의 기능은 하나 이상의 소프트웨어 및/또는 하드웨어 피스로 구현될 수 있다.
당업자는 본 개시의 구현이 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 개시는 하드웨어 전용 구현예, 소프트웨어 전용 구현예, 또는 소프트웨어와 하드웨어의 조합을 갖는 구현예를 사용할 수 있다. 또한, 본 개시는 컴퓨터 사용 가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용가능한 저장 매체(자기 디스크 스토리지, CD-ROM, 광학 메모리 등을 포함하지만 이들에 한정되지 않음) 상에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 개시는 본 개시의 구현예에 따른 방법, 디바이스(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명된다. 컴퓨터 프로그램 명령어들이 흐름도 및/또는 블록도의 각각의 프로세스 및/또는 각각의 블록 및 흐름도 및/또는 블록도의 프로세스 및/또는 블록의 조합을 구현하는데 사용될 수 있다는 점에 유의해야 한다. 이들 컴퓨터 프로그램 명령어들은 머신을 생성하기 위한 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서 또는 다른 프로그래머블 데이터 처리 디바이스의 프로세서를 위해 제공되어, 컴퓨터 또는 또다른 프로그래머블 데이터 처리 디바이스의 프로세서에 의해 실행되는 명령어들이 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현하기 위한 디바이스를 생성하게할 수 있다.
이들 컴퓨터 프로그램 명령어들은 대안적으로 컴퓨터 또는 또다른 프로그래머블 데이터 처리 디바이스에게 특정 방식으로 작동하도록 명령할 수 있는 컴퓨터 판독가능 메모리 내에 저장되어, 컴퓨터 판독가능 메모리 내에 저장된 명령어들이 명령 디바이스를 포함하는 아티팩트를 생성하게할 수 있다. 명령 디바이스는 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현한다.
이러한 컴퓨터 프로그램 명령어들은 대안적으로 컴퓨터 또는 또다른 프로그래머블 데이터 처리 디바이스 상에 로딩되어, 일련의 동작들 및 단계들이 컴퓨터 또는 또다른 프로그래머블 디바이스 상에 수행됨으로써 컴퓨터로 구현된 처리를 생성하게할 수 있다. 따라서, 컴퓨터 또는 또다른 프로그래머블 디바이스 상에 실행되는 명령어들은 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현하는 단계를 제공한다.
전형적인 구성에서, 컴퓨팅 디바이스는 하나 이상의 프로세서(CPU), 하나 이상의 입출력 인터페이스, 하나 이상의 네트워크 인터페이스, 및 하나 이상의 메모리를 포함한다.
메모리는 비영구적 메모리, 랜덤 액세스 메모리(random access memory; RAM), 비휘발성 메모리, 및/또는 예를 들어 판독 전용 메모리(read-only memory; ROM) 또는 플래시 메모리(flash RAM)와 같은 컴퓨터 판독가능 매체 내의 다른 형태의 메모리를 포함할 수 있다. 메모리는 컴퓨터 판독가능 매체의 예이다.
컴퓨터 판독가능 매체는 임의의 방법 또는 기술을 사용하여 정보를 저장할 수 있는 영구적, 비영구적, 착탈식 및 비착탈식 매체를 포함한다. 정보는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수 있다. 컴퓨터 저장 매체의 예로는, 파라미터 랜덤 액세스 메모리(parameter random access memory; PRAM), 정적 랜덤 액세스 메모리(static random access memory; SRAM), 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM), 다른 타입의 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적 소거가능 프로그래머블 판독 전용 메모리(electrically erasable programmable read-only memory; EEPROM), 플래시 메모리 또는 다른 메모리 기술, 컴팩트 디스크 판독 전용 메모리(compact disc read-only memory; CD-ROM), 디지털 다기능 디스크(digital versatile disc; DVD) 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 메모리 또는 또다른 자기 저장 디바이스, 또는 컴퓨팅 디바이스에 액세스가능한 정보를 저장하기 위해 사용될 수 있는 임의의 다른 비송신 매체를 포함하지만, 이들에 한정되지 않는다. 본 명세서의 정의에 기초하여, 컴퓨터 판독가능 매체는 변조된 데이터 신호 및 캐리어와 같은 일시적 컴퓨터 판독가능 매체(일시적 매체)를 포함하지 않는다.
"포함한다", "구비한다" 또는 이들의 임의의 다른 변형은 비배타적 인 포함을 커버하도록 의도되고, 따라서 요소들의 리스트를 포함하는 프로세스, 방법, 제품 또는 디바이스는 그들 요소들을 포함할 뿐만 아니라, 명확하게 리스트되지 않는 다른 요소들을 또한 포함하거나, 그들 프로세스, 방법, 제출, 또는 디바이스에 고유한 요소들을 더 포함한다는 것을 또한 주목할 가치가 있다. 더 이상의 제약 조건이 없다면, "~을 포함하는"에 의해 수식되는 요소는 그 요소를 포함하는 프로세스, 방법, 제품 또는 디바이스에서 추가적인 동일한 요소의 존재를 배제하지 않는다.
당업자는 본 출원의 구현예가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 출원은 하드웨어 전용 구현예, 소프트웨어 전용 구현예 또는 소프트웨어와 하드웨어의 조합의 구현예를 사용할 수 있다. 또한, 본 출원은 컴퓨터 사용가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용가능 저장 매체(자기 디스크 스토리지, CD-ROM, 광학 메모리 등을 포함하지만 이들에 한정되지 않음) 상에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 출원은 컴퓨터, 예를 들어 컴퓨터 모듈에 의해 실행되는 컴퓨터 실행가능 명령어들의 일반적인 맥락에서 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터 타입을 구현하기 위한 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 출원은 대안적으로 분산 컴퓨팅 환경에서 실시될 수 있다. 이러한 분산 컴퓨팅 환경에서, 태스크는 통신 네트워크를 통해 접속된 원격 처리 디바이스에 의해 수행된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 저장 디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체 모두에 위치될 수 있다.
본 명세서의 구현예는 점진적인 방식으로 설명된다. 구현예의 동일하거나 유사한 부분의 경우, 구현예를 상호 참조할 수 있다. 각각의 구현예는 다른 구현예와의 차이점에 초점을 맞춘다. 특히, 시스템 구현예는 기본적으로 방법 구현예와 유사하고, 따라서 간략하게 설명된다. 관련 부분에 대해, 방법 구현예의 일부 설명을 참조할 수 있다.
이전 설명은 단지 본 출원의 구현예이며, 본 출원을 한정하도록 의도된 것은 아니다. 당업자는 본 출원에 다양한 수정 및 변경을 행할 수 있다. 본 출원의 사상 및 원리를 벗어나지 않고 이루어지는 임의의 수정, 등가의 대체, 개선 등은 본 출원의 청구범위의 범주 내에 있어야 한다.

Claims (12)

  1. 메시지 브로드캐스트(broadcast)를 위한 방법에 있어서,
    블록체인 네트워크의 제 1 합의 노드(consensus node)에 의해, 제 1 브로드캐스트 메시지를 획득하는 단계(S101) - 상기 블록체인 네트워크는 상기 제 1 합의 노드 및 복수의 다른 합의 노드를 포함하고, 상기 제 1 합의 노드는 대응하는 제 1 메시지 처리 디바이스를 갖고, 상기 다른 합의 노드 각각은 각각의 대응하는 다른 메시지 처리 디바이스를 갖고, 상기 메시지 처리 디바이스 모두는 그들의 대응하는 합의 노드와 독립적인 컴퓨팅 디바이스이며, 합의 노드 간의 메시지 교환은 상기 합의 노드에 각각 대응하는 메시지 처리 디바이스에 의해 수행됨 - ;
    상기 제 1 합의 노드에 의해, 상기 제 1 메시지 처리 디바이스에 대한 제 1 스레드(thread)를 생성하는 단계(S102);
    상기 제 1 합의 노드에 의해, 상기 제 1 스레드를 사용하여 상기 제 1 브로드캐스트 메시지를 상기 제 1 메시지 처리 디바이스에 전송하는 단계(S102);
    상기 제 1 합의 노드에 의해, 상기 제 1 메시지 처리 디바이스가 상기 제 1 브로드캐스트 메시지를 수신하였는지 여부를 결정하지 않고 상기 제 1 브로드캐스트 메시지를 전송한 직후에 상기 제 1 스레드를 취소(cancelling)하는 단계(S103);
    상기 다른 메시지 처리 디바이스 각각에 대한 각각의 제 2 스레드를 생성하고 상기 각각의 제 2 스레드를 사용하여 상기 제 1 브로드캐스트 메시지를 상기 다른 메시지 처리 디바이스에 전송함으로써, 상기 다른 합의 노드에 대응하는 상기 다른 메시지 처리 디바이스에 상기 제 1 브로드캐스트 메시지를 전송하는 단계(S104); 및
    하나 이상의 제 2 스레드 각각에 대해, 상기 제 1 브로드캐스트 메시지가 전송된 상기 다른 메시지 처리 디바이스가 상기 제 1 브로드캐스트 메시지를 수신하였다고 결정하고, 상기 결정에 응답하여 상기 제 1 메시지 처리 디바이스에 의해 상기 제 2 스레드를 취소하는 단계(S105)
    를 포함하는, 메시지 브로드캐스트를 위한 방법.
  2. 제 1 항에 있어서,
    상기 제 1 합의 노드는 상기 제 1 브로드캐스트 메시지가 상기 제 1 합의 노드로부터 상기 제 1 메시지 처리 디바이스로 송신되는 과정에서 손실이 없도록 완전히 보장하기 위해 지역 사설 라인(regional private line)을 사용하여 상기 제 1 메시지 처리 디바이스에 접속되는 것인, 메시지 브로드캐스트를 위한 방법.
  3. 제 1 항에 있어서,
    상기 제 1 합의 노드에 의해, 상기 제 1 메시지 처리 디바이스에 의해 전송된 제 2 브로드캐스트 메시지를 수신하는 단계
    를 더 포함하고,
    상기 제 2 브로드캐스트 메시지는 상기 다른 합의 노드 중 하나에 대응하는 메시지 처리 디바이스에 의해 브로드캐스트된 것인, 메시지 브로드캐스트를 위한 방법.
  4. 제 1 항에 있어서,
    상기 제 1 메시지 처리 디바이스에 의해, 각각의 제 2 스레드를 사용하여 수신된 응답 신호의 수를 카운트하는 단계 - 상기 응답 신호는 상기 제 1 브로드캐스트 메시지를 수신한 후에 상기 각각의 제 2 스레드에 대응하는 각각의 다른 메시지 처리 디바이스에 의해 반환되는 것임 - ; 및
    상기 제 1 메시지 처리 디바이스에 의해, 상기 카운트된 수신된 응답 신호의 수가 0보다 큰 정수인 특정 값보다 작지 않을 때까지, 상기 수가 상기 특정 값보다 작다는 결정에 응답하여 각각의 제 2 스레드를 사용하여 상기 제 1 브로드캐스트 메시지를 재전송하는 단계
    를 더 포함하는 것인, 메시지 브로드캐스트를 위한 방법.
  5. 제 1 항에 있어서,
    상기 제 1 합의 노드는 비동기 호출 기술을 사용하여 상기 제 1 스레드를 생성하는 것인, 메시지 브로드캐스트를 위한 방법.
  6. 제 1 항에 있어서,
    상기 블록체인 네트워크는 컨소시엄-체인 서브네트워크 및 공용(public)-체인 서브네트워크를 포함하고, 모든 블록체인 노드가 합의 노드로서 합의 검증에 참여할 수 있지는 않은 것인, 메시지 브로드캐스트를 위한 방법.
  7. 합의 노드 및 메시지 처리 디바이스를 포함하는, 메시지 브로드캐스트를 위한 시스템에 있어서, 상기 합의 노드 및 메시지 처리 디바이스는 제 1 항 내지 제 6 항 중 어느 한 항의 방법을 수행하도록 구성된 복수의 모듈을 포함하는 것인, 메시지 브로드캐스트를 위한 시스템.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
KR1020197014976A 2017-03-24 2018-03-19 메시지 브로드캐스트를 위한 방법 및 디바이스 KR102205750B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710182459.1 2017-03-24
CN201710182459.1A CN107196772B (zh) 2017-03-24 2017-03-24 一种广播消息的方法及装置
PCT/CN2018/079435 WO2018171543A1 (zh) 2017-03-24 2018-03-19 一种广播消息的方法及装置

Publications (2)

Publication Number Publication Date
KR20190069554A KR20190069554A (ko) 2019-06-19
KR102205750B1 true KR102205750B1 (ko) 2021-01-22

Family

ID=59870952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197014976A KR102205750B1 (ko) 2017-03-24 2018-03-19 메시지 브로드캐스트를 위한 방법 및 디바이스

Country Status (16)

Country Link
US (2) US10824485B2 (ko)
EP (1) EP3531618B1 (ko)
JP (1) JP6859510B2 (ko)
KR (1) KR102205750B1 (ko)
CN (1) CN107196772B (ko)
AU (1) AU2018240583B2 (ko)
BR (1) BR112019010520B1 (ko)
CA (1) CA3044603C (ko)
MX (1) MX2019005982A (ko)
MY (1) MY192565A (ko)
PH (1) PH12019501151A1 (ko)
RU (1) RU2730039C1 (ko)
SG (1) SG10202100605QA (ko)
TW (1) TW201836372A (ko)
WO (1) WO2018171543A1 (ko)
ZA (1) ZA201903267B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196772B (zh) 2017-03-24 2020-03-13 创新先进技术有限公司 一种广播消息的方法及装置
CN108052392B (zh) * 2017-12-26 2020-12-25 成都质数斯达克科技有限公司 一种基于区块链的业务处理方法及装置
EP3834366A4 (en) * 2018-08-09 2022-04-27 HRL Laboratories, LLC BROADCAST MESSAGE CLASSIFICATION CONSENSUS SYSTEM AND METHOD
US11277260B2 (en) * 2019-09-17 2022-03-15 International Business Machines Corporation Off-chain notification of updates from a private blockchain
CN110602249B (zh) * 2019-09-29 2021-10-22 腾讯科技(深圳)有限公司 一种资源分配的方法以及相关装置
CN111064813B (zh) * 2020-03-16 2020-06-30 支付宝(杭州)信息技术有限公司 在区块链共识处理时进行处理消息同步的方法及装置
CN113012466A (zh) * 2021-02-23 2021-06-22 中国联合网络通信集团有限公司 基于区块链的车位共享方法、用户节点、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150363783A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency risk detection system
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980411A (zh) * 2006-10-27 2007-06-13 华为技术有限公司 业务消息传输方法和系统
US8799402B2 (en) 2007-06-29 2014-08-05 Qualcomm Incorporated Content sharing via mobile broadcast system and method
US8199688B2 (en) 2008-03-22 2012-06-12 Qualcomm Incorporated Signaling and management of broadcast-multicast waveform embedded in a unicast waveform
CN101801113B (zh) * 2009-02-05 2012-07-11 华为技术有限公司 网络拓扑分簇处理方法和处理系统
US9465660B2 (en) * 2011-04-11 2016-10-11 Hewlett Packard Enterprise Development Lp Performing a task in a system having different types of hardware resources
WO2014053073A1 (en) 2012-10-03 2014-04-10 Qualcomm Incorporated Broadcast/multicast used for m2m/mtc
CN104079389A (zh) * 2013-03-25 2014-10-01 株式会社Ntt都科摩 移动广播业务的重传方法
JP6326736B2 (ja) * 2013-08-26 2018-05-23 富士通株式会社 中継装置、中継方法、及び中継プログラム
CN104579905B (zh) * 2013-10-15 2018-11-06 阿里巴巴集团控股有限公司 消息传递方法和系统及mom服务器、接收端
US9397917B2 (en) 2014-01-10 2016-07-19 Huawei Technologies Co., Ltd. System and method for zoning in software defined networks
CN104580253B (zh) * 2015-01-30 2017-08-08 网易(杭州)网络有限公司 一种处理用户数据的方法及装置
US9967334B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
US9967333B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Deferred configuration or instruction execution using a secure distributed transaction ledger
US10095558B2 (en) * 2015-05-26 2018-10-09 Cavium, Inc. Systems and methods for offloading inline SSL processing to an embedded networking device
JP6452156B2 (ja) * 2015-09-03 2019-01-16 日本電信電話株式会社 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム
CN106446067B (zh) * 2016-09-06 2020-02-18 联动优势科技有限公司 一种获取交易数据的方法和装置
CN107196772B (zh) 2017-03-24 2020-03-13 创新先进技术有限公司 一种广播消息的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150363783A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency risk detection system
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Tien Tuan Anh Dinh 외 5명, "BLOCKBENCH: A Framework for Analyzing Private Blockchains", arXiv (2017.03.12.)*

Also Published As

Publication number Publication date
JP2020504928A (ja) 2020-02-13
BR112019010520A2 (pt) 2019-09-17
CN107196772B (zh) 2020-03-13
EP3531618B1 (en) 2022-01-12
US20200334090A1 (en) 2020-10-22
US11003514B2 (en) 2021-05-11
TW201836372A (zh) 2018-10-01
EP3531618A4 (en) 2019-10-02
US20190340042A1 (en) 2019-11-07
US10824485B2 (en) 2020-11-03
PH12019501151A1 (en) 2019-12-16
SG10202100605QA (en) 2021-02-25
CA3044603A1 (en) 2018-09-27
KR20190069554A (ko) 2019-06-19
AU2018240583B2 (en) 2020-09-03
MY192565A (en) 2022-08-29
MX2019005982A (es) 2019-08-12
WO2018171543A1 (zh) 2018-09-27
JP6859510B2 (ja) 2021-04-14
BR112019010520B1 (pt) 2022-04-26
RU2730039C1 (ru) 2020-08-14
CA3044603C (en) 2021-01-19
CN107196772A (zh) 2017-09-22
EP3531618A1 (en) 2019-08-28
ZA201903267B (en) 2021-09-29
AU2018240583A1 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
KR102205750B1 (ko) 메시지 브로드캐스트를 위한 방법 및 디바이스
JP6794551B2 (ja) トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス
KR102140903B1 (ko) 합의 방법 및 장치
KR102255724B1 (ko) 블록체인 기반 합의 방법 및 디바이스
KR102140414B1 (ko) 블록체인 합의 방법 및 디바이스
KR20190091484A (ko) 블록체인 합의 방법 및 디바이스
CN116405554B (zh) 一种网络通信的方法、装置、存储介质及电子设备
CN117033005B (zh) 一种无死锁路由方法、装置、存储介质及电子设备
CN116954952B (zh) 一种机器人的自适应混合通信方法、装置、介质及设备
WO2024092944A1 (zh) 一种数据处理方法、装置、存储介质及电子设备
CN117459415A (zh) 一种业务执行方法、装置、存储介质及电子设备
CN115174587A (zh) 一种数据传输系统、方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right