CN111984295B - 一种区块链软件全网更新方法、存储介质及电子设备 - Google Patents

一种区块链软件全网更新方法、存储介质及电子设备 Download PDF

Info

Publication number
CN111984295B
CN111984295B CN202010853014.3A CN202010853014A CN111984295B CN 111984295 B CN111984295 B CN 111984295B CN 202010853014 A CN202010853014 A CN 202010853014A CN 111984295 B CN111984295 B CN 111984295B
Authority
CN
China
Prior art keywords
software
updating
network
time
update
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.)
Active
Application number
CN202010853014.3A
Other languages
English (en)
Other versions
CN111984295A (zh
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.)
Dark Chain Technology Shenzhen Co ltd
Original Assignee
Dark Chain Technology Shenzhen 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 Dark Chain Technology Shenzhen Co ltd filed Critical Dark Chain Technology Shenzhen Co ltd
Priority to CN202010853014.3A priority Critical patent/CN111984295B/zh
Publication of CN111984295A publication Critical patent/CN111984295A/zh
Application granted granted Critical
Publication of CN111984295B publication Critical patent/CN111984295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及区块链技术领域,公开一种区块链软件全网更新方法、存储介质及电子设备。其中,方法包括:全网发送软件更新通知,软件更新通知包括访问地址、本地更新时间及网络更新时间;当同步更新已共识且包含软件更新通知的目标区块时,根据访问地址,下载目标版本软件至本地;根据本地更新时间,暂停当前工作,将本地的原有版本软件更新为目标版本软件;根据网络更新时间,在目标版本软件下恢复当前工作。一方面,通过软件更新通知协调与组织区块链网络的软件更新,各个区块链节点步调一致,提高版本更新的一致性,避免区块链网络存在不同软件版本的问题。另一方面,本方法能够链上自动化更新区块链软件,避免人为过度参与,提高软件更新效率。

Description

一种区块链软件全网更新方法、存储介质及电子设备
技术领域
本发明涉及区块链技术领域,具体涉及一种区块链软件全网更新方法、存储介质及电子设备。
背景技术
目前区块链系统与非区块链系统两者的系统软件更新有着很大差异。非区块链系统软件更新非常容易,只要下载新版本覆盖旧版本即可使用。但是区块链系统软件的更新涉及的不仅仅是使用者自身节点的软件拷贝,更涉及区块链系统中所有参与共识的节点上的软件拷贝。
由于网络的异步性,在目前手动更新的环境下很难做到全网节点上的软件同时更新,如果全网节点的软件发生版本的异化,它们在进行共识记账的时候就会发生分歧,导致区块链形成两个版本共存。
发明内容
本发明实施例的一个目的旨在提供一种区块链软件全网更新方法、存储介质及电子设备,其能够有效地实现区块链软件的更新。
在第一方面,本发明实施例提供一种区块链软件全网更新方法,包括:
全网发送软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
当同步更新已共识且包含所述软件更新通知的目标区块时,根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
在第二方面,本发明实施例提供一种区块链软件全网更新方法,包括:
获取软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
对所述软件更新通知作背书认证,并将已背书的软件更新通知发送至区块链网络中的共识节点,以使所述共识节点对所述软件更新通知作打包与共识;
当同步更新已共识且包含所述软件更新通知的目标区块时,根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
在第三方面,本发明实施例提供一种区块链软件全网更新方法,包括:
获取软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
对所述软件更新通知打包成目标区块,共识并上链所述目标区块;
根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
在第四方面,本发明实施例提供一种区块链软件全网更新方法,包括:
监听软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
当同步更新已共识且包含所述软件更新通知的目标区块时,根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
在第五方面,本发明实施例提供一种非暂时性计算机可读存储介质,配置有能够由一个或多个处理器执行的指令,以使所述一个或多个处理器执行所述的区块链软件全网更新方法。
在第六方面,本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使电子设备执行所述的区块链软件全网更新方法。
在第七方面,本发明实施例提供一种电子设备,其特征在于,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的区块链软件全网更新方法。
本发明与现有技术相比至少具有以下有益效果:在本发明实施例提供的区块链软件全网更新方法中,首先,全网发送软件更新通知,软件更新通知包括共识内容,共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间。其次,当监听到软件更新通知打包成目标区块并上链至区块链网络,根据访问地址,下载目标版本软件至本地,并暂停当前工作;再次,根据本地更新时间,将本地的原有版本软件更新为目标版本软件;最后,根据网络更新时间,在目标版本软件下恢复当前工作。一方面,通过软件更新通知协调与组织区块链网络的软件更新,各个区块链节点步调一致,提高版本更新的一致性,避免同一区块链网络存在不同软件版本的问题。另一方面,本方法能够链上自动化更新区块链软件,避免人为过度参与,提高软件更新效率,并且还容易维护更新。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种区块链软件全网更新系统的架构示意图;
图2是本发明实施例提供的区块链软件全网更新的事件流示意图;
图3是本发明实施例提供的区块链软件全网更新系统中各个节点之间的交互流程图;
图4是本发明实施例提供的一种区块链软件全网更新方法的流程示意图;
图5是本发明另一实施例提供的一种区块链软件全网更新方法的流程示意图;
图6是本发明又另一实施例提供的一种区块链软件全网更新方法的流程示意图;
图7是本发明又另一实施例提供的一种区块链软件全网更新方法的流程示意图;
图8是本发明实施例提供的一种电子设备的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
本发明实施例提供的区块链软件全网更新方法,可以在任何合适类型、具有运算能力的电子设备中执行,例如服务器、台式计算机、智能手机、平板电脑以及其他电子产品中。其中,此处的服务器可以是一个物理服务器或者多个物理服务器虚拟而成的一个逻辑服务器。服务器也可以是多个可互联通信的服务器组成的服务器群,且各个功能模块可分别分布在服务器群中的各个服务器上。
本发明实施例提供的区块链网络包括公有区块链(Public Block Chains)、联合区块链(Consortium Block Chains)及私有区块链 (Private Block Chains)等。
本发明实施例提供一种区块链软件全网更新系统。请一并参阅图1 与图2,区块链软件全网更新系统100包括代理节点11、预言机12、共识节点13、权威节点14及普通节点15,其中,代理节点11、共识节点 13、权威节点14及普通节点15任意两个节点之间支持点对点通讯 (Point to point communication,P2P),并且,代理节点11、共识节点13、权威节点14及普通节点15皆可以作为区块链系统中的区块链节点,各自在区块链系统中承担不同的责任,共同维护区块链系统的工作、稳定及安全。预言机12作为互联网节点,代理节点11、共识节点 13、权威节点14及普通节点15都可以通过互联网协议访问预言机12。
代理节点11用于配合完成区块链软件的更新以及一些作业活动,例如,代理节点11可以认证预言机12或共识节点13的身份、下发挖矿任务、记录共识节点13的工作量、根据工作量给共识节点13分配新币奖励等等。
在本实施例中,代理节点11可以将目标版本软件上载至预言机12,所述目标版本软件为需要各个区块链节点更新的区块链版本软件。
可以理解的是,出于业务需要,代理节点11还可以承担其它功能的角色,在此不赘述。
预言机12用于连接区块链网络与外部互联网,其可被区块链社区认证,因此,预言机12具有权威性,可以为各个区块链节点提供可行数据,各个区块链节点通过互联网协议访问预言机12,从预言机12下载数据。在本实施例中,由于代理节点11将目标版本软件上载到预言机12,后续各个区块链节点更新自身版本软件时,可以直接访问预言机 12,从预言机12中下载目标版本软件至本地缓存中,以便后续更新,因此,配置预言机12,其能够提高区块链软件更新的自动化服务效率。
在一些实施例中,为了防止预言机12遭受黑客攻击而篡改目标版本软件,代理节点11可以根据加密算法,将目标版本软件生成防篡改校验码,并将防篡改校验码存储于预言机12。后续,各个区块链节点从预言机12下载目标版本软件后,可以根据防篡改校验码,验证目标版本软件是否已被篡改,若被篡改,则区块链节点丢弃已下载的目标版本软件。若未被篡改,则区块链节点根据目标版本软件完成更新。
可以理解的是,区块链软件全网更新并不一定需要预言机12的参与,例如,代理节点11把目标版本软件放置在本地,并将自身地址广播至区块链网络,每个区块链节点根据代理节点11的地址,便可以从代理节点11下载目标版本软件至本地,因此,在一些实施例中,预言机12这一角色可被省略。
可以理解的是,预言机12可以为一台服务器,亦可以为两台以上组成的服务器群,在此不对预言机12的数量及构成作任何限定。
共识节点13用于对各类交易信息作共识、打包及记账,在一些实施例中,共识节点13在代理节点11完成注册后,可以在区块链网络中进行挖矿工作。
可以理解的是,本实施例提供的共识节点13可以支持任意合适的共识算法,共识算法包括工作量证明(Proof of Work,PoW)、权益证明 (Proof of Stake,POS)、股份授权证明(Delegate proof of Stake, DPoS)、实用拜占庭容错(practical Byzantine FaultTolerance,PBFT)、授权拜占庭容错(Delegated Byzantine Fault Tolerance,DBFT)等等。
权威节点14主要用于对代理节点11发送的各类通知作背书认证,权威节点14按照预设规则,将背书认证后的各类通知广播至区块链网络。通常,权威节点14可以由各个区块链节点选举产生,亦可以由其它方式所产生。
在本实施例中,由于权威节点14已对代理节点11的软件更新通知作背书,并且软件更新通知包括目标版本软件的访问地址,因此,权威节点14的参与能够提高目标版本软件的代码可信度与更新过程的安全性。
可以理解的是,在一些实施例中,区块链软件全网更新并不一定需要权威节点14的参与,例如,代理节点11直接将软件更新通知广播至区块链网络,由于代理节点11往往是区块链社区的信任节点,因此,各个区块链节点亦会信任代理节点11发送的软件更新通知,因此,在一些实施例中,权威节点14这一角色可被省略。
普通节点15指具有记账功能的全节点,可以发起账本交易及记录区块,并且还可以从其它节点同步记录区块数据,更新本地账本。
在本实施例中,普通节点15同其它区块链节点一样,根据访问地址,从预言机12下载目标版本软件,并根据目标版本软件完成更新。
下面结合图3,详细阐述各个区块链节点更新区块链软件的过程,如下所述:
S31、代理节点将目标版本软件与防篡改校验码上载至预言机;
在本实施例中,代理节点授权认证预言机的安全性,通常的,将目标版本软件上载至预言机之前,整个区块链社区对此次软件版本更新事件都已达成共识,亦即,区块链社区中各个区块链节点都认可目标版本软件的更新事件,其中,区块链社区的共识内容包括:更新本身行为信息、目标版本软件全代码、访问协议、访问方式、访问时间、代理节点、通知发起时间、权威节点、本地更新时间及网络更新时间。其中,代理节点为通知发起人,权威节点为背书人。
为了提高更新自动化服务,代理节点可以在更新之前,将目标版本软件存储于预言机。为了防止预言机遭受攻击而使得目标版本软件被恶意篡改,于是,代理节点根据加密算法,将目标版本软件生成防篡改校验码,以便后续其它区块链节点根据防篡改校验码,校验目标版本软件是否被篡改。可以理解的是,加密算法可以为任意合适算法,例如哈希算法等,
S32、代理节点向全网节点发送软件更新通知;
在本实施例中,全网节点为区块链网络中任一角色的区块链节点,例如,全网节点包括代理节点、权威节点、共识节点或普通节点,为了描述方便,本文用了全网节点统称代理节点、权威节点、共识节点或普通节点,可以理解的是,全网节点的具体含义可以结合本实施例所公开的内容及上下文含义来限定。
如前所述,由于区块链社区对本次更新事件达成共识,考虑到网络的异步性,为了能够更加有效地协调一致各个全网节点的更新节奏,在一些实施例中,代理节点监听到通知发起时间到达时,发送软件更新通知至区块链网络,于是,全网节点便可以监听到软件更新通知。实际上,区块链社区对本次更新事件达成共识时,在通知发起时间到达之前,各个区块链节点的上线率会更高,因此,全网节点会更多,实现目标版本软件更新的区块链节点会更多。
在一些实施例中,代理节点监听到通知发起时间到达时,将共识内容与签名封装成软件更新通知,并将软件更新通知至区块链网络。其中,签名用于验证软件更新通知的合法性,例如,全网节点收到软件更新通知,于是使用代理节点的公钥验证签名,如果签名合法,则全网节点认为软件更新通知确实为合法的代理节点发送的。如果签名非法,则全网节点认为软件更新通知属于非法节点发送的,因此,全网节点丢弃收到的软件更新通知。
在一些实施例中,通知发起时间由指定未来区块的本地上链时间相加第一时间阈值得到,其中,指定未来区块为在发送软件更新通知后,在指定区块高度被打包上链的区块,例如,指定区块高度为100、200、 800等等。当代理节点监听到指定未来区块上链时,开始监听通知发起时间是否到达,若到达,则全网发送软件更新通知,例如,区块链社区约定:在第800个区块上链时,经过0.1毫秒后,代理节点应该全网发送软件更新通知,于是,代理节点监听到第800个区块上链后,开始监听是否已经历时0.1毫秒了,若是,则全网发送软件更新通知。可以理解的是,第一时间阈值由用户自定义,例如可以为0,亦可以为其它时间值。
由于指定未来区块属于区块链的一个区块,区块链具有去中心化、公平透明的特性,因此,相对而言,指定未来区块的上链时间是确定的和预料到的,不会被恶意随便更改,采用指定未来区块来约定通知发起时间,其能够更加有效地将各个区块链节点的步调节奏协同一致,并且因为永久记录,可以囊括未参与社区链下共识的用户和节点,新用户等,使全网在未来时间轴上永远保持一致。
S33、权威节点为软件更新通知作背书认证;
在一些实施例中,代理节点可以通过P2P网络将软件更新通知发送给权威节点,或者,权威节点可以通过P2P网络监听到软件更新通知。
权威节点收到软件更新通知后,阅读软件更新通知,并检验软件更新通知的合法性,若合法,权威节点对软件更新通知作签名处理,并将签名后的软件更新通知按照规则依次广播至区块链网络。
S34、共识节点监听到已背书的软件更新通知;
S35、共识节点对软件更新通知打包成目标区块,共识并上链目标区块;
在本实施例中,共识节点从交易池收集区块链网络中的交易信息,其中,软件更新通知包括更新通知标识,所述更新通知标识用于指示软件更新通知作为一笔特殊交易信息,共识节点判断软件更新通知是否满足打包条件,如果满足,则将软件更新通知加入打包序列,并验证软件更新通知是否合法,若合法,共识节点将软件更新通知打包成目标区块,并对目标区块执行共识过程,共识通过后,共识节点将目标区块上链并记在账本中。后续,其它节点可以通过访问共识节点,将目标区块同步更新在本地账本中。
在一些实施例中,权威节点的数量为多个,亦即,多个权威节点组成长老团,每个权威节点都可以对软件更新通知作背书认证,于是,共识节点对软件更新通知打包成目标区块时,可以收到多个软件更新通知。于是,共识节点统计由权威节点背书过的软件更新通知的数量,判断数量是否满足打包触发条件,若是,将软件更新通知打包成目标区块,若否,按照预设规则处理软件更新通知,例如等待接收已背书的软件更新通知。采用此种方式,其能够增强目标版本软件的代码信任度,提高更新安全性。
在一些实施例中,本领域技术人员可以根据业务需求自定义打包触发条件,例如,判断数量是否大于预设数量阈值M,其中,预设数量阈值M小于或等于权威节点在区块链网络的数量N,每个权威节点负责发送一个已背书的软件更新通知。因此,当某个权威节点受到黑客恶意攻击、阻断及屏蔽时,只要共识节点收集到超过M个已背书的软件更新通知,共识节点便可以对软件更新通知执行共识操作,无需收集N个已背书的软件更新通知才可以执行共识操作。
可以理解的是,在一些实施例中,共识节点也可以收集N个已背书的软件更新通知才执行共识操作。
S36、当同步更新已共识且包含软件更新通知的目标区块时,全网节点根据访问地址,下载目标版本软件至本地;
在本实施例中,当目标区块已达成共识后,全网节点会同步更新目标区块。通常情况下,区块链社区在链下达成共识时,更新事件会使得区块链社区中的各个区块链节点在线率比较高。于是,全网节点验证目标区块是否合法,若合法,一方面,全网节点同步更新目标区块,亦即,将目标区块加载到本地区块链末端。另一方面,全网节点在指示的时间段,使用指示的连接方式,到指示的访问地址,通过指示的协议将目标版本软件下载到本地缓存,并且,加载预设任务,以启动本地更新时间的监听。
在一些实施例中,为了保证版本更新、数据及系统的一致性,避免采用不同版本处理数据而产生不同结果的情况出现,在一些实施例中,共识节点在打包包含软件更新通知的目标区块时,为目标区块配置开始更新标记,开始更新标记用于指示区块链网络开始启动本地更新操作,当全网节点同步更新目标区块,且检测到开始更新标记时,便会启动本地更新操作,不会再打包上链新区块,直到网络更新时间到达时,全网节点工作在目标版本软件下时,恢复工作,再打包上链新区块。
需要说明的是,考虑到下载需要时间以及倘若使用长老背书制,也会消耗一定的网络通讯时间,社区共识在设定本地更新时间时,应该比设定的通知发起时间足以晚足够时间,但也不应该太多,否则会影响在线率。
需要说明的是,如前所述,全网节点包括代理节点、共识节点、权威节点或普通节点,亦即,上述各个节点都会作软件更新操作。
S37、根据本地更新时间,暂停当前工作,并将本地的原有版本软件更新为目标版本软件;
在本实施例中,本地更新时间用于指示全网节点进行更新操作,当全网节点监听到本地更新时间到达时,全部全网节点都暂停当前工作,可以理解的是,此处的当前工作可以理解为全网节点当前正在执行的主要业务操作,例如,打包区块、更新账本、共识操作、交易操作等等。于是,全网节点便可以将本地的原有版本软件更新为目标版本软件。因此,采用此类方法,其能够保证版本更新的一致性,避免采用不同版本处理数据而产生不同结果的情况出现,亦即,保持了系统一致性。
在一些实施例中,当全网节点暂停当前工作后,全网节点启动守望进程,以监听区块链网络中其它节点发送的通讯信息,例如,守望进程监听区块链网络,当收到来自其它节点发来的非正常通讯时,守望进程选择以下方式处理:a)返回警告信息,督促其进入正常状态;b)对该节点反常通讯计数;c)当计数超过阈值时将该节点放入灰名单,并向全网发出警报消息;d)进行反异常处理和安全性维护。另外,守望进程作为守望人,可以与全网守望人进行进程沟通,统计区块链网络中节点更新状况和反常状况。
在一些实施例中,本地更新时间由目标区块的本地上链时间相加第二时间阈值得到,因此,全网节点监听到目标区块上链时,开始监听本地更新时间是否到达,若到达,则暂停当前工作并将本地的原有版本软件更新为目标版本软件,例如,区块链社区约定:在目标区块上链时,经过0.1毫秒后,全网节点应该暂停当前工作并将本地的原有版本软件更新为目标版本软件,于是,全网节点监听到目标区块上链后,开始监听是否已经历时0.1毫秒了,若是,则暂停当前工作并将本地的原有版本软件更新为目标版本软件。可以理解的是,第二时间阈值由用户自定义,例如可以为0,亦可以为其它时间值。
如前所述,由于目标区块属于区块链的一个区块,区块链具有去中心化、公平透明的特性,因此,相对而言,目标区块的上链时间是确定的和预料到的,不会被恶意随便更改,采用目标区块来约定本地更新时间,其能够更加有效地将各个区块链节点的步调节奏协同一致,并且因为永久记录,可以囊括未参与社区链下共识的用户和节点,新用户等,使全网在未来时间轴上永远保持一致。
S38、根据网络更新时间,在目标版本软件下恢复当前工作。
在本实施例中,网络更新时间用于指示全网节点在更新至目标版本软件后开始恢复工作。当网络更新时间到达时,由于绝大多数全网节点都已经更新完毕,此时,全网节点启动网络更新,在目标版本软件下恢复当前工作,因此,已更新到目标版本软件的全网节点工作在目标版本软件,那些尚未完成本地软件更新的节点不参与区块链网络活动,继续本地更新。
在一些实施例中,完成目标版本软件的更新后,共识节点在打包邻接在目标区块后面的下一个区块时,为所述下一个区块配置更新结束标记,更新结束标记用于指示区块链网络的本地更新操作已结束。
总体而言,采用本实施例提供的系统,一方面,通过软件更新通知协调与组织区块链网络的软件更新,各个区块链节点步调一致,提高版本更新的一致性,避免同一区块链网络存在不同软件版本的问题。另一方面,本系统能够链上自动化更新区块链软件,避免人为过度参与,提高软件更新效率,并且还容易维护更新。
需要说明的是,虽然本文根据业务功能的不同,给出了能够实现对应业务功能的角色,例如,角色包括代理节点、预言机、权威节点、共识节点及普通节点,但是,可以理解的是,不同业务功能亦可以由同一个节点来实现,例如,预言机的存储功能、权威节点的背书认证功能也可以合并在代理节点中实现,亦即,代理节点既可以实现预言机的存储功能,亦可以实现权威节点的背书功能。在本文之所以划分出不同节点,是为了方便读者理解本实施例,但是,上述所做的划分并不用于对本发明的保护范围造成任何限定。
作为本发明实施例另一方面,本发明实施例提供一种区块链软件全网更新方法。请参阅图4,区块链软件全网更新方法S400包括:
S41、全网发送软件更新通知,软件更新通知包括共识内容,共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
S42、当同步更新已共识且包含软件更新通知的目标区块时,根据访问地址,下载目标版本软件至本地;
S43、根据本地更新时间,暂停当前工作,并将本地的原有版本软件更新为目标版本软件;
S44、根据网络更新时间,恢复当前工作。
总体而言,采用本实施例提供的方法,一方面,通过软件更新通知协调与组织区块链网络的软件更新,各个区块链节点步调一致,提高版本更新的一致性,避免同一区块链网络存在不同软件版本的问题。另一方面,本方法能够链上自动化更新区块链软件,避免人为过度参与,提高软件更新效率,并且还容易维护更新。
在一些实施例中,区块链网络包括预言机,在全网发送软件更新通知之前,区块链软件全网更新方法S400还包括:将目标版本软件上载至预言机,和/或,根据加密算法,将目标版本软件生成防篡改校验码,并将防篡改校验码存储于预言机。
在一些实施例中,步骤S41包括:监听到通知发起时间到达时,发送软件更新通知至区块链网络。
在一些实施例中,通知发起时间由指定未来区块的本地上链时间相加第一时间阈值得到。
在一些实施例中,本地更新时间由目标区块的本地上链时间相加第二时间阈值得到。
在一些实施例中,网络更新时间由目标区块的本地上链时间相加第三时间阈值得到,其中,网络更新时间早于邻接在目标区块后面的下一个区块的本地上链时间。
在一些实施例中,共识内容还包括以下一项或两项以上内容:更新本身行为信息、目标版本软件全代码、访问协议、访问方式、访问时间、代理节点、通知发起时间及权威节点。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
需要说明的是,未在区块链软件全网更新实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的区块链软件全网更新系统。
作为本发明实施例另一方面,本发明实施例提供一种区块链软件全网更新方法。请参阅图5,区块链软件全网更新方法S500包括:
S51、获取软件更新通知,软件更新通知包括共识内容,共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
S52、对软件更新通知作背书认证,并将已背书的软件更新通知发送至区块链网络中的共识节点,以使共识节点对软件更新通知作打包与共识;
S53、当同步更新已共识且包含软件更新通知的目标区块时,根据访问地址,下载目标版本软件至本地;
S54、根据本地更新时间,暂停当前工作,并将本地的原有版本软件更新为目标版本软件;
S55、根据网络更新时间,在目标版本软件下恢复当前工作。
总体而言,采用本实施例提供的方法,一方面,通过软件更新通知协调与组织区块链网络的软件更新,各个区块链节点步调一致,提高版本更新的一致性,避免同一区块链网络存在不同软件版本的问题。另一方面,本方法能够链上自动化更新区块链软件,避免人为过度参与,提高软件更新效率,并且还容易维护更新。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
需要说明的是,未在区块链软件全网更新实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的区块链软件全网更新系统。
作为本发明实施例另一方面,本发明实施例提供一种区块链软件全网更新方法。请参阅图6,区块链软件全网更新方法S600包括:
S61、获取软件更新通知,软件更新通知包括共识内容,共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
S62、对软件更新通知打包成目标区块,共识并上链目标区块;
S63、根据访问地址,下载目标版本软件至本地;
S64、根据本地更新时间,暂停当前工作,并将本地的原有版本软件更新为目标版本软件;
S65、根据网络更新时间,在目标版本软件下恢复当前工作。
总体而言,采用本实施例提供的方法,一方面,通过软件更新通知协调与组织区块链网络的软件更新,各个区块链节点步调一致,提高版本更新的一致性,避免同一区块链网络存在不同软件版本的问题。另一方面,本方法能够链上自动化更新区块链软件,避免人为过度参与,提高软件更新效率,并且还容易维护更新。
在一些实施例中,区块链网络包括多个权威节点,S62包括:统计由权威节点背书过的软件更新通知的数量;判断数量是否满足打包触发条件;若是,将软件更新通知打包成目标区块;若否,按照预设规则处理软件更新通知。
在一些实施例中,判断数量是否满足打包触发条件包括:判断数量是否大于预设数量阈值,其中,预设数量阈值小于权威节点在区块链网络的数量,每个权威节点负责发送一个已背书的软件更新通知。
在一些实施例中,为目标区块配置开始更新标记,开始更新标记用于指示区块链网络开始启动本地更新操作,和/或,为邻接在目标区块后面的下一个区块配置更新结束标记,更新结束标记用于指示区块链网络的本地更新操作已结束。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
需要说明的是,未在区块链软件全网更新实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的区块链软件全网更新系统。
作为本发明实施例另一方面,本发明实施例提供一种区块链软件全网更新方法。请参阅图7,区块链软件全网更新方法S700包括:
S71、监听软件更新通知,软件更新通知包括共识内容,共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
S72、当同步更新已共识且包含软件更新通知的目标区块时,根据访问地址,下载目标版本软件至本地;
S73、根据本地更新时间,暂停当前工作,并将本地的原有版本软件更新为目标版本软件;
S74、根据网络更新时间,在目标版本软件下恢复当前工作。
总体而言,采用本实施例提供的方法,一方面,通过软件更新通知协调与组织区块链网络的软件更新,各个区块链节点步调一致,提高版本更新的一致性,避免同一区块链网络存在不同软件版本的问题。另一方面,本方法能够链上自动化更新区块链软件,避免人为过度参与,提高软件更新效率,并且还容易维护更新。
在一些实施例中,在下载目标版本软件至本地后,区块链软件全网更新方法S700还包括:加载预设任务,以启动本地更新时间的监听。
在一些实施例中,本地更新时间由目标区块的本地上链时间相加第二时间阈值得到。
在一些实施例中,网络更新时间由目标区块的本地上链时间相加第三时间阈值得到,其中,网络更新时间早于邻接在目标区块的下一个区块的本地上链时间。
在一些实施例中,暂停当前工作后,区块链软件全网更新方法S700 还包括:启动守望进程,以监听区块链网络中其它节点发送的通讯信息。
在一些实施例中,共识内容还包括以下一项或两项以上内容:更新本身行为信息、目标版本软件全代码、访问协议、访问方式、访问时间、代理节点、通知发起时间及权威节点。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
需要说明的是,未在区块链软件全网更新实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的区块链软件全网更新系统。
请参阅图8,图8是本发明实施例提供的一种电子设备的电路结构示意图。如图8所示,电子设备800包括一个或多个处理器81以及存储器82。其中,图8中以一个处理器81为例。
处理器81和存储器82可以通过总线或者其他方式连接,图8中以通过总线连接为例。存储器82作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的区块链软件全网更新方法对应的程序指令/模块。处理器81通过运行存储在存储器82中的非易失性软件程序、指令以及模块,实现上述方法实施例提供的区块链软件全网更新方法的功能。
存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器82可选包括相对于处理器81远程设置的存储器,这些远程存储器可以通过网络连接至处理器81。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器82中,当被所述一个或者多个处理器81执行时,执行上述任意方法实施例中的区块链软件全网更新方法。
本发明实施例还提供了一种非暂时性计算机可读存储介质,其特征在于,配置有能够由一个或多个处理器执行的指令,以使所述一个或多个处理器执行所述的区块链软件全网更新方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行所述的区块链软件全网更新方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种区块链软件全网更新方法,其特征在于,包括:
全网发送软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
当同步更新已共识且包含所述软件更新通知的目标区块时,根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
2.根据权利要求1所述的方法,其特征在于,所述区块链网络包括预言机,在全网发送软件更新通知之前,所述方法还包括:
将所述目标版本软件上载至所述预言机,和/或,
根据加密算法,将所述目标版本软件生成防篡改校验码,并将所述防篡改校验码存储于所述预言机。
3.根据权利要求1所述的方法,其特征在于,所述全网发送软件更新通知包括:监听到通知发起时间到达时,发送所述软件更新通知至所述区块链网络。
4.根据权利要求3所述的方法,其特征在于,所述通知发起时间由指定未来区块的本地上链时间相加第一时间阈值得到。
5.根据权利要求1所述的方法,其特征在于,所述本地更新时间由所述目标区块的本地上链时间相加第二时间阈值得到。
6.根据权利要求1所述的方法,其特征在于,所述网络更新时间由所述目标区块的本地上链时间相加第三时间阈值得到,其中,所述网络更新时间早于邻接在所述目标区块后面的下一个区块的本地上链时间。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述共识内容还包括以下一项或一项以上内容:更新本身行为信息、目标版本软件全代码、访问协议、访问方式、访问时间、代理节点、通知发起时间及权威节点。
8.一种区块链软件全网更新方法,其特征在于,包括:
获取软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
对所述软件更新通知作背书认证,并将已背书的软件更新通知发送至区块链网络中的共识节点,以使所述共识节点对所述软件更新通知作打包与共识;
当同步更新已共识且包含所述软件更新通知的目标区块时,根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
9.一种区块链软件全网更新方法,其特征在于,包括:
获取软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
对所述软件更新通知打包成目标区块,共识并上链所述目标区块;
根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
10.根据权利要求9所述的方法,其特征在于,所述区块链网络包括多个权威节点,所述对所述软件更新通知打包成目标区块包括:
统计由所述权威节点背书过的软件更新通知的数量;
判断所述数量是否满足打包触发条件;
若是,将所述软件更新通知打包成目标区块;
若否,按照预设规则处理所述软件更新通知。
11.根据权利要求10所述的方法,其特征在于,所述判断所述数量是否满足打包触发条件包括:判断所述数量是否大于预设数量阈值,其中,所述预设数量阈值小于或等于所述权威节点在所述区块链网络的数量,每个所述权威节点负责发送一个已背书的软件更新通知。
12.根据权利要求10所述的方法,其特征在于,还包括:
为所述目标区块配置开始更新标记,所述开始更新标记用于指示所述区块链网络开始启动本地更新操作,和/或,
为邻接在所述目标区块后面的下一个区块配置更新结束标记,所述更新结束标记用于指示所述区块链网络的本地更新操作已结束。
13.一种区块链软件全网更新方法,其特征在于,包括:
监听软件更新通知,所述软件更新通知包括共识内容,所述共识内容包括目标版本软件的访问地址、本地更新时间及网络更新时间;
当同步更新已共识且包含所述软件更新通知的目标区块时,根据所述访问地址,下载所述目标版本软件至本地;
根据所述本地更新时间,暂停当前工作,并将本地的原有版本软件更新为所述目标版本软件;
根据所述网络更新时间,在所述目标版本软件下恢复所述当前工作。
14.根据权利要求13所述的方法,其特征在于,在下载所述目标版本软件至本地后,所述方法还包括:加载预设任务,以启动所述本地更新时间的监听。
15.根据权利要求13所述的方法,其特征在于,所述本地更新时间由所述目标区块的本地上链时间相加第二时间阈值得到。
16.根据权利要求13所述的方法,其特征在于,所述网络更新时间由所述目标区块的本地上链时间相加第三时间阈值得到,其中,所述网络更新时间早于邻接在所述目标区块的下一个区块的本地上链时间。
17.根据权利要求13所述的方法,其特征在于,暂停当前工作后,所述方法还包括:启动守望进程,以监听所述区块链网络中其它节点发送的通讯信息。
18.根据权利要求13至17任一项所述的方法,其特征在于,所述共识内容还包括以下一项或一项以上内容:更新本身行为信息、目标版本软件全代码、访问协议、访问方式、访问时间、代理节点、通知发起时间及权威节点。
19.一种非暂时性计算机可读存储介质,其特征在于,配置有能够由一个或多个处理器执行的指令,以使所述一个或多个处理器执行如权利要求1至7或者8或者9至12或者13至18任一项所述的区块链软件全网更新方法。
20.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7或者8或者9至12或者13至18任一项所述的区块链软件全网更新方法。
CN202010853014.3A 2020-08-22 2020-08-22 一种区块链软件全网更新方法、存储介质及电子设备 Active CN111984295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010853014.3A CN111984295B (zh) 2020-08-22 2020-08-22 一种区块链软件全网更新方法、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010853014.3A CN111984295B (zh) 2020-08-22 2020-08-22 一种区块链软件全网更新方法、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111984295A CN111984295A (zh) 2020-11-24
CN111984295B true CN111984295B (zh) 2021-04-13

Family

ID=73443010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010853014.3A Active CN111984295B (zh) 2020-08-22 2020-08-22 一种区块链软件全网更新方法、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111984295B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505024B (zh) * 2021-07-08 2024-02-23 网易(杭州)网络有限公司 联盟链的数据处理方法、装置、电子设备及存储介质
CN114257600A (zh) * 2021-08-02 2022-03-29 美的集团股份有限公司 区块链的网络通信方法、通信装置及计算机存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108023896A (zh) * 2017-12-28 2018-05-11 江苏通付盾科技有限公司 区块同步方法及系统
CN108234127A (zh) * 2016-12-22 2018-06-29 中国移动通信集团公司 一种基于区块链的物联方法及装置
CN109889589A (zh) * 2019-02-18 2019-06-14 闪联信息技术工程中心有限公司 一种基于区块链实现嵌入式硬件ota升级系统及方法
CN110601995A (zh) * 2019-09-12 2019-12-20 腾讯科技(深圳)有限公司 在区块链网络中控制流量的方法、装置、存储介质和设备
CN110798331A (zh) * 2018-08-02 2020-02-14 华为技术有限公司 一种设备升级方法和装置
CN111506327A (zh) * 2020-04-15 2020-08-07 深圳市网心科技有限公司 区块链节点热升级方法及相关设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106101242B (zh) * 2016-06-24 2019-08-06 深圳前海微众银行股份有限公司 区块链云服务平台的构建方法和装置
US10356102B2 (en) * 2017-02-24 2019-07-16 Verizon Patent And Licensing Inc. Permissions using blockchain

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234127A (zh) * 2016-12-22 2018-06-29 中国移动通信集团公司 一种基于区块链的物联方法及装置
CN108023896A (zh) * 2017-12-28 2018-05-11 江苏通付盾科技有限公司 区块同步方法及系统
CN110798331A (zh) * 2018-08-02 2020-02-14 华为技术有限公司 一种设备升级方法和装置
CN109889589A (zh) * 2019-02-18 2019-06-14 闪联信息技术工程中心有限公司 一种基于区块链实现嵌入式硬件ota升级系统及方法
CN110601995A (zh) * 2019-09-12 2019-12-20 腾讯科技(深圳)有限公司 在区块链网络中控制流量的方法、装置、存储介质和设备
CN111506327A (zh) * 2020-04-15 2020-08-07 深圳市网心科技有限公司 区块链节点热升级方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种改进的区块链共识机制的研究与实现;张永 等;《电子设计工程》;20180309;第26卷(第01期);38-42,47 *
面向物联网区块链的共识机制优化研究;宋琪杰 等;《电信科学》;20200507;第36卷(第02期);1-12 *

Also Published As

Publication number Publication date
CN111984295A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
JP7199775B2 (ja) スマートコントラクトに基づくデータ処理方法、データ処理装置、ノード機器、及びコンピュータプログラム
CN110113167B (zh) 一种智能终端的信息保护方法、系统以及可读存储介质
US10225273B2 (en) Secured event monitoring leveraging blockchain
CN110601849B (zh) 一种可信时间戳添加方法、装置和存储介质
CN111444211B (zh) 区块链共识节点校验方法、装置、设备以及存储介质
CN110569251A (zh) 一种数据处理方法、相关设备及计算机可读存储介质
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
US8694993B1 (en) Virtualization platform for secured communications between a user device and an application server
CN111984295B (zh) 一种区块链软件全网更新方法、存储介质及电子设备
CN104715183A (zh) 一种虚拟机运行时的可信验证方法和设备
CN110601896B (zh) 一种基于区块链节点的数据处理方法以及设备
EP3598333B1 (en) Electronic device update management
CN111461720B (zh) 基于区块链的身份验证方法、装置、存储介质及电子设备
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN112738138B (zh) 云安全托管方法、装置、设备及存储介质
CN112672357A (zh) 处理业务系统中用户账号的方法、装置及计算机设备
CN111090386A (zh) 一种云存储方法、装置、系统和计算机设备
CN107659579B (zh) 一种现场存证方法、设备及相关存证系统
CN110247923A (zh) 基于区块链的摇号数据上链方法及其设备
CN112200680B (zh) 区块链节点管理方法、装置、计算机以及可读存储介质
CN113129002A (zh) 一种数据处理方法以及设备
US20230244797A1 (en) Data processing method and apparatus, electronic device, and medium
CN112948499A (zh) 信息获取方法和装置、电子设备和存储介质
CN115514470B (zh) 一种社区矫正数据安全性的存储方法及系统
US20220114276A1 (en) Controlling a data network with respect to a use of a distributed database

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
GR01 Patent grant
GR01 Patent grant