一种智能合约的排序方法、装置、计算机设备和存储介质与流程

文档序号:24784412发布日期:2021-04-23 09:37阅读:82来源:国知局
一种智能合约的排序方法、装置、计算机设备和存储介质与流程

1.本发明涉及机械技术领域,特别是涉及一种智能合约的排序方法、一种智能合约的排序装置、一种计算机设备和一种存储介质。


背景技术:

2.当前区块链技术被认为是继蒸汽机、电力、互联网之后的下一代颠覆性的核心技术。区块链技术(blockchain technology,bt)是一种互联网数据库技术,其特点是去中心化、公开透明,允许每个人均可参与数据库记录。如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。
3.假设数据库是一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理是在一段时间内由一部分人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。为了更好的建立区块链应用的生态环境,我们提出面向智能合约开发者的开发者激励协议(developer incentive protocol,dip),以使智能合约的开发者,尤其是优秀智能开发者通过获得某个形式如代币的方式获得奖励。所述智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上述执行这些承诺的协议。
4.在物理上,智能合约的载体是计算机可识别并运行的计算机代码。然而,智能合约质量的高低,目前没有很好的评价办法。此外,现有基于智能合约的区块链产品,目前所采用的排序方法比较简单,普通排序易遭受攻击,篡改之后不留痕迹。普通排序为人为手动排序算法,系统过于中心化,排序过程不透明。


技术实现要素:

5.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种一智能合约的排序方法、一种智能合约的排序装置、一种计算机设备和一种存储介质。
6.为了解决上述问题,本发明实施例公开了一种智能合约的排序方法,包括:
7.将需要排序的原始数据分配成组数据;
8.将所述组数据进行投票筛选,获取目标数据;
9.通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证添加可信时间戳。
10.优选地,所述方法还包括:
11.构建区块链。
12.优选地,所述构建区块链包括:
13.确定区块结构,分为区块索引;
14.编写区块链类,生成新的区块。
15.优选地,所述将所述组数据进行投票筛选,获取目标数据包括:
16.将所述组数据进行投票筛选,获取目标数据,并生成对应的排序投票请求信息。
17.优选地,所述将所述组数据进行投票筛选,获取目标数据,并生成对应的排序投票请求信息的步骤之后,还包括:
18.在所述排序投票请求信息中添加可信时间戳,并将所述添加可信时间戳后的排序投票请求信息写入区块中。
19.优选地,所述通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证中添加可信时间戳包括:
20.将所述添加可信时间戳后的排序序列凭证写入区块中。
21.本发明实施例还公开了一种智能合约的排序装置,包括:
22.分配模块,用于将需要排序的原始数据分配成组数据;
23.投票筛选模块,用于将所述组数据进行投票筛选,获取目标数据;
24.添加模块,用于通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证添加可信时间戳。
25.优选地,所述装置还包括:
26.构建模块,用于构建区块链。
27.本发明实施例还公开了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的智能合约的排序方法的步骤。
28.本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的智能合约的排序方法的步骤。
29.本发明实施例包括以下优点:
30.本发明实施例中,该智能合约的排序方法包括:将需要排序的原始数据分配成组数据;将所述组数据进行投票筛选,获取目标数据;通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证添加可信时间戳。根据内容质量的质量,把内容质量从高到低一一进行了排序,最终让高质量的内容质量可以浮现出来。排序公正透明,可通过智能合约自动运行;对所有内容质量的一次质量排序,每一个内容质量具体的排名都是根据用户的操作得出来的,每个排位都是严格的、不可替换的、有迹可循的,每组内容质量在进行对比的时候,用户看不到其他用户的投票,每次投票都是在黑箱中进行,因此不会被其他用户干扰。
附图说明
31.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图
32.图1是本发明实施例的一种智能合约的排序方法实施例的步骤流程图;
33.图2是本发明实施例的一种区块生成步骤的流程示意图;
34.图3是本发明实施例的一种获取目标数据步骤的流程示意图;
35.图4是本发明实施例的一种排序投票请求信息写入步骤的流程示意图;
36.图5是本发明实施例的一种排序序列凭证写入步骤的流程示意图;
37.图6是本发明实施例的一种智能合约的排序装置实施例的结构框图;
38.图7是一个实施例的一种计算机设备的内部结构图。
具体实施方式
39.为了使本发明实施例所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
40.参照图1,示出了本发明实施例的一种智能合约的排序方法实施例的步骤流程图,具体可以包括如下步骤:
41.步骤101,将需要排序的原始数据分配成组数据;
42.本发明实施例中,本方法可以应用于各种终端,例如,手机、平板电脑、个人数字助理、穿戴设备(如眼镜、手表等)等等。在本申请实施例中,移动终端的操作系统可以包括android(安卓)、ios、windows phone、windows等等。
43.进一步地,该需要排序的原始数据的种类可以为文本数据、图像数据、音频数据、视频数据等,本发明实施例对此不作过多的限制。
44.具体而言,终端可以将需要排序的原始数据分配成组数据,举例而言,将原始数据通过算法分配成两两一组的组数据,当然,也分配成三个一组或四个一组的组数据,本发明实施例对此不作过多的限制;如将八个文本数据分成两两一组,共四组的数据。
45.需要说明的是,上述的算法可以是机器学习算法,通过用户的特征数据对机器学习算法进行训练,得到预测结果,即可获得分配的相似度较大的组数据。
46.参照图2,示出了本发明实施例的一种区块生成步骤的流程示意图,所述方法还包括:构建区块链,所述构建区块链包括:
47.步骤s11,确定区块结构,分为区块索引;
48.步骤s12,编写区块链类,生成新的区块。
49.首先确定区块结构,分为区块索引,前一个区块哈希,用于工作量证明的随机数,时间戳,该区块结构中包含的所有交易数据。确定交易的结构,分为交易发送方,交易接收方和交易的数量。
50.进一步地,编写交易和区块类;编写区块链类:区块链核心功能应该添加交易到待挖区块中,生成新的区块,进行工作量证明,此外,还需要通过一个hash函数用于打包区块生成摘要。
51.步骤102,将所述组数据进行投票筛选,获取目标数据;
52.进一步应用到本发明实施例中,可以针对该组数据进行投票筛选操作,具体地,终端可以接受用户针对组数据的投票筛选信息,得到排序数据,即为目标数据。
53.具体应用到本发明实施例中,参照图3,示出了本发明实施例的一种获取目标数据步骤的流程示意图,所述将所述组数据进行投票筛选,获取目标数据包括:
54.步骤s21,将所述组数据进行投票筛选,获取目标数据,并生成对应的排序投票请求信息。
55.即在得到目标数据的同时,还可以生成对应的排序投票请求信息。
56.进一步地,参照图4,示出了本发明实施例的一种排序投票请求信息写入步骤的流
程示意图,所述将所述组数据进行投票筛选,获取目标数据,并生成对应的排序投票请求信息的步骤之后,还包括:
57.步骤s31,在所述排序投票请求信息中添加可信时间戳,并将所述添加可信时间戳后的排序投票请求信息写入区块中。进一步增加可信性。
58.步骤103,通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证添加可信时间戳。
59.将目标数据写入区块链中的智能合约,通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证添加可信时间戳,保证排序执行的稳定性。
60.实际应用到本发明实施例中,参照图5,示出了本发明实施例的一种排序序列凭证写入步骤的流程示意图,所述通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证中添加可信时间戳包括:
61.步骤s41,将所述添加可信时间戳后的排序序列凭证写入区块中。
62.具体而言,可以将添加可信时间戳后的排序序列凭证写入区块中,通过区块链不可篡改,可溯源的特性,达到排序执行的稳定性。
63.本发明实施例中,该智能合约的排序方法包括:将需要排序的原始数据分配成组数据;将所述组数据进行投票筛选,获取目标数据;通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证添加可信时间戳。根据内容质量的质量,把内容质量从高到低一一进行了排序,最终让高质量的内容质量可以浮现出来。排序公正透明,可通过智能合约自动运行;对所有内容质量的一次质量排序,每一个内容质量具体的排名都是根据用户的操作得出来的,每个排位都是严格的、不可替换的、有迹可循的,每组内容质量在进行对比的时候,用户看不到其他用户的投票,每次投票都是在黑箱中进行,因此不会被其他用户干扰。
64.为了使本领域技术人员更好了理解本发明实施例,以下通过一个具体示例进行说明:
65.步骤1、基于传统的中心化内容质量排序功能模块,构建一条区块链;
66.首先确定区块结构,分为区块索引,前一个区块哈希,用于工作量证明的随机数,时间戳,区块中包含的所有交易数据。确定交易的结构,分为交易发送方,交易接收方和交易的数量。编写交易和区块类;编写区块链类:区块链核心功能应该添加交易到待挖区块中,生成新的区块,进行工作量证明,此外,为了方便操作,还定义了一个hash函数用于打包区块生成摘要。添加交易和工作量证明,生成新区块,构造函数(因为所有的节点都是一个创世区块,所以用类的静态成员来构造,并在每个节点产生时,将创世区块加入到节点的区块链中)等其他函数,编写点对点网络模拟程序:使用flask框架来生成服务器,使用requests库来进行节点间的通信,通过开启多个终端来模拟p2p网络节点,点对点的网络要求可以发现邻居节点(这里手动发现),添加邻居节点。解决节点之间数据不一致的冲突,另外还要提供api供其他节点访问
67.步骤2、将所有需要排序的内容质量通过算法分配成两两一组,此算法会确保每组的两个内容质量相对接近,即相似度高的;
68.内容的分配算法步骤为:第一步内容表征:为每个需要排序的内容抽取出一些特征来表示此内容;第二步特征学习:利用一个用户过去喜欢(及不喜欢)的内容的特征数据,来学习出此用户的喜好特征;第三步生成分配列表:通过比较上一步得到的用户特征与候
选内容的特征,为此用户分配一组相关性最大的内容。
69.步骤3、然后用户通过区块链智能合约程序进行投票筛选,在每一组中选出一个最好的,接收用户的投票筛选信息,并将排序投票请求信息上传加盖可信时间戳;
70.在系统分配的每一组内容中挑选出一个比较好的,然后对所有投票的用户进行统计,类似于不记名投票,加盖可信时间戳由系统自动加盖,用户的每一次操作都会自动记录当前操作时间节点并将时间信息打包进区块之中
71.步骤4、所有内容质量排序完成之后,再通过智能合约生成对应排序序列凭证加盖可信时间戳。
72.加盖可信时间戳由系统自动加盖,用户的每一次操作都会自动记录当前操作时间节点并将时间信息打包进区块之中。
73.最终所有用户投票的结果会转化成:根据内容质量的质量,把内容质量从高到低一一进行了排序,最终让高质量的内容质量可以浮现出来。排序公正透明,可通过智能合约自动运行;对所有内容质量的一次质量排序,每一个内容质量具体的排名都是根据用户的操作得出来的,每个排位都是严格的、不可替换的、有迹可循的,不管这个排位是前几名还是倒数后几名。每组内容质量在进行对比的时候,用户看不到其他用户的投票,每次投票都是在黑箱中进行,因此不会被其他用户干扰。
74.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
75.参照图6,示出了本发明实施例的一种智能合约的排序装置实施例的结构框图,具体可以包括如下模块:
76.分配模块301,用于将需要排序的原始数据分配成组数据;
77.投票筛选模块302,用于将所述组数据进行投票筛选,获取目标数据;
78.添加模块303,用于通过智能合约生成目标数据的排序序列凭证,并在排序序列凭证添加可信时间戳。
79.优选地,所述装置还包括:
80.构建模块,用于构建区块链。
81.优选地,所述构建模块包括:
82.确定子模块,用于确定区块结构,分为区块索引;
83.区块生成子模块,用于编写区块链类,生成新的区块。
84.优选地,所述投票筛选模块包括:
85.生成子模块,用于将所述组数据进行投票筛选,获取目标数据,并生成对应的排序投票请求信息。
86.优选地,与所述生成子模块相连的模块,包括:
87.排序投票请求信息写入子模块,用于在所述排序投票请求信息中添加可信时间戳,并将所述添加可信时间戳后的排序投票请求信息写入区块中。
88.优选地,所述添加模块包括:
89.排序序列凭证写入子模块,用于将所述添加可信时间戳后的排序序列凭证写入区块中。
90.上述智能合约的排序装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
91.上述提供的智能合约的排序装置可用于执行上述任意实施例提供的智能合约的排序方法,具备相应的功能和有益效果。
92.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种智能合约的排序方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
93.本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
94.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现图1至图5的实施例的步骤。
95.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下图1至图5的实施例的步骤。
96.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
97.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
98.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
99.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包
括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
100.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
101.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
102.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
103.以上对本发明所提供的一种智能合约的排序方法、一种智能合约的排序装置、一种计算机设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1