CN109617787A - 用于区块链网络的消息发送和接收方法、存储介质、计算设备 - Google Patents

用于区块链网络的消息发送和接收方法、存储介质、计算设备 Download PDF

Info

Publication number
CN109617787A
CN109617787A CN201811541047.3A CN201811541047A CN109617787A CN 109617787 A CN109617787 A CN 109617787A CN 201811541047 A CN201811541047 A CN 201811541047A CN 109617787 A CN109617787 A CN 109617787A
Authority
CN
China
Prior art keywords
message
receiving end
identifier
block chain
mark
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201811541047.3A
Other languages
English (en)
Inventor
刘霁阳
史锋锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Point Information Technology Co Ltd
Original Assignee
Shanghai Point Information Technology Co Ltd
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 Shanghai Point Information Technology Co Ltd filed Critical Shanghai Point Information Technology Co Ltd
Priority to CN201811541047.3A priority Critical patent/CN109617787A/zh
Publication of CN109617787A publication Critical patent/CN109617787A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data

Abstract

一种用于区块链网络的消息发送和接收方法、存储介质、计算设备,所述消息发送方法包括:A.接收第一请求,所述第一请求包含所述消息以及至少一个接收端的标识;B.根据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;C.记录各消息标识关联的消息的消息状态;D.将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;E.存储所述消息至第一预设存储空间。通过本发明提供的方案能够实现去中心化的消息通信方案,以及可靠的消息传输。

Description

用于区块链网络的消息发送和接收方法、存储介质、计算设备
技术领域
本发明涉及区块链技术领域,具体地涉及一种用于区块链网络的消息发送和接收方法、存储介质、计算设备。
背景技术
区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、反篡改、去中心的技术体系。
现有的消息通信系统主要通过中心化的方式实现,也即,用户通过一个中心化服务器进行消息交换。具体而言,在现在的中心化通信系统中,消息的发送端向中心化服务器发送消息,由所述中心化服务器向接收端发送该消息。
发明内容
本发明的实施例提供了一种用于区块链网络的消息发送和接收方法、存储介质、计算设备。
本发明实施例的第一方面提供一种用于区块链网络的消息发送方法,包括:A.接收第一请求,所述第一请求包含所述消息以及至少一个接收端的标识;B.根据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;C.记录各消息标识关联的消息的消息状态;D.将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;E.存储所述消息至第一预设存储空间。
本实施例的方案基于区块链技术构建消息通信系统,能够实现去中心化的消息通信方案。进一步,所述消息的原始内容并不直接存储于区块链账本,而是通过在区块链账本中指示消息的消息状态来实现各区块链节点间的消息同步。由于没有在区块链账本中记录消息的原始内容,使得消息的私密性得到保障。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.接收第一请求,所述第一请求包含所述消息以及至少一个接收端的标识;B.根据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;C.记录各消息标识关联的消息的消息状态;D.将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;E.存储所述消息至第一预设存储空间。
本发明实施例还提供一种用于区块链网络的消息接收方法,包括:A.从区块链账本中读取消息的至少一个消息标识、至少一个接收端的标识以及各消息标识关联的消息的消息状态,其中,每一接收端对应一个消息标识;B.对于消息状态为未接收的消息标识关联的消息,从所述消息标识的生成节点获取所述消息;C.向所述至少一个接收端的标识关联的至少一个接收端发送所述消息。
本实施例的方案基于区块链技术构建消息通信系统,通过区块链账本中的消息状态使得区块链网络中的各区块链节点能够同步其他区块链节点接收到的消息,并将同步到的消息发送至接收端,从而实现去中心化的消息通信方案。进一步,由于所述消息的原始内容并不直接存储在区块链账本,使得消息的私密性得到保障。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.从区块链账本中读取消息的至少一个消息标识、至少一个接收端的标识以及各消息标识关联的消息的消息状态,其中,每一接收端对应一个消息标识;B.对于消息状态为未接收的消息标识关联的消息,从所述消息标识的生成节点获取所述消息;C.向所述至少一个接收端的标识关联的至少一个接收端发送所述消息。
本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。
附图说明
图1是本发明实施例的一种用于区块链网络的消息发送方法的流程图;
图2是图1中生成的当前区块的结构示意图;
图3是本发明实施例的一种用于区块链网络的消息接收方法的流程图;
图4是本发明实施例一个典型的应用场景的示意图。
具体实施方式
本申请发明人经过分析发现,现有的消息通信系统能够实现的功能有限。
以实现消息阅读后即删除功能为例,该功能也可称为一次性消息功能,具体而言,现有的消息通信系统基于中心化的服务器实现消息的接收和发送,并在消息被发送后删除本地存储的消息。但是,用户并不能确定消息是否真实地从中心化的服务器上删除了。
本发明实施例的第一方面提供一种用于区块链网络的消息发送方法,包括:A.接收第一请求,所述第一请求包含所述消息以及至少一个接收端的标识;B.根据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;C.记录各消息标识关联的消息的消息状态;D.将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;E.存储所述消息至第一预设存储空间。
本实施例的方案基于区块链技术构建消息通信系统,能够实现去中心化的消息通信方案。进一步,所述消息的原始内容并不直接存储于区块链账本,而是通过在区块链账本中指示消息的消息状态来实现各区块链节点间的消息同步。由于没有在区块链账本中记录消息的原始内容,使得消息的私密性得到保障。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者他们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。还应当注意,流程图中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
本文所使用的术语“包含”、“包括”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。在本公开内容中,术语“基于”是“至少部分地基于”;术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。
本文中出现的“第一请求”是指:由发送端发送至区块链节点的消息发送请求,用于请求向接收端发送消息。其中,所述发送端是指发出消息的设备端。
在一个实施例中,所述第一请求可以包含待发送的消息以及至少一个接收端的标识。为便于表述,接下来将所述待发送的消息简称为消息。例如,通过发送所述第一请求,用户可以通过所述发送端向至少一个接收端同时发送所述消息。
例如,所述消息可以包括短消息、多媒体文件等。
本文中出现的“第二请求”是指:由接收端发送至区块链节点的查询请求,用于请求查询并接收发送给所述接收端的未接收消息。例如,所述接收端可以访问所述区块链网络中的任一区块链节点,并向所述区块链节点发送包含有所述接收端的标识的第二请求,以请求接收自所述接收端上一次访问区块链网络至今至少一个发送端通过所述区块连网络发送给所述接收端的消息。
在一个实施例中,接收所述第一请求的区块链节点,与接收所述第二请求的区块链节点可以是不同的区块链节点。
本文中出现的“接收端的标识”是指:用于证明所述接收端身份的凭证,也即,所述接收端的身份标识(identification,简称id)。具体而言,所述接收端的标识可以用于唯一确定所述接收端或使用所述接收端的用户。
例如,所述接收端的标识可以是所述用户的手机号码、邮箱、用户名等,还可以是区块链网络为所述接收端分配的唯一标识,所述接收端可以访问所述区块链网络中的区块链节点,并通过所述接收端的标识接收发送端发送给所述接收端的消息。
在一个实施例中,所述发送端可以请求同时向多个接收端发送同一条消息,因而,所述第一请求可以包括所述消息以及多个接收端的标识。
本文中出现的“消息标识”是指:与消息和接收端相关联的标识信息,可以用于唯一确定所述接收端的标识以及所述消息。具体而言,发送给不同接收端的同一消息对应不同的消息标识,也即,对于需要发送至多个接收端的消息,其中每一接收端分别对应一个消息标识。
例如,发送端A需要向接收端B和接收端C发送消息D,则所述接收端B的标识和消息D可以关联消息标识1,所述接收端C的标识和消息D可以关联消息标识2。
在一个实施例中,所述消息标识本身可以体现所述接收端的标识,以便查找。
本文中出现的“消息状态记录表”是指:记录有消息标识关联的消息的消息状态的数据表,其中,消息状态包括已接收和未接收。换言之,在所述消息状态记录表将消息标识和消息的消息状态相关联的存储,能够唯一确定请求发送至特定接收端的特定消息的消息状态。
例如,若前述消息标识1关联的消息D的消息状态为已接收,表明消息D已经被接收端B接收。
又例如,若前述消息标识2关联的消息D的消息状态为未接收,表明消息D尚未被接收端C接收。
在一个实施例中,所述区块链网络中的区块链节点可以根据所述消息状态记录表同步或删除本地存储的消息。
本文中出现的“第一预设存储空间”是指:可被所述区块链网络中的至少一部分区块链节点访问的数据存储空间。例如,所述第一预设存储空间可以是接收所述第一请求的区块链节点本地的存储器。又例如,所述第一预设存储空间还可以是接收所述第一请求的区块链节点耦合的外部服务器(例如,云端服务器,或云端服务器中的一部分存储空间)。
本文中出现的“第二预设存储空间”是指:可被所述区块链网络中的至少一部分区块链节点访问的数据存储空间。例如,所述第二预设存储空间可以是,所述区块链网络中除前述接收到第一请求的区块链节点之外的区块链节点本地的存储器。又例如,所述第一预设存储空间还可以是,所述区块链网络中除前述接收到第一请求的区块链节点之外的区块链节点耦合的外部服务器(例如,云端服务器,或云端服务器中的一部分存储空间)。
在一个实施例中,所述第一预设存储空间和第二预设存储空间可以仅存储消息状态为未接收的消息。也即,在所述消息状态记录表中,当消息标识关联的消息的消息状态被更新为已接收时,该消息标识关联的消息将被各个区块链节点从其预设存储空间删除。例如,当消息标识1关联的消息D的消息状态为已接收时,各区块链节点可以从其预设存储空间删除消息标识1关联的消息D,而若此时消息标识2关联的消息D的消息状态仍为未接收时,各区块链节点在其预设存储空间中仍保留消息标识2关联的消息D。
由此,可以实现一次性消息功能,并且,由于每一个接收端对应一个消息标识,能够确保群发消息时仅成功接收到消息的接收端对应的消息标识会被更新为已接收,避免群发的消息在被接收端成功接收前即被误删除。
本文中出现的“访问凭证”是指:接收端对请求接收的消息具有访问权限的证明凭证。
在一个实施例中,所述第一预设存储空间和/或第二预设存储空间仅允许持有所述接收端的访问凭证的区块链节点访问。所述接收端的访问凭证可以携带于所述第一请求和/或第二请求中。
由此,当所述第一预设存储空间和/或第二预设存储空间为独立于区块链节点的外部存储空间时,通过判断所述区块链节点是否持有所述接收端的访问凭证,可以确定所述区块链节点是否有权访问所述第一预设存储空间和/或第二预设存储空间中存储的特定消息。
进一步地,所述访问凭证可以存储于所述接收端的本地服务器,或其他与所述接收端的本地服务器耦合的外部服务器,如云端服务器等。或者,所述访问凭证也可以离线安全存储并不存在于任何线上,以进一步提高数据安全性,保护数据隐私。例如,所述访问凭证可以在当且仅当被使用时才被接入线上进行使用,以提供一种更加安全、保护隐私的消息通信模式。
本文中出现的“本地消息表”是指:存储于区块链节点本地的数据表,用于记录消息标识和接收端的标识的关联关系。所述本地消息表利于在接收端访问区块链节点时,区块链节点能够及时查找到需要发送给所述接收端的消息。
本文中出现的“消息处理智能合约”是指:专用于本实施例所述消息发送方法和消息接收方法的智能合约,其中,智能合约是指一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议,智能合约可以为区块链节点中执行特定功能的计算机程序。
具体而言,所述区块链网络中的每一区块链节点均运行一智能合约引擎,所述智能合约引擎用于验证和运行智能合约。上层区块链应用可以将智能合约安装部署到所述区块链节点,由所述智能合约引擎来验证运行所述智能合约,将运行结果反馈至区块链应用。
进一步地,所述智能合约在所述区块链网络中的各个区块链节点都是公开透明的,其安装和运行也需要各个区块链节点达成共识。
在本发明实施例中,利用区块链技术的智能合约能力实现可靠的一次性消息的功能。具体而言,通过调用所述消息处理智能合约,确保消息在区块链网络中传递期间,在消息被接收端成功接收后,所述消息必定被所述区块链网络中的所有区块链节点删除。
本文中出现的“业务”包括为了达成特定的目的或实现特定的功能而进行的一系列(即一个或多个,通常为多个)事务的集合。例如,为了实现一次性消息功能而进行的消息通信业务可以包括消息发送事务、消息接收事务等一系列事务。
本文中出现的“区块链账本”是指:由区块链节点上传的区块构成的分布式账本。
在本发明实施例中,所述区块链账本可以包括公共消息账本,所述公共消息账本中的区块可以专用于记录消息的哈希值、消息标识、接收端的标识以及消息状态记录表。其中,所述消息的哈希值可以用于确保存储于第一预设存储空间和/或第二预设存储空间的消息的原始内容不被篡改。
作为一个变化例,所述区块链账本还可以包括消息状态账本,所述消息状态账本可以与前述公共消息账本相独立,并专用于记录所述消息状态记录表。
应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。
本发明实施例的区块链技术方案可以应用于不同的领域中,在本实施例中,以数字内容溯源业务为例进行说明。
图1是本发明实施例的一种用于区块链网络的消息发送方法的流程图。其中,所述区块链网络可以由多个可通信的区块链节点构成,本实施例的方案可以由所述发送端访问的区块链节点执行。
具体地,在本实施例中,所述消息发送方法可以包括:
在101处,执行步骤A,接收第一请求,所述第一请求包含所述消息以及至少一个接收端的标识;
在102处,执行步骤B,根据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;
在103处,执行步骤C,记录各消息标识关联的消息的消息状态;
在104处,执行步骤D,将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;
在105处,执行步骤E,存储所述消息至第一预设存储空间。
在一个实施例中,在执行所述步骤D时,还可以对所述消息的原始内容进行哈希计算,并将计算得到的哈希值一并写入所述区块链账本,以确保存储于所述第一预设存储空间的消息的原始内容不被篡改,确保基于所述区块链网络传送的消息的真实性。
在一个实施例中,所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态可以被一并写入所述公共消息账本。
在一个变化例中,所述至少一个消息标识以及所述至少一个接收端的标识可以被写入所述公共消息账本,所述各消息标识关联的消息的消息状态可以被独立地写入所述消息状态账本。
其中,所述各消息标识关联的消息的消息状态可以以所述消息状态记录表的形式被写入所述区块链账本。
在一个实施例中,所述步骤B可以包括:对于所述至少一个接收端的标识中的每一接收端的标识,对所述接收端的标识和所述消息进行哈希计算,并将计算得到的哈希值作为所述消息和接收端的标识关联的消息标识。
在一个实施例中,参考图2,假设所述第一请求包含消息及两个接收端,则执行所述步骤B可以得到消息标识1和消息标识2,执行所述步骤D所生成的当前区块2可以包括前一区块的哈希值21、当前区块的哈希值22、当前区块的其他元数据23、区块数据24以及区块数据25。
其中,所述当前区块的其他元数据23可以包括:所述当前区块的生成时间等属性信息。
其中,所述区块数据24中记录有消息标识1及消息的原始内容的哈希值;所述区块数据25中记录有消息标识2及消息的原始内容的哈希值。
进一步地,所述区块数据24中还可以记录有所述消息标识1关联的接收端的标识;所述区块数据25中还可以记录有所述消息标识2关联的接收端的标识。
进一步地,所述当前区块2还可以包括所述消息状态记录表。
在一个实施例中,本实施例所述消息发送方法还可以包括:步骤F,在本地消息表中记录所述至少一个消息标识以及所述至少一个接收端的标识的关联信息。由此,当接收端请求接收消息时,所述区块链节点可以快速响应接收端的请求,并根据所述关联信息确定需要发送至接收端的消息的消息标识,进而从所述第一预设存储空间中获取所述消息标识关联的消息并发送至所述接收端。
在一个实施例中,本实施例所述消息发送方法还可以包括:步骤G,同步所述区块链账本,以确定更新后的各消息标识关联的消息的消息状态;步骤H,将所述消息状态更新为已接收的消息标识关联的消息从所述第一预设存储空间删除。
以通过所述消息状态记录表记录各消息标识关联的消息的消息状态为例,具体地,所述消息状态记录表的更新操作可以是,因所述区块链网络中的其他区块链节点更改所述消息状态记录表中的消息状态而触发的操作。
例如,当消息被接收端成功接收后,向所述接收端发送消息的区块链节点可以根据所述消息和接收端的标识确定关联的消息标识,并在所述消息状态记录表中将所述消息标识关联的消息的消息状态更改为已接收,然后将更新后的消息状态记录表写入所述区块链账本。
进一步地,所述区块链网络中除向所述接收端发送消息的区块链节点之外的其他区块链节点,可以执行本实施例所述步骤G,以从所述区块链账本中读取更新后的消息状态记录表,并查找所述更新后的消息状态记录表中是否存在消息状态为已接收的消息的消息标识。
进一步地,当确定存在消息状态为已接收的消息的消息标识时,所述区块链节点可以执行本实施例所述步骤H,以将所述消息标识关联的消息自所述第一预设存储空间或第二预设存储空间删除。所述第一预设存储空间或第二预设存储空间可以为所述区块链节点本地。
在一个实施例中,所述步骤G和步骤H可以由运行于区块链节点的所述消息处理智能合约执行,以确保已被接收端接收的消息会被所述区块链网络中的所有区块链节点删除。
在一个实施例中,在执行所述步骤H之前/同时/之后,还可以执行步骤I,删除所述本地消息表中记录的所述消息标识和接收端的标识的关联信息。
在一个实施例中,所述消息可以是经过所述至少一个接收端的公钥加密处理的,以提高消息的数据安全性。
例如,对于发送至每一接收端的消息,所述发送端可以使用所述接收端的公钥对所述消息进行加密处理,并将加密处理后的消息携带于所述第一请求中发送至所述区块链节点。由此,可以确保存储于所述第一预设存储空间和第二预设存储空间的消息的安全性,并且,确保接收端能够成功解密得到所述消息的原始内容。
在一个实施例中,所述消息可以使用所述发送端的密钥签名,以验证所述消息的真实性。
由此,采用本实施例的方案,基于区块链技术构建消息通信系统,能够实现去中心化的消息通信方案。进一步,所述消息的原始内容并不直接存储于区块链账本,而是通过在区块链账本中指示消息的消息状态来实现各区块链节点间的消息同步。由于没有在区块链账本中记录消息的原始内容,使得消息的私密性得到保障。
进一步地,通过所述消息标识关联的消息的消息状态同步和删除本地存储的消息,以确保区块链网络中的各个区块链节点能够同步其他区块链节点接收到的消息状态为未接收的消息,并真实地删除本地存储的消息状态为已接收的消息。由此,可以可靠地实现一次性消息的功能。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时可以执行以下步骤:A.接收第一请求,所述第一请求包含消息以及至少一个接收端的标识;B.据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;C.记录各消息标识关联的消息的消息状态;D.将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;E.存储所述消息至第一预设存储空间。
在一个实施例中,所述处理器还可以执行以下步骤:F.在本地消息表中记录所述至少一个消息标识以及所述至少一个接收端的标识的关联关系。
在一个实施例中,所述处理器还可以执行以下步骤:G.同步所述区块链账本,以确定更新后的各消息标识关联的消息的消息状态;H.将所述消息状态更新为已接收的消息标识关联的消息从所述第一预设存储空间删除。
在一个实施例中,所述消息可以是经过所述至少一个接收端的公钥加密处理的。
关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图1中的相关描述,这里不再赘述。
图3是本发明实施例的一种用于区块链网络的消息接收方法的流程图。本实施例的方案可以由所述接收端访问的区块链节点执行。
具体地,在本实施例中,所述消息接收方法可以包括:
在201处,执行步骤A,从区块链账本中读取消息的至少一个消息标识、至少一个接收端的标识以及各消息标识关联的消息的消息状态,其中,每一接收端对应一个消息标识;
在202处,执行步骤B,对于消息状态为未接收的消息标识关联的消息,从所述消息标识的生成节点获取所述消息;
在203处,执行步骤C,向所述至少一个接收端的标识关联的至少一个接收端发送所述消息。
在一个实施例中,所述第二请求可以使用所述接收端的密钥签名,所述第二请求中还可以包含由所述接收端的证书,以供所述区块链节点验证所述接收端的身份。
例如,所述接收端可以预先将自身证书发送至所述区块链节点,响应于接收到所述第二请求,所述区块链节点可以从所述第二请求中提取所述接收端的证书和签名,通过所述接收端的证书验证所述签名是否正确,同时比较接收到的第二请求中的证书和接收端预先发送到区块链节点的证书是否一致,以判断所述第二请求是否是由所述接收端签名的。
在一个实施例中,所述区块链节点在从所述生成节点获得所述消息后,即可执行所述步骤C,以实时地向所述至少一个接收端发送所述消息。
例如,所述至少一个接收端可以实时地访问所述区块链网络中的相同或不同区块链节点,对于被访问的区块链节点,所述区块链节点在执行所述步骤B以从所述生成节点获取所述消息后,可以向当前正与自己进行数据通信的一个或多个接收端发送所述消息。
在另一个实施例中,所述步骤B可以进一步包括:步骤B1,对于消息状态为未接收的消息标识关联的消息,如果该消息标识未记录在本地消息表中,则从所述生成节点获取所述消息并存储至第二预设存储空间,所述本地消息表记录有所述至少一个消息标识以及所述至少一个接收端的标识的关联信息。
例如,所述第二预设存储空间可以为所述区块链节点本地。
具体地,在本实施例中,所述本地消息表为执行所述步骤B1的区块链节点本地记录的本地消息表。
在一个典型的应用场景中,所述接收端可以是周期性地访问所述区块连网络的,则在所述接收端访问所述区块链网络之前,所述区块链网络中的各区块链节点可以将从所述生成节点同步到的消息先存储在所述第二预设存储空间,并在所述接收端访问所述区块链节点时,执行所述步骤C,以向所述接收端发送所述消息。
在本场景中,在所述接收端访问所述区块链节点之前,所述区块链节点可能存储有多个需要发送至所述接收端的消息,则在所述接收端访问所述区块链节点后,所述区块链节点可以根据所述本地消息表确定需要发送至所述接收端的所有消息的消息标识,进而从所述第二预设存储空间中获取所有消息的原始内容并一并发送至所述接收端。
在一个实施例中,在执行所述步骤B1之后,并在与所述接收端建立通信连接后,所述区块链节点可以主动执行所述步骤C,以及时地将所述消息发送至所述接收端。
在一个变化例中,所述步骤C也可以是响应于所述接收端的请求触发的。
具体地,所述步骤C可以进一步包括:步骤C1,接收第二请求,所述第二请求包含接收端的标识;步骤C2,根据所述接收端的标识查找所述本地消息表,以确定所述接收端的标识关联的消息;步骤C3,将确定的消息发送至所述接收端。
在一个实施例中,在执行所述步骤C之后,所述消息接收方法还可以包括:步骤D,对于已发送至接收端的消息,确定所述消息和所述接收端的标识关联的消息标识,更新所述消息标识关联的消息的消息状态为已接收并写入所述区块链账本。
例如,可以基于所述更新后的消息状态记录表生成一个单独的区块添加至所述区块链账本。
又例如,当所述更新后的消息状态记录表较小时,可以与其他需要写入区块链账本的数据一起生成区块并添加至所述区块链账本。
再例如,当所述更新后的消息状态记录表较大时,所述更新后的消息状态记录表可以占据多个区块。
进一步地,所述消息接收方法还可以包括:步骤E,将所述消息状态更新为已接收的消息标识关联的消息从第二预设存储空间删除。由此,可以确保已经被接收端接收的消息真实地被所述区块链节点删除。
由此,采用本实施例的方案,基于区块链技术构建消息通信系统,通过区块链账本中的消息状态使得区块链网络中的各区块链节点能够同步其他区块链节点接收到的消息,并将同步到的消息发送至接收端,从而实现去中心化的消息通信方案。进一步,由于所述消息的原始内容并不直接存储在区块链账本,使得消息的私密性得到保障。
进一步地,通过所述消息标识关联的消息的消息状态同步和删除本地存储的消息,以确保区块链网络中的各个区块链节点能够同步其他区块链节点接收到的消息状态为未接收的消息,并真实地删除本地存储的消息状态为已接收的消息。由此,可以可靠地实现一次性消息的功能。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时可以执行以下步骤:A.从区块链账本中读取消息的至少一个消息标识、至少一个接收端的标识以及各消息标识关联的消息的消息状态,其中,每一接收端对应一个消息标识;B.对于消息状态为未接收的消息标识关联的消息,从所述消息标识的生成节点获取所述消息;C.向所述至少一个接收端的标识关联的至少一个接收端发送所述消息。
在一个实施例中,所述步骤B可以进一步包括:B1.对于消息状态为未接收的消息标识关联的消息,如果该消息标识未记录在本地消息表中,则从所述生成节点获取所述消息并存储至第二预设存储空间,所述本地消息表记录有所述至少一个消息标识以及所述至少一个接收端的标识的关联信息。
在一个实施例中,所述步骤C可以进一步包括:C1.接收第二请求,所述第二请求包含接收端的标识;C2.根据所述接收端的标识查找所述本地消息表,以确定所述接收端的标识关联的消息;C3.将确定的消息发送至所述接收端。
在一个实施例中,所述处理器还可以执行以下步骤:D.对于已发送至接收端的消息,确定所述消息和所述接收端的标识关联的消息标识,更新所述消息标识关联的消息的消息状态为已接收并写入所述区块链账本。
在一个实施例中,所述处理器还可以执行以下步骤:E.将所述消息状态更新为已接收的消息标识关联的消息从第二预设存储空间删除。
在一个实施例中,所述消息可以是经过所述至少一个接收端的公钥加密处理的。
关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图3中的相关描述,这里不再赘述。
在一个实施例中,所述计算设备可以为个人计算机、智能手机、服务器等。
在一个典型的应用场景中,参考图4,假设所述区块链网络(图未示)包括区块链节点1和区块链节点2,所述区块链节点1和区块链节点2均安装部署有消息处理智能合约41。
具体地,发送端A可以执行操作s1,以访问区块链节点1并向所述区块链节点1发送所述第一请求,所述第一请求包含消息D、接收端B的标识和接收端C的标识。其中,所述区块链节点1可以是所述区块链网络中距离所述发送端A最近的区块链节点。
进一步地,所述区块链节点1执行上述图1所示实施例的方案,通过智能合约引擎42在沙盒43中验证并运行所述消息处理智能合约41。
具体地,所述消息处理智能合约41接收到所述第一请求后,针对所述消息D和接收端B的标识生成消息标识1,针对消息D和接收端C的标识生成消息标识2。
更为具体地,所述消息处理智能合约41将所述消息D的哈希值、所述消息标识1、所述消息标识2写入公共消息账本44。
表1消息状态记录表
消息标识 消息状态
消息标识1 未接收
消息标识2 未接收
同时,如表1所示,所述消息处理智能合约41还将所述消息标识1及其关联的消息D的消息状态,以及消息标识2及其关联的消息D的消息状态添加至消息状态记录表,并设置两个所述消息状态均为未接收。并将所述消息状态记录表同样可以写入所述公共消息账本44。
进一步地,所述消息处理智能合约41可以将所述消息D存储于所述第一预设存储空间,并在本地消息表47中记录所述消息标识1、消息标识2与接收端B的标识和接收端C的标识的关联信息。在本场景中,所述第一预设存储空间可以为所述区块链节点1本地的存储器。
表2本地消息表
进一步地,所述本地消息表47可以如上述表2所示。
在一个变化例中,为便于查找,所述表2还可以相应的增加一列,以记录各消息标识与消息的原始内容的关联关系。例如,可以将消息标识与消息在第一预设存储空间内的存储地址相关联,以便后续查找。
进一步地,在本场景中,区块链节点2可以执行上述图3所示实施例的方案,通过智能合约引擎45在沙盒46中验证并运行所述消息处理智能合约41,以读取所述公共消息账本44,从而获取新增的消息和至少一个接收端的标识及消息标识。
具体地,运行于区块链节点2的消息处理智能合约41从所述公共消息账本44中读取所述消息状态记录表,假设所述消息状态记录表中记录有所述区块链节点2的本地消息表48所没有的消息标识1和消息标识2,则所述消息处理智能合约41向所述区块链节点1同步所述消息标识1和消息标识2各自关联的消息D的原始内容,并将所述消息标识1和接收端B的关联信息、消息标识2和接收端C的关联信息写入所述区块链节点2的本地消息表48中。更新后的本地消息表48的内容也可以如表2所示。
其中,所述消息D的原始内容可以存储于所述第二预设存储空间。在本场景中,所述第二预设存储空间可以为所述区块链节点2本地的存储器。
进一步地,接收端B在查询是否有新的消息时,可以就近访问区块链节点2,并向所述区块链节点2的消息处理智能合约41发送第二请求。
进一步地,响应于接收到所述第二请求,所述消息处理智能合约41可以根据所述接收端B的标识查询所述区块链节点2的本地消息表48,并执行操作s2,以将查询到的消息D发送至接收端B。
表3更新后的消息状态记录表
进一步地,所述区块链节点2的消息处理智能合约41可以将所述消息状态记录表中消息标识1关联的消息D的消息状态更新为已接收,如表3所示,并将本次更新事件写入所述公共消息账本44。
表4本地消息表
消息标识 接收端的标识 消息内容
消息标识2 接收端C的标识 消息D
同时,所述区块链节点2的消息处理智能合约41可以删除所述区块链节点2本地存储的消息标识1关联的消息D的原始内容。也即,此时,所述区块链节点2的本地消息表48如表4所示,其中仅包含所述消息标识2及其关联的消息D的原始内容。
进一步地,所述区块链节点1同步到更新后的公共消息账本44后,调用所述区块链节点1的消息处理智能合约41。进一步地,所述消息处理智能合约41确定所述更新后的消息状态记录表中所述消息标识1关联的消息D的消息状态已更新为已接收,则所述区块链节点1的消息处理智能合约41删除所述区块链节点1本地存储的消息标识1关联的消息D的原始内容。也即,此时,所述区块链节点1的本地消息表47也如表4所示,其中仅包含所述消息标识2及其关联的消息D的原始内容。
由此,采用本实施例的方案,能够充分利用区块链技术的智能合约能力,实现可靠地一次性消息功能,确保消息在区块链网络中传递时,在消息接收后,一定会从区块链网络的所有区块链节点删除。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1和图3所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(Non-Volatile)存储器或者非瞬态(Non-Transitory)存储器等计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (21)

1.一种用于区块链网络的消息发送方法,其特征在于,包括:
A.接收第一请求,所述第一请求包含所述消息以及至少一个接收端的标识;
B.根据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;
C.记录各消息标识关联的消息的消息状态;
D.将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;
E.存储所述消息至第一预设存储空间。
2.根据权利要求1所述的消息发送方法,其特征在于,还包括:
F.在本地消息表中记录所述至少一个消息标识以及所述至少一个接收端的标识的关联信息。
3.根据权利要求1所述的消息发送方法,其特征在于,还包括:
G.同步所述区块链账本,以确定更新后的各消息标识关联的消息的消息状态;
H.将所述消息状态更新为已接收的消息标识关联的消息从所述第一预设存储空间删除。
4.根据权利要求1至3中任一项所述的消息发送方法,其特征在于,所述消息是经过所述至少一个接收端的公钥加密处理的。
5.一种计算设备,其特征在于,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:
A.接收第一请求,所述第一请求包含消息以及至少一个接收端的标识;
B.根据所述消息和至少一个接收端的标识生成至少一个消息标识,其中,每一接收端对应一个消息标识;
C.记录各消息标识关联的消息的消息状态;
D.将所述至少一个消息标识、所述至少一个接收端的标识以及各消息标识关联的消息的消息状态写入区块链账本;
E.存储所述消息至第一预设存储空间。
6.根据权利要求5所述的计算设备,其特征在于,所述处理器还执行以下步骤:
F.在本地消息表中记录所述至少一个消息标识以及所述至少一个接收端的标识的关联关系。
7.根据权利要求5所述的计算设备,其特征在于,所述处理器还执行以下步骤:
G.同步所述区块链账本,以确定更新后的各消息标识关联的消息的消息状态;
H.将所述消息状态更新为已接收的消息标识关联的消息从所述第一预设存储空间删除。
8.根据权利要求5至7中任一项所述的计算设备,其特征在于,所述消息是经过所述至少一个接收端的公钥加密处理的。
9.一种用于区块链网络的消息接收方法,其特征在于,包括:
A.从区块链账本中读取消息的至少一个消息标识、至少一个接收端的标识以及各消息标识关联的消息的消息状态,其中,每一接收端对应一个消息标识;
B.对于消息状态为未接收的消息标识关联的消息,从所述消息标识的生成节点获取所述消息;
C.向所述至少一个接收端的标识关联的至少一个接收端发送所述消息。
10.根据权利要求9所述的消息接收方法,其特征在于,所述步骤B进一步包括:
B1.对于消息状态为未接收的消息标识关联的消息,如果该消息标识未记录在本地消息表中,则从所述生成节点获取所述消息并存储至第二预设存储空间,所述本地消息表记录有所述至少一个消息标识以及所述至少一个接收端的标识的关联信息。
11.根据权利要求10所述的消息接收方法,其特征在于,所述步骤C进一步包括:
C1.接收第二请求,所述第二请求包含接收端的标识;
C2.根据所述接收端的标识查找所述本地消息表,以确定所述接收端的标识关联的消息;
C3.将确定的消息发送至所述接收端。
12.根据权利要求9所述的消息接收方法,其特征在于,还包括:
D.对于已发送至接收端的消息,确定所述消息和所述接收端的标识关联的消息标识,更新所述消息标识关联的消息的消息状态为已接收并写入所述区块链账本。
13.根据权利要求12所述的消息接收方法,其特征在于,还包括:
E.将所述消息状态更新为已接收的消息标识关联的消息从第二预设存储空间删除。
14.根据权利要求9至13中任一项所述的消息接收方法,其特征在于,所述消息是经过所述至少一个接收端的公钥加密处理的。
15.一种计算设备,其特征在于,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:
A.从区块链账本中读取消息的至少一个消息标识、至少一个接收端的标识以及各消息标识关联的消息的消息状态,其中,每一接收端对应一个消息标识;
B.对于消息状态为未接收的消息标识关联的消息,从所述消息标识的生成节点获取所述消息;
C.向所述至少一个接收端的标识关联的至少一个接收端发送所述消息。
16.根据权利要求15所述的计算设备,其特征在于,所述步骤B进一步包括:B1.对于消息状态为未接收的消息标识关联的消息,如果该消息标识未记录在本地消息表中,则从所述生成节点获取所述消息并存储至第二预设存储空间,所述本地消息表记录有所述至少一个消息标识以及所述至少一个接收端的标识的关联信息。
17.根据权利要求16所述的计算设备,其特征在于,所述步骤C进一步包括:
C1.接收第二请求,所述第二请求包含接收端的标识;
C2.根据所述接收端的标识查找所述本地消息表,以确定所述接收端的标识关联的消息;
C3.将确定的消息发送至所述接收端。
18.根据权利要求15所述的计算设备,其特征在于,所述处理器还执行以下步骤:
D.对于已发送至接收端的消息,确定所述消息和所述接收端的标识关联的消息标识,更新所述消息标识关联的消息的消息状态为已接收并写入所述区块链账本。
19.根据权利要求18所述的计算设备,其特征在于,所述处理器还执行以下步骤:
E.将所述消息状态更新为已接收的消息标识关联的消息从第二预设存储空间删除。
20.根据权利要求15至19中任一项所述的计算设备,其特征在于,所述消息是经过所述至少一个接收端的公钥加密处理的。
21.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至4任一项所述方法或权利要求9至14任一项所述方法的步骤。
CN201811541047.3A 2018-12-17 2018-12-17 用于区块链网络的消息发送和接收方法、存储介质、计算设备 Pending CN109617787A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811541047.3A CN109617787A (zh) 2018-12-17 2018-12-17 用于区块链网络的消息发送和接收方法、存储介质、计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811541047.3A CN109617787A (zh) 2018-12-17 2018-12-17 用于区块链网络的消息发送和接收方法、存储介质、计算设备

Publications (1)

Publication Number Publication Date
CN109617787A true CN109617787A (zh) 2019-04-12

Family

ID=66009573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811541047.3A Pending CN109617787A (zh) 2018-12-17 2018-12-17 用于区块链网络的消息发送和接收方法、存储介质、计算设备

Country Status (1)

Country Link
CN (1) CN109617787A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131259A (zh) * 2019-12-26 2020-05-08 罗碧霞 一种基于多方合营项目管理模式的账目共享系统
CN112671745A (zh) * 2020-12-17 2021-04-16 思创数码科技股份有限公司 一种数据收发方法、发送端及接收端

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101656921A (zh) * 2008-01-09 2010-02-24 华为技术有限公司 即时消息传递状态通知方法、网元设备及网络系统
CN102986173A (zh) * 2011-07-12 2013-03-20 华为技术有限公司 消息状态设置方法和cpm业务服务器
CN107220130A (zh) * 2017-05-12 2017-09-29 北京众享比特科技有限公司 一种在区块链的节点处实现的信息共识方法、装置及系统
CN108550037A (zh) * 2018-04-11 2018-09-18 北京知金链网络技术有限公司 基于区块链的文件处理方法和装置
CN108665372A (zh) * 2018-04-28 2018-10-16 腾讯科技(深圳)有限公司 基于区块链的信息处理、查询、储存方法和装置
US10110520B1 (en) * 2015-12-18 2018-10-23 Wickr Inc. Decentralized authoritative messaging
CN108833255A (zh) * 2018-04-27 2018-11-16 深圳市元征科技股份有限公司 基于区块链的通信方法、系统及区块链节点设备
CN108881354A (zh) * 2017-05-09 2018-11-23 腾讯科技(深圳)有限公司 一种推送信息存储方法、装置、服务器和计算机存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101656921A (zh) * 2008-01-09 2010-02-24 华为技术有限公司 即时消息传递状态通知方法、网元设备及网络系统
CN102986173A (zh) * 2011-07-12 2013-03-20 华为技术有限公司 消息状态设置方法和cpm业务服务器
US10110520B1 (en) * 2015-12-18 2018-10-23 Wickr Inc. Decentralized authoritative messaging
CN108881354A (zh) * 2017-05-09 2018-11-23 腾讯科技(深圳)有限公司 一种推送信息存储方法、装置、服务器和计算机存储介质
CN107220130A (zh) * 2017-05-12 2017-09-29 北京众享比特科技有限公司 一种在区块链的节点处实现的信息共识方法、装置及系统
CN108550037A (zh) * 2018-04-11 2018-09-18 北京知金链网络技术有限公司 基于区块链的文件处理方法和装置
CN108833255A (zh) * 2018-04-27 2018-11-16 深圳市元征科技股份有限公司 基于区块链的通信方法、系统及区块链节点设备
CN108665372A (zh) * 2018-04-28 2018-10-16 腾讯科技(深圳)有限公司 基于区块链的信息处理、查询、储存方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131259A (zh) * 2019-12-26 2020-05-08 罗碧霞 一种基于多方合营项目管理模式的账目共享系统
CN111131259B (zh) * 2019-12-26 2023-12-22 北京亿邦德利智能科技有限公司 一种基于多方合营项目管理模式的账目共享系统
CN112671745A (zh) * 2020-12-17 2021-04-16 思创数码科技股份有限公司 一种数据收发方法、发送端及接收端

Similar Documents

Publication Publication Date Title
US11461773B2 (en) Blockchain-based node management methods and apparatuses
CN107851253B (zh) 合约合意方法、合意验证方法、合约合意系统、合意验证装置、合约合意装置、计算机可读记录介质
EP4195605A1 (en) Data processing method and apparatus based on blockchain network, computer device and computer readable storage medium
WO2017170679A1 (ja) プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
CN108696358B (zh) 数字证书的管理方法、装置、可读存储介质及服务终端
CN111934996B (zh) 消息传输方法及装置
CN113421097B (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN112003703A (zh) 一种跨链发送可认证消息的方法和装置
JP2017200196A (ja) プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
WO2015060157A1 (ja) 属性情報提供方法および属性情報提供システム
CN109491996A (zh) 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质
CN112686668A (zh) 联盟链跨链系统及方法
CN113269546B (zh) 一种基于区块链的用户身份证照系统及方法
CN113328997B (zh) 联盟链跨链系统及方法
CN108768966A (zh) 注册节点和成员节点以及节点注册、离开、身份认证方法
CN109150861B (zh) 区块链网络通信系统
CN109951482A (zh) 用户终端及其区块链域名解析方法
CN109819068A (zh) 用户终端及其区块链域名解析方法
CN109743160A (zh) 防止Hook串改的安卓设备唯一标识获取方法和装置
JP4997769B2 (ja) 暗号通信システム、鍵共有方法、鍵提供装置
CN109617787A (zh) 用于区块链网络的消息发送和接收方法、存储介质、计算设备
KR20200097773A (ko) 블록체인 기반 신원 시스템
CN113259464B (zh) 组建区块链子网的方法和区块链系统
CN113259454B (zh) 跨链交互方法及装置
CN113570465A (zh) 基于pos共识机制的区块链签名处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190412

WD01 Invention patent application deemed withdrawn after publication