CN109299058B - 学历存储方法、学历查询方法及计算机存储介质 - Google Patents
学历存储方法、学历查询方法及计算机存储介质 Download PDFInfo
- Publication number
- CN109299058B CN109299058B CN201811312291.2A CN201811312291A CN109299058B CN 109299058 B CN109299058 B CN 109299058B CN 201811312291 A CN201811312291 A CN 201811312291A CN 109299058 B CN109299058 B CN 109299058B
- Authority
- CN
- China
- Prior art keywords
- academic
- data
- block
- academic data
- block chain
- 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种学历存储方法、学历查询方法及计算机存储介质。其中,学历存储方法包括:通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求;对学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与学历数据关联的区块生成请求;向联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用当前节点的公钥对区块生成请求中携带的学历数据的签名进行验证;若学历数据的签名验证通过且所有节点对区块生成请求达成共识,则在本地生成区块生成请求所请求的新区块,并将学历数据存储至本地数据库中。本发明实施例,提高认证效率,还能充分体现用户的学习经历。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种学历存储方法、学历查询方法及计算机存储介质。
背景技术
据国家统计局2016年教育数据,中国每年各类学历的数量4.6亿份。其中,学历教育有5610.8万人、高等教育(含成人、网络)有1192.5万人、初中+高中有2785.6万人、小学有1583.3万人。据2015年数据,非学历教育有5816.6万人、高等教育结业生有907.5万人、中等职业教育结业生有4909.1万人。据2015年数据,职业技术培训有4379.5万人,部分职业资格主要证书有:律师、会计、医生、心理咨询、建筑师等。据不完全统计,K12课外辅导2016年约有1.69亿人次;企业培训有1.35亿人次。据人社部数据,预计到2020年前,我国16—59岁劳动年龄人口将保持在9亿人左右。假设其中15%的人每年参与企业培训一次,即1.35亿。
然而,随着教育的发展,目前学历和学习经历有如下挑战:
1、碎片化的学习经历没有充分透明外化。除了国家认证的高等学历证书和职业资格证书,其他学习经历(课外辅导、在线教育、轻内容学习等)在评价体系中经常被忽略,价值难以透明外化。
2、学历证书的伪造成本低。纸质学历证书易于仿制。在入学申请、求职应聘中经常出现伪造推荐信和学历。
3、学历认证过程低效繁琐。在学信网认证国内学历,认证周期5-7个工作日。在留学服务中心认证海外学历,认证周期20-30个工作日。
发明内容
有鉴于此,本发明实施例所解决的技术问题之一在于提供一种学历存储方法、学历查询方法及计算机存储介质,用以解决上述问题至少之一。
本发明实施例提供一种学历存储方法,所述方法包括:联盟区块链中的当前节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求;所述当前节点对所述学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与所述学历数据关联的区块生成请求;所述当前节点向所述联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用所述当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证;若所述学历数据的签名验证通过且所述所有节点对所述区块生成请求达成共识,则所述当前节点基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,再基于所述SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将所述学历数据存储至本地数据库中。
本发明实施例还提供一种学历存储方法,所述方法包括:学历数据录入平台接收联盟区块链的联盟成员录入的学历数据;所述学历数据录入平台基于所述学历数据,生成学历数据上链请求;所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点,以使所述任意一个节点通过如本发明实施例提供所述的学历存储方法将所述学历数据上链请求中的所述学历数据存储至所述联盟区块链中。
本发明实施例还提供一种学历查询方法,所述方法包括:联盟区块链中的当前节点接收用户通过联盟区块链底层平台的人机交互界面发送的所述用户的学历数据对应的hash值,其中,所述当前节点通过如本发明实施例提供所述的学历存储方法存储学历数据;所述当前节点对所述用户的学历数据对应的hash值进行校验;若所述用户的学历数据对应的hash值校验通过,所述当前节点向所述联盟区块链底层平台的人机交互界面发送所述用户的学历数据,以展示所述用户的学历数据。
本发明实施例还提供一种计算机可读介质,所述计算机存储介质存储有可读程序,所述可读程序包括:用于通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求的指令;用于对所述学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与所述学历数据关联的区块生成请求的指令;用于向所述联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用所述当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证的指令;用于若所述学历数据的签名验证通过且所述所有节点对所述区块生成请求达成共识,则基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,再基于所述SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将所述学历数据存储至本地数据库中的指令。
本发明实施例还提供一种计算机可读介质,所述计算机存储介质存储有可读程序,所述可读程序包括:用于接收联盟区块链的联盟成员录入的学历数据的指令;用于基于所述学历数据,生成学历数据上链请求的指令;用于通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点,以使所述任意一个节点通过如本发明实施例提供所述的学历存储方法将所述学历数据上链请求中的所述学历数据存储至所述联盟区块链中的指令。
本发明实施例还提供一种计算机可读介质,所述计算机存储介质存储有可读程序,所述可读程序包括:用于接收用户通过联盟区块链底层平台的人机交互界面发送的所述用户的学历数据对应的hash值的指令,其中,所述当前节点通过如本发明实施例提供所述的学历存储方法存储学历数据;用于对所述用户的学历数据对应的hash值进行校验的指令;用于若所述用户的学历数据对应的hash值校验通过,向所述联盟区块链底层平台的人机交互界面发送所述用户的学历数据,以展示所述用户的学历数据的指令。
由以上技术方案可见,本发明实施例提供的学历存储方案中,联盟区块链中的当前节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求;当前节点对学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与学历数据关联的区块生成请求;当前节点向联盟区块链中的所有节点发起区块生成请求,以使所有节点分别利用当前节点的公钥对区块生成请求中携带的学历数据的签名进行验证;若学历数据的签名验证通过,且当前节点判断所有节点对区块生成请求达成共识,则当前节点基于区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对中间语言表示的操作指令执行映射操作,获得SQL语言表示的操作指令,再基于SQL语言表示的操作指令,在本地生成区块生成请求所请求的新区块,并将学历数据存储至本地数据库中,与现有的其它方式相比,通过将学历数据存储至联盟区块链中,能够保证学历数据不可被篡改,从而保证学历数据的真实性,且可简化认证过程,提高认证效率,还能够充分体现用户的学习经历。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例一的一种学历存储方法的步骤流程图;
图2示出了根据本发明实施例二的一种学历存储方法的步骤流程图;
图3示出了根据本发明实施例三的一种学历存储方法的步骤流程图;
图4示出了根据本发明实施例四的一种学历查询方法的步骤流程图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
参照图1,示出了根据本发明实施例一的一种学历存储方法的步骤流程图。
本实施例从学历数据录入平台的角度,对本发明实施例提供的学历存储方法进行说明。具体地,本实施例的学历存储方法包括以下步骤:
在步骤S102中,学历数据录入平台接收联盟区块链的联盟成员录入的学历数据。
在本申请实施例中,所述学历数据录入平台可理解为部署在联盟区块链中各个节点的应用层的统一应用程序,其功能为接收联盟区块链的联盟成员通过其界面录入的学历数据,并请求将接收的学历数据存储至联盟区块链。其中,联盟区块链中的联盟成员可包括公立院校、私立院校、培训机构、慕课平台。由此可见,除了国家认证的高等学历证书和职业资格证书可在联盟区块链中存储之外,其它学习经历(课外辅导、在线教育、轻内容学习等)也可在联盟区块链中存储,从而使得碎片化的学习经历充分透明外化。此外,所述学历数据包括以下中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构。其中,所述学历证书类型包括以下中的至少一者:硕博证书、本科证书、专科证书、职教证书、高中证书、初中证书、培训机构证书、竞赛证书。由此可见,除了终审学习阶段的学习经历和学习成果可在联盟区块链中存储之外,学习过程的成果也可在联盟区块链中存储,从而避免了联盟区块链中存储的学历数据的单一性,使得联盟区块链中存储的学历数据具有多个维度。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,联盟区块链的联盟成员在录入学历数据时,联盟区块链中的各个节点所属的联盟成员登录学历数据录入平台;若登录失败,则返回学历数据录入平台的登录页面;若登录成功,联盟成员可通过学历数据录入平台的学历录入页面逐条录入各个学员的学历数据,或可通过学历数据录入平台的学历录入页面以Excel批量录入各个学员的学历数据。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,所述学历数据录入平台接收联盟区块链的联盟成员录入的学历数据之后,所述学历数据录入平台以学历数据表的方式将所述学历数据存储至本地数据库中,其中,所述学历数据表包括以下字段中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构、区块链存储状态。其中,所述区块链存储状态包括以下中的至少一者:即将存储状态、正在存储状态、存储成功状态、存储失败状态。籍此,不仅能够方便地存储各个学员的学历数据,而且还能够方便记录各个学员的学历数据在联盟区块链中的存储状态。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S104中,所述学历数据录入平台基于所述学历数据,生成学历数据上链请求。
在本发明实施例中,在生成学历数据上链请求时,所述学历数据录入平台对所述学历数据进行封装,获得封装后的学历数据,并基于封装后的学历数据,生成学历数据上链请求。可以理解的是,所述学历数据录入平台任何基于所述学历数据,生成学历数据上链请求的实施方式均可适用于此,本发明实施例对此不做任何限定。
在步骤S106中,所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点,以使所述任意一个节点将所述学历数据上链请求中的所述学历数据存储至所述联盟区块链中。
在本发明实施例中,所述学历数据录入平台通过调用联盟区块链底层平台接口,将所述学历数据上链请求随机地发送至所述联盟区块链中的任意一个节点,以使所述任意一个节点通过如本发明实施例二所述的学历存储方法将所述学历数据上链请求中的所述学历数据存储至所述联盟区块链中。其中,所述学历数据录入平台与所述联盟区块链底层平台通过联盟区块链底层平台接口进行数据传输或通信,并且所述联盟区块链底层平台可为Java版区块链底层平台。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点之后,所述方法还包括:所述学历数据录入平台通过所述联盟区块链底层平台接口,接收所述任意一个节点发送的所述学历数据对应的hash值。其中,所述任意一个节点通过SHA256算法,基于所述学历数据,获得所述学历数据对应的hash值。籍此,能够基于学历数据对应的hash值,在联盟区块链中查询和认证学历数据。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,所述学历数据录入平台通过所述联盟区块链底层平台接口,接收所述任意一个节点发送的所述学历数据对应的hash值之后,所述方法还包括:所述学历数据录入平台将所述学历数据对应的hash值下发至所述学历数据所属的用户的终端设备中。其中,所述终端设备可为手机、平板电脑等。籍此,用户能够基于下发的hash值,在联盟区块链中快速方便地查询和认证自己的学历。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点之后,所述方法还包括:所述学历数据录入平台定时查询所述学历数据表中的区块链存储状态字段;若查询到所述学历数据表中的所述学历数据相应的区块链存储状态为正在存储状态,所述学历数据录入平台通过调用所述联盟区块链底层平台接口,基于所述学历数据对应的hash值,确认所述联盟区块链的所有节点是否生成所述学历数据对应的区块;若确认所述联盟区块链的所有节点均生成所述学历数据对应的区块,所述学历数据录入平台将所述学历数据表中的所述学历数据相应的区块链存储状态修改为存储成功状态。籍此,能够确保学历数据表中每条学历数据在联盟区块链中的每个节点得到存储。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一个具体的例子中,如果确认所述联盟区块链的部分节点没有生成所述学历数据对应的区块,所述学历数据录入平台继续定时查询所述学历数据相应的区块链存储状态,直到所述联盟区块链的所有节点均生成所述学历数据对应的区块为止。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
通过本申请实施例提供的学历存储方法,学历数据录入平台接收联盟区块链的联盟成员录入的学历数据;学历数据录入平台基于学历数据,生成学历数据上链请求;学历数据录入平台通过联盟区块链底层平台接口,将学历数据上链请求发送至联盟区块链中的任意一个节点,以使任意一个节点将学历数据上链请求中的学历数据存储至联盟区块链中,与现有的其他方式相比,通过将学历数据存储至联盟区块链中,能够保证学历数据不可被篡改,从而保证学历数据的真实性,且可简化认证过程,提高认证效率,还能够充分体现用户的学习经历。
本实施例的学历存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。
实施例二
参照图2,示出了根据本发明实施例二的一种学历存储方法的步骤流程图。
本实施例提供的学历存储方法是基于联盟区块链的,所述联盟区块链的区块数据结构是不同于一般的联盟区块链的区块数据结构的。具体地,本实施例涉及的联盟区块链的区块内容数据包括区块头、区块体和hash值,所述区块体包括多条操作指令,所述区块头包括所述多条操作指令的hash值、所述多条操作指令构成的Merkle树的根的值、生成当前区块的时间戳、与所述当前区块相邻的前一区块的hash值,所述区块内容数据包括的hash值是基于所述区块头和所述区块体生成的。其中,所述多条操作指令中的每条操作指令包括操作类型、表名、JSON化内容,并且所述JSON化内容包括存储的以下字段中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构。基于该联盟区块链的区块数据结构的学历存储方法能够大量节省学历存储所花费的时间,从而大大提高学历存储的效率。
本实施例从联盟区块链中的节点的角度,对本发明实施例提供的学历存储方法进行说明。具体地,本实施例的学历存储方法包括以下步骤:
在步骤S202中,联盟区块链中的当前节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求。
在本发明实施例中,联盟区块链中的任意一个节点被学历数据录入平台选择时,都可以通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求。本发明实施例从联盟区块链中的一个节点的角度,对学历存储方法进行说明,但本领域技术人员应当明了的是,该节点可以为联盟区块链中的任意节点,或者可以说,联盟区块链中的所有节点对学历进行存储都可参照本发明实施例实现。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一个具体的例子中,所述学历数据包括以下中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构。其中,所述学历证书类型包括以下中的至少一者:硕博证书、本科证书、专科证书、职教证书、高中证书、初中证书、培训机构证书、竞赛证书。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,在完成所述当前节点的部署时,所述当前节点从其它节点同步已经生成的区块数据到本地,并更新本地数据库。之后,所述当前节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S204中,所述当前节点对所述学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与所述学历数据关联的区块生成请求。
在一些可选实施例中,所述当前节点对所述学历数据上链请求中包括的待上链的学历数据进行封装之前,所述当前节点从所述联盟区块链中的中心节点调用公钥和私钥的生成接口,以获取所述当前节点的公钥和私钥,其中,所述私钥用于所述当前节点对自身的区块内容数据进行加密,所述公钥用于其它节点对加密后的所述当前节点的区块内容数据进行解密。籍此,能够获取对自身的区块内容数据进行加密的私钥和对自身的区块内容数据进行解密的公钥。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一个具体的例子中,在当前节点初次加入联盟区块链时,中心节点会为其生成公钥和私钥,其中,私钥由当前节点自身保存,用于对当前节点发出的数据进行加密或签名;公钥广播至联盟区块链的其他节点,用于使其他节点对当前节点发出的数据进行解密或验证。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S206中,所述当前节点向所述联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用所述当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证。
在本发明实施例中,所述区块生成请求向全网广播,也即,向联盟区块链中的所有节点包括自身节点发送该区块生成请求。在一些可选实施例中,所述区块生成请求中的区块内容数据可包括但不限于待生成的新区块的编号和新区块对应的区块内容的信息等。每一个新区块都有一个编号,该编号通常可为区块对应的HASH值,根据该编号可确定该新区块是否已经生成,其在联盟区块链中的位置及链接关系等,在实际应用中,本领域技术人员可以采用任意适当的、符合区块链规范的编号,能唯一标识区块且可表征其在区块中的位置即可。而对于区块内容的信息,本领域技术人员也可以根据实际需求,采用任意适当的方式实现,如,新区块的区块内容的摘要信息,等等,本发明实施例对此不作限制。学历数据的签名可为将学历数据通过私钥进行加密后生成的数字签名。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S208中,若所述学历数据的签名验证通过且所述所有节点对所述区块生成请求达成共识,则所述当前节点基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,再基于所述SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将所述学历数据存储至本地数据库中。
在本发明实施例中,所述与SQL语言具有映射关系的中间语言可为类似SQL语言的语言或者简版的SQL语言。例如,操作指令包括三个主要字段,分别为“操作类型”、“表名”、“JOSN”三个字段,则采用类似SQL语言的语言表示该操作指令的表示实例为:insert/update table json。其中,“insert/update”为可以对应到SQL语言的具体操作指令,table为一个变量,在每一个具体操作中可以具体化为一个具体的表名,json也为一个变量,在每一个具体操作中可以具体化为一个操作过程或操作结果对应的SQL指令和/或语句。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在本发明实施例中,如果所述学历数据的签名验证通过,则可认为发送区块生成请求的当前节点为正常节点,可以执行后续其他步骤,例如通过联盟区块链的共识机制确定所有节点对所述区块生成请求达成共识等,从而使得当前节点生成所请求的新区块。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
区块链作为一种先进的分布式系统,解决了在不可信信道上传输可信信息的问题。在区块链中,由于点对点网络下存在较高的网络延迟性,使得各个节点所观察到交易事务(本实施例中具体为生成新区块)的先后顺序出现一定差异,因此区块链里也需要一套机制,以在一定的时间内对发生事务的先后顺序达成共识,这就是共识机制。共识机制在区块链内起到决定谁负责区块处理以及维护区块链统一的作用,目前的共识机制基于Paxos算法演化而来。Paxos算法是一种基于消息传递模型的一致性算法,其可以保障在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么所有节点最后能得到一个一致的状态。目前区块链的共识机制大致可以分为PoW(工作量证明)、PoS(权益证明)、PBFT(实用拜占庭容错算法)等。在本步骤中,在通过区块链的共识机制确定所有节点对所述区块生成请求达成了共识后,即可进行新区块的生成。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一个具体的例子中,在联盟区块链中,当所有节点均对区块生成请求做出响应,如反馈确认消息,则认为所有节点达成了共识。对于联盟区块链中的每个节点,其确认消息将向区块链中的所有节点(包括自身节点)发送。针对当前节点,其可以通过判断是否接收到联盟区块链中所有节点针对区块生成请求的确认消息,来确定联盟区块链中的所有节点是否达成了共识。在一种可行方式中,当所述确认消息为提交状态消息(如commit消息)时,则所述判断所述所有节点对所述区块生成请求是否达成共识可以包括:判断是否接收到联盟区块链中的所有节点针对区块生成请求的提交状态消息;若是,则确定所述所有节点达成共识;否则,则确定未达成共识。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,在基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令时,将所述操作类型信息、操作对象信息和操作内容信息分别作为操作指令生成模板中的操作类型、表名、JSON化内容对应的具体实例;基于所述具体实例,生成与SQL语言具有映射关系的中间语言表示的操作指令。其中,所述操作指令生成模板是预先训练得到的。籍此,能够快速地生成与SQL语言具有映射关系的中间语言表示的操作指令,节省了生成中间语言表示的操作指令的时间,从而有利于提高学历数据的存储效率。可以理解的是,任何基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令的实施方式均可适用于此,本发明实施例对此不做任何限定。
在一些可选实施例中,在对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令时,根据所述中间语言表示的操作指令中的操作类型对应的具体实例,确定对应的SQL语言模板,其中,所述SQL语言模板中包括有与所述表名对应的变量和与所述JSON化内容对应的变量;根据所述表名对应的具体实例为所述表名对应的变量赋值,根据所述JSON化内容对应的具体实例为所述JSON化内容对应的变量赋值;根据所述SQL语言模板和赋值后的变量,生成所述SQL语言表示的操作指令。籍此,能够精准地对中间语言表示的操作指令执行映射操作,从而获得SQL语言表示的操作指令。此外,利用SQL语言表示的操作指令中的表名能够快速地检索到学历数据表,从而进一步地提高学历数据存储的效率。可以理解的是,任何对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令的实施方式均可适用于此,本发明实施例对此不做任何限定。
在一些可选实施例中,所述当前节点在本地生成所述区块生成请求所请求的新区块之后,所述方法还包括:所述当前节点定时在所述联盟区块链中的其它节点中查询本地最新区块对应的hash值是否为所述联盟区块链最新的hash值;若本地最新区块对应的hash值不为所述联盟区块链最新的hash值,则所述当前节点从所述其它节点同步最新的区块数据到本地,并更新所述本地数据库。其中,所述当前节点通过SHA256算法,基于本地最新的区块数据,获得本地最新区块对应的hash值。所述本地数据库可包括关系型数据库sqlite,可以理解的是,本发明实施例不限于此。籍此,能够确保联盟链中每个节点的区块数据是最新的,从而可有效防止联盟区块链中存储的学历数据被篡改,保证联盟区块链中存储的学历数据的真实性。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在一些可选实施例中,所述当前节点在本地生成所述区块生成请求所请求的新区块之后,所述方法还包括:所述当前节点通过所述联盟区块链底层平台接口,将所述学历数据对应的hash值发送至所述学历数据录入平台。其中,所述学历数据对应的hash值可存储于当前节点的RocksDB非关系型数据库(也称NOSQL型数据库)中,可以理解的是,本发明实施例不限于此。籍此,能够基于学历数据对应的hash值,在联盟区块链中查询和认证学历数据。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
通过本申请实施例提供的学历存储方法,联盟区块链中的当前节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求;当前节点对学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与学历数据关联的区块生成请求;当前节点向联盟区块链中的所有节点发起区块生成请求,以使所有节点分别利用当前节点的公钥对区块生成请求中携带的学历数据的签名进行验证;若学历数据的签名验证通过且所有节点对区块生成请求达成共识,则当前节点基于区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对中间语言表示的操作指令执行映射操作,获得SQL语言表示的操作指令,再基于SQL语言表示的操作指令,在本地生成区块生成请求所请求的新区块,并将学历数据存储至本地数据库中,与现有的其它方式相比,通过将学历数据存储至联盟区块链中,能够保证学历数据不可被篡改,从而保证学历数据的真实性,且可简化认证过程,提高认证效率,还能够充分体现用户的学习经历。
本实施例的学历存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。
实施例三
参照图3,示出了根据本发明实施例三的一种学历存储方法的步骤流程图。
本实施例从学历数据录入平台与联盟区块链的节点的交互的角度,对本发明实施例的学历存储方法进行说明。具体地,本实施例的学历存储方法包括以下步骤:
在步骤S302中,学历数据录入平台接收联盟区块链的联盟成员录入的学历数据。
在本发明实施例中,学历数据录入平台接收联盟区块链的联盟成员中的任意一个成员录入的学历数据。具体地,学历数据录入平台接收联盟区块链的联盟成员中的任意一个成员逐条录入或批量录入的学历数据。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S304中,所述学历数据录入平台基于所述学历数据,生成学历数据上链请求。
由于该步骤S304与上述步骤S104类似,在此不再赘述。
在步骤S306中,所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点。
其中,所述学历数据上链请求携带有待存储于联盟区块链的学历数据。
在步骤S308中,所述任意一个节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求。
由于该步骤S308与上述步骤S202类似,在此不再赘述。
在步骤S310中,所述任意一个节点对所述学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与所述学历数据关联的区块生成请求。
在本发明实施例中,所述利用自身的私钥对封装后的学历数据进行签名,包括:将所述当前节点的私钥和所述封装后的学历数据输入SHA256函数,获得加密后的学历数据,从而实现对封装后的学历数据的签名。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S312中,所述任意一个节点向所述联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用所述当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证。
在本发明实施例中,所述利用所述当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证,包括:将所述当前节点的公钥和所述学历数据的签名输入SHA256函数,获得解密后的学历数据;判断解密后的学历数据与未加密的学历数据是否相同,如果相同,所述学历数据的签名验证通过,否则,所述所述学历数据的签名验证不通过。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S314中,若所述学历数据的签名验证通过且所述所有节点对所述区块生成请求达成共识,则所述任意一个节点基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,再基于所述SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将所述学历数据存储至本地数据库中。
在本发明实施例中,如果所述所有节点对所述区块生成请求达成共识,则发起所述区块生成请求的所述当前节点在本地生成所述区块生成请求所请求的新区块,并将所述新区块的元数据信息写入联盟区块链中,例如,RocksDB非关系型数据库中,以及将所述学历数据存储至本地的关系型数据库中,例如,sqlite数据库中。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
通过本申请实施例提供的学历存储方法,学历数据录入平台接收联盟区块链的联盟成员录入的学历数据;学历数据录入平台基于学历数据,生成学历数据上链请求;学历数据录入平台通过联盟区块链底层平台接口,将学历数据上链请求发送至联盟区块链中的任意一个节点;所述任意一个节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求;所述任意一个节点对学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与学历数据关联的区块生成请求;所述任意一个节点向联盟区块链中的所有节点发起区块生成请求,以使所有节点分别利用当前节点的公钥对区块生成请求中携带的学历数据的签名进行验证;若学历数据的签名验证通过且所有节点对区块生成请求达成共识,则所述任意一个节点基于区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对中间语言表示的操作指令执行映射操作,获得SQL语言表示的操作指令,再基于SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将学历数据存储至本地数据库中,与现有的其它方式相比,通过将学历数据存储至联盟区块链中,能够保证学历数据不可被篡改,从而保证学历数据的真实性,且可简化认证过程,提高认证效率,还能够充分体现用户的学习经历。
本实施例的学历存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。
实施例四
参照图4,示出了根据本发明实施例四的一种学历查询方法的步骤流程图。
具体地,本实施例的学历查询方法包括以下步骤:
在步骤S402中,联盟区块链中的当前节点接收用户通过联盟区块链底层平台的人机交互界面发送的所述用户的学历数据对应的hash值。
其中,所述当前节点执行根据本发明实施例二所述的学历存储方法,通过实施例二中的所述学历存储方法存储学历数据。
在步骤S404中,所述当前节点对所述用户的学历数据对应的hash值进行校验。
在本申请实施例中,所述当前节点将所述用户的学历数据对应的hash值中的每个字符分别与所述当前节点的rocksDB非关系型数据库中存储的每个学历数据的hash值中的每个字符进行比对,如果均相同,则说明当前节点的rocksDB非关系型数据库中存储有所述用户的学历数据对应的hash值。因此,所述用户的学历数据对应的hash值校验通过。如果部分相同,则说明当前节点的rocksDB非关系型数据库中不存储有所述用户的学历数据对应的hash值。因此,所述用户的学历数据对应的hash值校验不通过。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
在步骤S406中,若所述用户的学历数据对应的hash值校验通过,所述当前节点向所述联盟区块链底层平台的人机交互界面发送所述用户的学历数据,以展示所述用户的学历数据。
在本发明实施例中,如果所述用户的学历数据对应的hash值校验不通过,所述联盟区块链底层平台的人机交互界面显示查询输入错误的信息。可以理解的是,以上描述仅为示例性的,本发明实施例对此不做任何限定。
通过本申请实施例提供的学历查询方法,联盟区块链中的当前节点接收用户通过联盟区块链底层平台的人机交互界面发送的用户的学历数据对应的hash值;当前节点对用户的学历数据对应的hash值进行校验;若用户的学历数据对应的hash值校验通过,当前节点向联盟区块链底层平台的人机交互界面发送用户的学历数据,以展示用户的学历数据,与现有的其它方式相比,不仅能够方便用户快速地查询自身的学历,而且还能够保证用户的学历的真实性,进而能够可靠地进行学历的认证。
本实施例的学历查询方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。
实施例五
本发明实施例还提供一种计算机可读介质,所述计算机存储介质存储有可读程序,所述可读程序包括:用于通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求的指令;用于对所述学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与所述学历数据关联的区块生成请求的指令;用于向所述联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用所述当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证的指令;用于若所述学历数据的签名验证通过且所述所有节点对所述区块生成请求达成共识,则基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,再基于所述SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将所述学历数据存储至本地数据库中的指令。
可选地,所述用于对所述学历数据上链请求中包括的待上链的学历数据进行封装的指令之前,所述可读程序还包括:用于从所述联盟区块链中的中心节点调用公钥和私钥的生成接口,以获取所述当前节点的公钥和私钥的指令,其中,所述私钥用于所述当前节点对自身的区块内容数据进行加密,所述公钥用于其它节点对加密后的所述当前节点的区块内容数据进行解密。
可选地,所述用于在本地生成所述区块生成请求所请求的新区块的指令之后,所述可读程序还包括:用于定时在所述联盟区块链中的其它节点中查询本地最新区块对应的hash值是否为所述联盟区块链最新的hash值的指令;用于若本地最新区块对应的hash值不为所述联盟区块链最新的hash值,则从所述其它节点同步最新的区块数据到本地,并更新所述本地数据库的指令。
可选地,所述用于在本地生成所述区块生成请求所请求的新区块的指令之后,所述可读程序还包括:用于通过所述联盟区块链底层平台接口,将所述学历数据对应的hash值发送至所述学历数据录入平台的指令。
可选地,所述当前节点的区块内容数据包括区块头、区块体和hash值,所述区块体包括多条操作指令,所述区块头包括所述多条操作指令的hash值、所述多条操作指令构成的Merkle树的根的值、生成当前区块的时间戳、与所述当前区块相邻的前一区块的hash值,所述区块内容数据包括的hash值是基于所述区块头和所述区块体生成的。
可选地,所述多条操作指令中的每条操作指令包括操作类型、表名、JSON化内容,并且所述JSON化内容包括存储的以下字段中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构。
可选地,所述学历数据包括以下中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构。
可选地,所述学历证书类型包括以下中的至少一者:硕博证书、本科证书、专科证书、职教证书、高中证书、初中证书、培训机构证书、竞赛证书。
通过本申请实施例提供的计算机可读介质,通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求;对学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与学历数据关联的区块生成请求;向联盟区块链中的所有节点发起区块生成请求,以使所有节点分别利用当前节点的公钥对区块生成请求中携带的学历数据的签名进行验证;若学历数据的签名验证通过且所有节点对区块生成请求达成共识,则基于区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对中间语言表示的操作指令执行映射操作,获得SQL语言表示的操作指令,再基于SQL语言表示的操作指令,在本地生成区块生成请求所请求的新区块,并将学历数据存储至本地数据库中,与现有的其它方式相比,通过将学历数据存储至联盟区块链中,能够保证学历数据不可被篡改,从而保证学历数据的真实性,且可简化认证过程,提高认证效率,还能够充分体现用户的学习经历。
实施例六
本发明实施例还提供一种计算机可读介质,所述计算机存储介质存储有可读程序,所述可读程序包括:用于接收联盟区块链的联盟成员录入的学历数据的指令;用于基于所述学历数据,生成学历数据上链请求的指令;用于通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点,以使所述任意一个节点通过如本发明实施例提供所述的学历存储方法将所述学历数据上链请求中的所述学历数据存储至所述联盟区块链中的指令。
可选地,所述用于接收联盟区块链的联盟成员录入的学历数据的指令之后,所述可读程序还包括:用于以学历数据表的方式将所述学历数据存储至本地数据库中的指令,其中,所述学历数据表包括以下字段中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构、区块链存储状态。
可选地,所述区块链存储状态包括以下中的至少一者:即将存储状态、正在存储状态、存储成功状态、存储失败状态。
可选地,所述用于通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点的指令之后,所述可读程序还包括:用于通过所述联盟区块链底层平台接口,接收所述任意一个节点发送的所述学历数据对应的hash值的指令。
可选地,所述用于通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点的指令之后,所述可读程序还包括:用于定时查询所述学历数据表中的区块链存储状态字段的指令;用于若查询到所述学历数据表中的所述学历数据相应的区块链存储状态为正在存储状态,通过调用所述联盟区块链底层平台接口,基于所述学历数据对应的hash值,确认所述联盟区块链的所有节点是否生成所述学历数据对应的区块的指令;用于若确认所述联盟区块链的所有节点均生成所述学历数据对应的区块,将所述学历数据表中的所述学历数据相应的区块链存储状态修改为存储成功状态的指令。
可选地,所述用于通过所述联盟区块链底层平台接口,接收所述任意一个节点发送的所述学历数据对应的hash值的指令之后,所述可读程序还包括:用于将所述学历数据对应的hash值下发至所述学历数据所属的用户的终端设备中的指令。
通过本申请实施例提供的计算机可读介质,接收联盟区块链的联盟成员录入的学历数据;基于学历数据,生成学历数据上链请求;通过联盟区块链底层平台接口,将学历数据上链请求发送至联盟区块链中的任意一个节点,以使任意一个节点将学历数据上链请求中的学历数据存储至联盟区块链中,与现有的其他方式相比,通过将学历数据存储至联盟区块链中,能够保证学历数据不可被篡改,从而保证学历数据的真实性,且可简化认证过程,提高认证效率,还能够充分体现用户的学习经历。
实施例七
本发明实施例还提供一种计算机可读介质,所述计算机存储介质存储有可读程序,所述可读程序包括:用于接收用户通过联盟区块链底层平台的人机交互界面发送的所述用户的学历数据对应的hash值的指令,其中,所述当前节点通过如本发明实施例提供所述的学历存储方法存储学历数据;用于对所述用户的学历数据对应的hash值进行校验的指令;用于若所述用户的学历数据对应的hash值校验通过,向所述联盟区块链底层平台的人机交互界面发送所述用户的学历数据,以展示所述用户的学历数据的指令。
通过本申请实施例提供的计算机可读介质,接收用户通过联盟区块链底层平台的人机交互界面发送的用户的学历数据对应的hash值;对用户的学历数据对应的hash值进行校验;若用户的学历数据对应的hash值校验通过,向联盟区块链底层平台的人机交互界面发送用户的学历数据,以展示用户的学历数据,与现有的其它方式相比,不仅能够方便用户快速地查询自身的学历,而且还能够保证用户的学历的真实性,进而能够可靠地进行学历的认证。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的文件上传方法。此外,当通用计算机访问用于实现在此示出的文件上传方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的文件上传方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (18)
1.一种学历存储方法,其特征在于,所述方法包括:
联盟区块链中的当前节点通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求;
所述当前节点对所述学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与所述学历数据关联的区块生成请求;
所述当前节点向所述联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用所述当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证;
若所述学历数据的签名验证通过且所述所有节点对所述区块生成请求达成共识,则所述当前节点基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,再基于所述SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将所述学历数据存储至本地数据库中,
其中,基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,包括:
将所述操作类型信息、操作对象信息和操作内容信息分别作为操作指令生成模板中的操作类型、表名、JSON化内容对应的具体实例;
基于所述具体实例,生成与SQL语言具有映射关系的中间语言表示的操作指令,
其中,对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,包括:
根据所述中间语言表示的操作指令中的操作类型对应的具体实例,确定对应的SQL语言模板,其中,所述SQL语言模板中包括有与所述表名对应的变量和与所述JSON化内容对应的变量;
根据所述表名对应的具体实例为所述表名对应的变量赋值,根据所述JSON化内容对应的具体实例为所述JSON化内容对应的变量赋值;
根据所述SQL语言模板和赋值后的变量,生成所述SQL语言表示的操作指令。
2.根据权利要求1所述的方法,其特征在于,所述当前节点对所述学历数据上链请求中包括的待上链的学历数据进行封装之前,所述方法还包括:
所述当前节点从所述联盟区块链中的中心节点调用公钥和私钥的生成接口,以获取所述当前节点的公钥和私钥,其中,所述私钥用于所述当前节点对自身的区块内容数据进行加密,所述公钥用于其它节点对加密后的所述当前节点的区块内容数据进行解密。
3.根据权利要求1所述的方法,其特征在于,所述当前节点在本地生成所述区块生成请求所请求的新区块之后,所述方法还包括:
所述当前节点定时在所述联盟区块链中的其它节点中查询本地最新区块对应的hash值是否为所述联盟区块链最新的hash值;
若本地最新区块对应的hash值不为所述联盟区块链最新的hash值,则所述当前节点从所述其它节点同步最新的区块数据到本地,并更新所述本地数据库。
4.根据权利要求1所述的方法,其特征在于,所述当前节点在本地生成所述区块生成请求所请求的新区块之后,所述方法还包括:
所述当前节点通过所述联盟区块链底层平台接口,将所述学历数据对应的hash值发送至所述学历数据录入平台。
5.根据权利要求1-4中任意一项权利要求所述的方法,其特征在于,所述当前节点的区块内容数据包括区块头、区块体和hash值,所述区块体包括多条操作指令,所述区块头包括所述多条操作指令的hash值、所述多条操作指令构成的Merkle树的根的值、生成当前区块的时间戳、与所述当前区块相邻的前一区块的hash值,所述区块内容数据包括的hash值是基于所述区块头和所述区块体生成的。
6.根据权利要求5所述的方法,其特征在于,所述多条操作指令中的每条操作指令包括操作类型、表名、JSON化内容,并且所述JSON化内容包括存储的以下字段中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构。
7.根据权利要求1-4中任意一项权利要求所述的方法,其特征在于,所述学历数据包括以下中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构。
8.根据权利要求7所述的方法,其特征在于,所述学历证书类型包括以下中的至少一者:
硕博证书、本科证书、专科证书、职教证书、高中证书、初中证书、培训机构证书、竞赛证书。
9.一种学历存储方法,其特征在于,所述方法包括:
学历数据录入平台接收联盟区块链的联盟成员录入的学历数据;
所述学历数据录入平台基于所述学历数据,生成学历数据上链请求;
所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点,以使所述任意一个节点通过如权利要求1-8中任意一项权利要求所述的学历存储方法将所述学历数据上链请求中的所述学历数据存储至所述联盟区块链中。
10.根据权利要求9所述的方法,其特征在于,所述学历数据录入平台接收联盟区块链的联盟成员录入的学历数据之后,所述方法还包括:
所述学历数据录入平台以学历数据表的方式将所述学历数据存储至本地数据库中,其中,所述学历数据表包括以下字段中的至少一者:学历证书名称、学历证书类型、学历证书所有人姓名、学历证书颁发日期、学历证书颁发机构、区块链存储状态。
11.根据权利要求10所述的方法,其特征在于,所述区块链存储状态包括以下中的至少一者:即将存储状态、正在存储状态、存储成功状态、存储失败状态。
12.根据权利要求10所述的方法,其特征在于,所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点之后,所述方法还包括:
所述学历数据录入平台通过所述联盟区块链底层平台接口,接收所述任意一个节点发送的所述学历数据对应的hash值。
13.根据权利要求12所述的方法,其特征在于,所述学历数据录入平台通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点之后,所述方法还包括:
所述学历数据录入平台定时查询所述学历数据表中的区块链存储状态字段;
若查询到所述学历数据表中的所述学历数据相应的区块链存储状态为正在存储状态,所述学历数据录入平台通过调用所述联盟区块链底层平台接口,基于所述学历数据对应的hash值,确认所述联盟区块链的所有节点是否生成所述学历数据对应的区块;
若确认所述联盟区块链的所有节点均生成所述学历数据对应的区块,所述学历数据录入平台将所述学历数据表中的所述学历数据相应的区块链存储状态修改为存储成功状态。
14.根据权利要求12所述的方法,其特征在于,所述学历数据录入平台通过所述联盟区块链底层平台接口,接收所述任意一个节点发送的所述学历数据对应的hash值之后,所述方法还包括:
所述学历数据录入平台将所述学历数据对应的hash值下发至所述学历数据所属的用户的终端设备中。
15.一种学历查询方法,其特征在于,所述方法包括:
联盟区块链中的当前节点接收用户通过联盟区块链底层平台的人机交互界面发送的所述用户的学历数据对应的hash值,其中,所述当前节点通过如权利要求1-8中任意一项权利要求所述的学历存储方法存储学历数据;
所述当前节点对所述用户的学历数据对应的hash值进行校验;
若所述用户的学历数据对应的hash值校验通过,所述当前节点向所述联盟区块链底层平台的人机交互界面发送所述用户的学历数据,以展示所述用户的学历数据。
16.一种计算机存储介质,其特征在于,所述计算机存储介质存储有可读程序,所述可读程序包括:
用于通过联盟区块链底层平台接口接收学历数据录入平台发送的学历数据上链请求的指令;
用于对所述学历数据上链请求中包括的待上链的学历数据进行封装,并利用自身的私钥对封装后的学历数据进行签名,生成与所述学历数据关联的区块生成请求的指令;
用于向所述联盟区块链中的所有节点发起所述区块生成请求,以使所有节点分别利用当前节点的公钥对所述区块生成请求中携带的学历数据的签名进行验证的指令;
用于若所述学历数据的签名验证通过且所述所有节点对所述区块生成请求达成共识,则基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,并对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,再基于所述SQL语言表示的操作指令,在本地生成所述区块生成请求所请求的新区块,并将所述学历数据存储至本地数据库中的指令,
其中,基于所述区块生成请求中的操作类型信息、操作对象信息和操作内容信息,生成与SQL语言具有映射关系的中间语言表示的操作指令,包括:
将所述操作类型信息、操作对象信息和操作内容信息分别作为操作指令生成模板中的操作类型、表名、JSON化内容对应的具体实例;
基于所述具体实例,生成与SQL语言具有映射关系的中间语言表示的操作指令,
其中,对所述中间语言表示的操作指令执行映射操作,获得所述SQL语言表示的操作指令,包括:
根据所述中间语言表示的操作指令中的操作类型对应的具体实例,确定对应的SQL语言模板,其中,所述SQL语言模板中包括有与所述表名对应的变量和与所述JSON化内容对应的变量;
根据所述表名对应的具体实例为所述表名对应的变量赋值,根据所述JSON化内容对应的具体实例为所述JSON化内容对应的变量赋值;
根据所述SQL语言模板和赋值后的变量,生成所述SQL语言表示的操作指令。
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有可读程序,所述可读程序包括:
用于接收联盟区块链的联盟成员录入的学历数据的指令;
用于基于所述学历数据,生成学历数据上链请求的指令;
用于通过联盟区块链底层平台接口,将所述学历数据上链请求发送至所述联盟区块链中的任意一个节点,以使所述任意一个节点通过如权利要求1-8中任意一项权利要求所述的学历存储方法将所述学历数据上链请求中的所述学历数据存储至所述联盟区块链中的指令。
18.一种计算机存储介质,其特征在于,所述计算机存储介质存储有可读程序,所述可读程序包括:
用于接收用户通过联盟区块链底层平台的人机交互界面发送的所述用户的学历数据对应的hash值的指令,其中,所述当前节点通过如权利要求1-8中任意一项权利要求所述的学历存储方法存储学历数据;
用于对所述用户的学历数据对应的hash值进行校验的指令;
用于若所述用户的学历数据对应的hash值校验通过,向所述联盟区块链底层平台的人机交互界面发送所述用户的学历数据,以展示所述用户的学历数据的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811312291.2A CN109299058B (zh) | 2018-11-06 | 2018-11-06 | 学历存储方法、学历查询方法及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811312291.2A CN109299058B (zh) | 2018-11-06 | 2018-11-06 | 学历存储方法、学历查询方法及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109299058A CN109299058A (zh) | 2019-02-01 |
CN109299058B true CN109299058B (zh) | 2021-04-09 |
Family
ID=65145799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811312291.2A Active CN109299058B (zh) | 2018-11-06 | 2018-11-06 | 学历存储方法、学历查询方法及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299058B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951488B (zh) * | 2019-03-27 | 2022-01-07 | 百度在线网络技术(北京)有限公司 | 内容分发网络的服务实现方法、装置、设备及存储介质 |
CN110489488B (zh) * | 2019-08-21 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和装置 |
CN110493011B (zh) * | 2019-09-26 | 2022-04-22 | 腾讯科技(深圳)有限公司 | 基于区块链的证书颁发管理方法以及装置 |
CN110971392B (zh) * | 2019-11-25 | 2023-09-08 | 远光软件股份有限公司 | 一种去中心化的电子学历证书获取方法及系统 |
CN110909388B (zh) * | 2019-11-25 | 2022-08-09 | 远光软件股份有限公司 | 一种去中心化的电子学历管理系统及方法 |
CN111241205B (zh) * | 2020-04-26 | 2021-03-09 | 北京启迪区块链科技发展有限公司 | 基于联盟区块链底层可信数据同步方法、网络结构及服务器 |
CN111858627B (zh) * | 2020-06-24 | 2024-05-31 | 南京信息职业技术学院 | 一种基于区块链的学位学历查询系统及其方法 |
CN113010871B (zh) * | 2021-03-16 | 2023-04-28 | 中南大学 | 基于联盟区块链平台的电子学历证书验证方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017155742A1 (en) * | 2016-03-08 | 2017-09-14 | Manifold Technology, Inc. | Data storage system with blockchain technology |
CN107257341A (zh) * | 2017-06-21 | 2017-10-17 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链的学籍追溯认证方法 |
CN107483498A (zh) * | 2017-09-22 | 2017-12-15 | 中国联合网络通信集团有限公司 | 基于区块链的学历认证方法及系统 |
CN107943996A (zh) * | 2017-12-04 | 2018-04-20 | 四川长虹电器股份有限公司 | 一种基于区块链的学历查询方法及装置 |
CN107977910A (zh) * | 2017-12-04 | 2018-05-01 | 四川长虹电器股份有限公司 | 一种基于区块链的学历签发方法和系统 |
CN108121498A (zh) * | 2016-11-28 | 2018-06-05 | 中国移动通信集团公司 | 一种基于区块链技术的学习记录保存的方法和装置 |
CN108171068A (zh) * | 2017-12-31 | 2018-06-15 | 天津大学 | 一种学籍认证联盟链系统及其运行方法 |
WO2018178026A1 (en) * | 2017-03-30 | 2018-10-04 | British Telecommunications Public Limited Company | Hierarchical temporal memory for access control |
-
2018
- 2018-11-06 CN CN201811312291.2A patent/CN109299058B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017155742A1 (en) * | 2016-03-08 | 2017-09-14 | Manifold Technology, Inc. | Data storage system with blockchain technology |
CN108121498A (zh) * | 2016-11-28 | 2018-06-05 | 中国移动通信集团公司 | 一种基于区块链技术的学习记录保存的方法和装置 |
WO2018178026A1 (en) * | 2017-03-30 | 2018-10-04 | British Telecommunications Public Limited Company | Hierarchical temporal memory for access control |
CN107257341A (zh) * | 2017-06-21 | 2017-10-17 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链的学籍追溯认证方法 |
CN107483498A (zh) * | 2017-09-22 | 2017-12-15 | 中国联合网络通信集团有限公司 | 基于区块链的学历认证方法及系统 |
CN107943996A (zh) * | 2017-12-04 | 2018-04-20 | 四川长虹电器股份有限公司 | 一种基于区块链的学历查询方法及装置 |
CN107977910A (zh) * | 2017-12-04 | 2018-05-01 | 四川长虹电器股份有限公司 | 一种基于区块链的学历签发方法和系统 |
CN108171068A (zh) * | 2017-12-31 | 2018-06-15 | 天津大学 | 一种学籍认证联盟链系统及其运行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109299058A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299058B (zh) | 学历存储方法、学历查询方法及计算机存储介质 | |
US11170092B1 (en) | Document authentication certification with blockchain and distributed ledger techniques | |
US10673617B1 (en) | Methods, system and point-to-point encryption device microchip for AES-sea 512-bit key using identity access management utilizing blockchain ecosystem to improve cybersecurity | |
CA3013603C (en) | Dynamically managing exchanges of data using a distributed ledger and homomorphic commitments | |
CN110490305B (zh) | 基于区块链网络的机器学习模型处理方法及节点 | |
CN110933108B (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
CN110771095B (zh) | 用于实现基于区块链的数字证书的系统和方法 | |
CN110599069B (zh) | 基于区块链网络的应用评价方法及装置 | |
JP2023029895A (ja) | クラウドベースのコンピューティング環境において分散台帳技術のためのインテリジェントな合意、スマートな合意、及び重み付き合意のモデルを実現するシステム、方法、及び装置 | |
CN110800254B (zh) | 用于生成数字标记的系统和方法 | |
CN110516474B (zh) | 区块链网络中的用户信息处理方法、装置、电子设备及存储介质 | |
CN108830109B (zh) | 电子印章应用、客户端实现方法、系统及设备、存储介质 | |
JP5753273B2 (ja) | データの真正性保証方法、管理計算機及び記憶媒体 | |
CN111213350A (zh) | 用于创建去中心化标识的系统和方法 | |
CN110569674A (zh) | 基于区块链网络的认证方法及装置 | |
US11341267B1 (en) | Death certificate information processing techniques | |
CN112069550B (zh) | 一种基于智能合约方式的电子合同存证系统 | |
CN111523152B (zh) | 基于区块链的电子证件管理方法、管理网络及电子设备 | |
TW201909013A (zh) | 在公開匿名環境驗證身份及保護隱私的系統與方法 | |
CN114357475A (zh) | 一种基于区块链的数据确权方法、系统、设备及介质 | |
US11343107B2 (en) | System for method for secured logging of events | |
CN117426072A (zh) | 可验证凭证中的背书声明 | |
US20130268764A1 (en) | Data event authentication and verification system | |
CN112446677B (zh) | 电子签章方法、装置、设备及存储介质 | |
WO2020161203A1 (en) | Identity management on a mobile device |
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 |