CN111444215A - 一种块链式账本中的成块方法、装置及设备 - Google Patents
一种块链式账本中的成块方法、装置及设备 Download PDFInfo
- Publication number
- CN111444215A CN111444215A CN202010538205.0A CN202010538205A CN111444215A CN 111444215 A CN111444215 A CN 111444215A CN 202010538205 A CN202010538205 A CN 202010538205A CN 111444215 A CN111444215 A CN 111444215A
- Authority
- CN
- China
- Prior art keywords
- blocking
- blocking condition
- data
- block
- account book
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种块链式账本中的成块方法、装置及设备。在以块链式账本存储数据记录的中心化的数据库服务端中,通过用户发起的成块条件更改指令,对相应的账本的成块条件进行更改,从而用户可以根据不同的业务场景对每个账本实现个性化的出块设置。
Description
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种块链式账本中的成块方法、装置及设备。
背景技术
在常规的块链式账本中,出块条件是固定不变的。但是在中心化的块链式账本中,随着业务类型增多,用户有可能需要个性化的出块条件,而常规方式无法满足。
基于此,需要一种可以在中心化的块链式账本中实现个性化出块的方案。
发明内容
本申请实施例的目的是提供一种在块链式账本中根据用户的需求在账本中进行个性化的出块的方案。
为解决上述技术问题,本申请实施例是这样实现的:
一种块链式账本中的成块方法,应用于以块链式账本存储数据记录的数据库服务端中,包括:
接收用户所发送的成块条件更改指令;
根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,所述成块条件包括:待存储的数据记录数量达到数量阈值,或者,距离上一次成块时刻的时间间隔达到时间阈值。
在所述块链式账本中,根据改变后的成块条件生成数据块。
对应的,本说明书实施例还提供一种块链式账本中的成块装置,应用于以块链式账本存储数据记录的数据库服务端中,包括:
接收模块,接收用户所发送的成块条件更改指令;
更改模块,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,所述成块条件包括:待存储的数据记录数量达到数量阈值,或者,距离上一次成块时刻的时间间隔达到时间阈值。
成块模块,在所述块链式账本中,根据改变后的成块条件生成数据块。
在以块链式账本存储数据记录的中心化的数据库服务端中,通过用户发起的成块条件更改指令,对相应的账本的成块条件进行更改,从而用户可以根据不同的业务场景对每个账本实现个性化的出块设置,满足用户的实际业务需要,提高用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本说明书实施例所涉及的系统架构示意图;
图2是本说明书实施例提供的一种块链式账本中的成块方法流程示意图;
图3为本说明书实施例所提供的一种生成块链式账本的流程示意图;
图4为本说明书实施例所提供的一种数据块的块头的示意图;
图5是本说明书实施例提供的一种块链式账本中的成块装置的结构示意图;
图6是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在常规的块链式账本中,出块条件通常是固定的。例如,比特币中就是写死在初始逻辑中。但是在中心化的数据库服务端中,一个服务端通常要面对多个机构或者用户提供块链式账本的服务,如图1所示,图1为本说明书实施例所涉及的系统架构示意图。
在该示意图中,一个服务端可以服务多个企业机构,而每个企业机构又可以面向多名用户,或者,数据库服务端还可以直接对接用户,任一用户均可以在数据库服务端中建立属于自己的账本。由于每个用户所涉及的业务往往是不一样的,那么随着业务类型增多,用户有可能需要个性化的出块条件,而常规方式无法满足。
例如,数据库服务端对接的机构是某金融产品公司,账本中的数据记录可以是个人用户在该金融产品公司的理财记录;或者,对接的机构可以是政府部门,其中的数据记录是政府部门对于该部门所管理的公共项目的开销明细;或者,数据库服务端对接的机构是某个医院,其中的数据记录是病人的病历;或者,数据库服务端对接的机构是第三方支付机构,数据记录可以是个人用户通过该机构的支付记录,等等。
那么在不同的业务类型下,每天所产生的数据量是不一样的,在金融机构中的用户可能每天所产生的数据记录较多,而在对接医院的用户时,每天产生的数据记录则可能较少。如果都按照一样的成块条件来生成数据块,那么显然无法适应不同类型的业务场景。基于此,本说明书实施例提供一种对于每个账本进行个性化的出块方案。
以下结合附图,详细说明本说明书各实施例提供的技术方案。如图2所示,图2是本说明书实施例提供的一种块链式账本中的成块方法流程示意图,应用于以块链式账本存储数据记录的中心化的数据库服务端中,该流程具体包括如下步骤:
S201,接收用户所发送的成块条件更改指令。
首先需要说明的是,在中心化的块链式账本中,每个账本在创建时即拥有一个初始默认的成块条件,这里的成块条件包括待存储的数据记录数量达到数量阈值,或者,距离上一次成块时刻的时间间隔达到时间阈值。换言之,任一账本总是会存在一个成块条件,而成块条件更改指令的更改对象即为当前的成块条件。
由于用户在服务端中可以是同时拥有多个账本,每个用户在服务端会有一个账户AccountID,同时每个账本都拥有不同的账本标识ledgerID。因此,用户所发送的成块条件更改指令可以是针对一个账本而言,也可以是针对该用户的所有账本而言。
例如,用户可以在成块条件更改指令中包含更改对象指示字段,来指示该指令是对于更改对象指示字段所对应的账本生效。例如,更改对象指示字段的取值可以是“1”表征对于用户的所有账本生效,或者取值可以是“0”表征仅对于用户的当前账本生效。在更改对象指示字段缺省的时候即可以默认为仅对当前的账本生效。
成块条件更改指令中可以包含多种类型的成块参数,以对成块条件在多个方面进行更改,以下列举几种成块条件更改指令的示例:
示例1,Hint commit when jsn = const1,其中,“jsn = const1”即为成块参数中的数据记录数量的绝对值;
示例2,Hint commit when acc_incremental = const2,其中,“acc_incremental =const2” ,其中,“acc_incremental = const2”即为成块参数中的在该用户下数据记录数量的增长量;
示例3,Hint commit when clue = ABC and count=const4,其中,“clue = ABC”指的是用户上传的各种数据记录中包含业务属性“ABC”的数据记录,“count=const4”即为包含业务属性“ABC”的数据记录的数量;
示例4,Hint commit when time first exceed const5,其中,“time first exceedconst5”指的是成块时间间隔达到数值const5,这里的“time”可以是采用系统本身的时间,也可以是采用可信授时机构所发布的可信时间源时间;
示例5,Hint commit “ledgerID=0001”,其中,“ledgerID=0001”指的是账本ID为0001;
示例6,Hint commit “AccountID=0002”,其中,“Account=0002”指的是用户ID为0002;
示例7,Hint commit “path=file1”,其中,“path=file1”为一条指定路径,指向系统或用户预先配置好的文件,该文件中包含了相应的成块条件。
S203,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件。
具体而言,服务端在接收到成块条件更改指令之后,即根据预设的逻辑执行所述成块条件更改指令,根据其中所包含的参数来改变所述块链式账本中的成块条件。
如前所述,更改后的成块条件同样是待存储的数据记录数量阈值,或者,距离上一次成块时刻的时间间隔达到时间阈值。只不过,更改后的数量阈值和时间阈值是由成块条件更改指令中的成块参数所决定的。这里的数量阈值包括了绝对数量阈值(即当数据记录的数量到达某个数值时)和增量数量阈值(当数据记录的增量到达某个数值时),时间阈值同样也包括了绝对时间阈值(时间到达阈值时间点)和增量时间阈值(时间间隔到达某个值)。
例如,对于示例1中的指令,即根据“jsn = const1”修改成块条件为“当账本中的数据记录的总数量达到数值const1时”。在这种情形下,在账本中会在数据记录的总数量到达“const1”时生成一个数据块,而后不再生成数据块或者回复至改变之前的成块条件。
对于示例2中的指令,即根据“acc_incremental = const2” 修改成块条件为“当账本中的数据记录的增量达到数值const1时” 。在这种情形下,在后续的账本中会每当数据记录的增量到达“const2”时,即生成一个数据块。
对于示例3中的指令,即根据“clue = ABC and count=const4”修改成块条件为“包含业务属性ABC的数据记录的增量达到const4”时。在这种情形下,在后续的账本中会每当包含业务属性ABC的数据记录的增量达到const4,即生成一个数据块。
对于示例4中的指令,即根据“time first exceed const5” 修改成块条件为“当账本中距离上一次成块时间的间隔达到const5时”。在这种情形下,在后续的账本中会每间隔const5的时间即生成一个数据块。
对于示例5和6中的指令,即根据“ledgerID=0001”来确定另外一个账本,或者根据“AccountID=0002”来获取另外一个用户所给出的可以参考的另外一个账本,进而可以获取另外一个账本的成块条件,从而可以将另一个账本的成块条件确定为自身的块链式账本的成块条件。
对于示例7中的指令,在实际应用中,数据库服务端可以预先基于不同的业务场景给出各场景下的成块条件的参考,并且预先生成相应的成块条件配置文件在指令的路径下,或者用户也可以基于自己的经验将自己的成块条件配置文件存储在数据库服务端的指定路径下。例如,对于金融交易机构中的用户,服务端给出参考为“每1小时生成一个数据块”,而对于医院机构的用户,服务端给出参考为“每1天生成一个数据块”,而每中参考所对应的配置文件都在服务端中有不同的指定路径。
从而,用户可以在指令中通过指定路径“path=file1”,指向系统或用户预先配置好的文件。数据库服务端即可以根据该路径来获得预先设定的成块条件,并将所述预先设定的成块条件确定为所述块链式账本中的成块条件。
S205,在所述块链式账本中,根据改变后的成块条件生成数据块。
具体而言,在中心化的数据库服务提供方,块链式的账本通过如下方式生成具体的数据块,如图3所示,图3为本说明书实施例所提供的一种生成块链式账本的流程示意图,包括:
S301,接收待存储的数据记录,确定各数据记录的哈希值。
如前所述,此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。
数据记录中可以包含有业务属性,在每个与数据库服务方对接的机构中,所述业务属性在所述对接机构中,一般而言是唯一存在的,业务属性基于不同的业务场景,可以包括用户名、用户身份证号、驾照编号、手机号、项目唯一编号等等。
例如,对于第三方支付机构而言,数据记录是用户的消费记录,此时的业务属性即为用户标识(包括手机号、身份证号、用户名等等),或者对该用户标识进行哈希算法所得到的哈希值;或者,对于政府机构而言,数据记录为多个公共项目的开销流水,则此时的业务属性可以为每个项目的唯一编号。
业务属性可以存储于数据记录中的指定字段(例如,数据记录的头部或者尾部),从而可以方便数据库服务端以及用户从中获取该数据记录的业务属性。
需要说明的是,在同一账本中,可以包含有多条数据记录。这些数据记录的业务属性则很可能是不一样的。例如,在一个账本面向多个用户开放时,数据记录可能来源于不同的用户,若业务属性为用户标识, 则容易理解不同的数据记录中常常包含了不同的用户标识。
S303,当达到所述改变后的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。
如前所述,所述成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。
此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。
当N=1时,即此时的数据块为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。
当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值。又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。
用户在上传数据成功后,即可以得到对应的数据记录的哈希值以及所处的数据块的哈希值,并保存,并且可以基于该哈希值发起完整性验证。具体的验证方式包括重新计算数据记录自身的哈希值以及所处的数据块的哈希值,与本地所保存的进行对比。
上述方式生成的数据块,可以包括块头和块体两个部分。块体中可以用于存储拼接数据的明文,或者拼接数据的哈希值等等;块头中可以用于存储有关本数据块的元数据,例如,账本的版本号,前一数据块的哈希值,自身数据块中的拼接数据所组成的默克尔树的根哈希值,自身数据块的哈希值,用于记录拼接数据的被操作状态的状态数组等等。如图4所示,图4为本说明书实施例所提供的一种数据块的块头的示意图。
通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值发起完整性验证,对于数据块中任何内容(包括对于数据块中数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。
完整性验证包括对于一个数据块的完整性验证,即,根据数据块中数据记录的哈希值重新组成默克尔树,计算默克尔树的根哈希值,并且根据默克尔树的根哈希值与前一数据块的哈希值重新计算该数据块的哈希值,与事先保存的数据块的哈希值进行一致性对比。
完整性验证还可以包括对于若干连续数据块的完整性验证,即根据数据块的块头中所保存的默克尔树的根哈希值与前一数据块的哈希值重新计算该数据块的哈希值,并与事先保存的数据块的哈希值进行对比。
在以块链式账本存储数据记录的中心化的数据库服务端中,通过用户发起的成块条件更改指令,对相应的账本的成块条件进行更改,从而用户可以根据不同的业务场景对每个账本实现个性化的出块设置,满足用户的实际业务需要,提高用户体验。
此外需要说明的是,用户每一次输入成块条件更改指令,都将会更改账本中的成块条件。基于此,为了保留相应的证据,还可以每当接收到用户所发送的成块条件更改指令时,即生成包含所述成块条件更改指令的数据记录,并将所述包含所述成块条件更改指令的数据记录写入所述账本中。具体的写入方式在前文的步骤S301和S303中已经进行了说明,此处不再赘述。由于块链式账本是无法篡改的,将成块条件更改指令以数据记录的形式写入账本,即相当于将用户对于成块条件的更改以不可篡改的方式进行了保存,可以留存作为日后的证据。
对应的,本说明书实施例还提供一种块链式账本中的成块装置,应用于以块链式账本存储数据记录的中心化的数据库服务端中,如图5所示,图5是本说明书实施例提供的一种块链式账本中的成块装置的结构示意图,包括:
接收模块501,接收用户所发送的成块条件更改指令;
更改模块503,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,所述成块条件包括:待存储的数据记录数量达到数量阈值,或者,距离上一次成块时刻的时间间隔达到时间阈值。
成块模块505,在所述块链式账本中,根据改变后的成块条件生成数据块。
进一步地,当所述成块条件更改指令包含有成块参数时,所述成块参数包括成块时间间隔或者数据记录数量,所述更改模块503,改变所述块链式账本中的成块条件为:待存储的数据记录数量达到所述数据记录数量;或者,距离上一次成块时刻的时间间隔达到所述成块时间间隔。
进一步地,当所述成块参数中还包括业务属性时,所述更改模块503,改变所述块链式账本中的成块条件为:包含所述业务属性的数据记录达到所述数据记录数量。
进一步地,所述更改模块503,根据所述成块条件更改指令的指示,从指定路径获取预先设定的成块条件,将所述预先设定的成块条件确定为所述块链式账本中的成块条件。
进一步地,当所述成块条件更改指令中包含有用户标识或者账本标识时,所述更改模块503,确定所述用户标识或者账本标识所对应的另一账本;获取所述另一账本的成块条件,将所述另一账本的成块条件确定为所述块链式账本中的成块条件。
进一步地,所述成块模块505,接收待存储的数据记录,确定各数据记录的哈希值;当达到所述改变后的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。
进一步地,所述装置还包括写入模块507,生成包含所述成块条件更改指令的数据记录,将所述包含所述成块条件更改指令的数据记录写入所述账本中。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图2所示的块链式账本中的成块方法。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图2所示的块链式账本中的成块方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (15)
1.一种块链式账本中的成块方法,应用于以块链式账本存储数据记录的中心化的数据库服务端中,包括:
接收用户所发送的成块条件更改指令;
根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,所述成块条件包括:待存储的数据记录数量达到数量阈值,或者,距离上一次成块时刻的时间间隔达到时间阈值;
在所述块链式账本中,根据改变后的成块条件生成数据块。
2.如权利要求1所述的方法,当所述成块条件更改指令包含有成块参数时,所述成块参数包括成块时间间隔或者数据记录数量,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,包括:
改变所述块链式账本中的成块条件为:待存储的数据记录数量达到所述数据记录数量;或者,距离上一次成块时刻的时间间隔达到所述成块时间间隔。
3.如权利要求2所述的方法,当所述成块参数中还包括业务属性时,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,包括:
改变所述块链式账本中的成块条件为:包含所述业务属性的数据记录达到所述数据记录数量。
4.如权利要求1所述的方法,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,包括:
根据所述成块条件更改指令的指示,从指定路径获取预先设定的成块条件,将所述预先设定的成块条件确定为所述块链式账本中的成块条件。
5.如权利要求1所述的方法,当所述成块条件更改指令中包含有用户标识或者账本标识时,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,包括:
确定所述用户标识或者账本标识所对应的另一账本;
获取所述另一账本的成块条件,将所述另一账本的成块条件确定为所述块链式账本中的成块条件。
6.如权利要求1所述的方法,在所述块链式账本中,根据改变后的成块条件生成数据块,包括:
接收待存储的数据记录,确定各数据记录的哈希值;
当达到所述改变后的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。
7.如权利要求6所述的方法,所述方法还包括:生成包含所述成块条件更改指令的数据记录,将所述包含所述成块条件更改指令的数据记录写入所述账本中。
8.一种块链式账本中的成块装置,应用于以块链式账本存储数据记录的中心化的数据库服务端中,包括:
接收模块,接收用户所发送的成块条件更改指令;
更改模块,根据所述成块条件更改指令的指示,改变所述块链式账本中的成块条件,所述成块条件包括:待存储的数据记录数量达到数量阈值,或者,距离上一次成块时刻的时间间隔达到时间阈值;
成块模块,在所述块链式账本中,根据改变后的成块条件生成数据块。
9.如权利要求8所述的装置,当所述成块条件更改指令包含有成块参数时,所述成块参数包括成块时间间隔或者数据记录数量,所述更改模块,改变所述块链式账本中的成块条件为:待存储的数据记录数量达到所述数据记录数量;或者,距离上一次成块时刻的时间间隔达到所述成块时间间隔。
10.如权利要求9所述的装置,当所述成块参数中还包括业务属性时,所述更改模块,改变所述块链式账本中的成块条件为:包含所述业务属性的数据记录达到所述数据记录数量。
11.如权利要求8所述的装置,所述更改模块,根据所述成块条件更改指令的指示,从指定路径获取预先设定的成块条件,将所述预先设定的成块条件确定为所述块链式账本中的成块条件。
12.如权利要求8所述的装置,当所述成块条件更改指令中包含有用户标识或者账本标识时,所述更改模块,确定所述用户标识或者账本标识所对应的另一账本;获取所述另一账本的成块条件,将所述另一账本的成块条件确定为所述块链式账本中的成块条件。
13.如权利要求8所述的装置,所述成块模块,接收待存储的数据记录,确定各数据记录的哈希值;当达到所述改变后的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。
14.如权利要求13所述的装置,还包括写入模块,生成包含所述成块条件更改指令的数据记录,将所述包含所述成块条件更改指令的数据记录写入所述账本中。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010538205.0A CN111444215A (zh) | 2020-06-12 | 2020-06-12 | 一种块链式账本中的成块方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010538205.0A CN111444215A (zh) | 2020-06-12 | 2020-06-12 | 一种块链式账本中的成块方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111444215A true CN111444215A (zh) | 2020-07-24 |
Family
ID=71655410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010538205.0A Pending CN111444215A (zh) | 2020-06-12 | 2020-06-12 | 一种块链式账本中的成块方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444215A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100690A (zh) * | 2020-11-23 | 2020-12-18 | 长沙树根互联技术有限公司 | 基于区块链的出块方法、装置和可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109451061A (zh) * | 2018-12-20 | 2019-03-08 | 全链通有限公司 | 区块链的合约调整处理方法和系统 |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN110347678A (zh) * | 2019-06-19 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种金融数据的存储方法、系统、装置及设备 |
CN110400217A (zh) * | 2018-04-25 | 2019-11-01 | 中国移动通信集团广东有限公司 | 智能合约的规则变更处理方法及装置 |
CN111046052A (zh) * | 2019-11-11 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种数据库中的操作记录存储方法、装置及设备 |
CN111444270A (zh) * | 2020-02-25 | 2020-07-24 | 吴燕琼 | 一种基于区块链的控制有害信息的方法及系统 |
-
2020
- 2020-06-12 CN CN202010538205.0A patent/CN111444215A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110400217A (zh) * | 2018-04-25 | 2019-11-01 | 中国移动通信集团广东有限公司 | 智能合约的规则变更处理方法及装置 |
CN109451061A (zh) * | 2018-12-20 | 2019-03-08 | 全链通有限公司 | 区块链的合约调整处理方法和系统 |
CN110347678A (zh) * | 2019-06-19 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种金融数据的存储方法、系统、装置及设备 |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN111046052A (zh) * | 2019-11-11 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种数据库中的操作记录存储方法、装置及设备 |
CN111444270A (zh) * | 2020-02-25 | 2020-07-24 | 吴燕琼 | 一种基于区块链的控制有害信息的方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100690A (zh) * | 2020-11-23 | 2020-12-18 | 长沙树根互联技术有限公司 | 基于区块链的出块方法、装置和可读存储介质 |
CN112100690B (zh) * | 2020-11-23 | 2021-02-23 | 长沙树根互联技术有限公司 | 基于区块链的出块方法、装置和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188096B (zh) | 一种数据记录的索引创建方法、装置及设备 | |
CN110162662B (zh) | 一种块链式账本中数据记录的验证方法、装置及设备 | |
CN111444196B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN110022315B (zh) | 一种块链式账本中的权重管理方法、装置及设备 | |
CN111352935B (zh) | 一种块链式账本中的索引创建方法、装置及设备 | |
CN110008743B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN110837502B (zh) | 一种块链式账本中的数据存储方法、装置及设备 | |
CN110825737A (zh) | 索引创建和数据查询方法、装置及设备 | |
WO2020211497A1 (zh) | 一种个人资产变更记录的存储方法、系统、装置及设备 | |
CN110349019B (zh) | 一种块链式账本中的验证方法、装置及设备 | |
CN111444192B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN110474775B (zh) | 一种块链式账本中的用户创建方法、装置及设备 | |
CN110347679B (zh) | 一种基于收据的数据存储方法、装置及设备 | |
CN111046052B (zh) | 一种数据库中的操作记录存储方法、装置及设备 | |
CN110362568B (zh) | 一种针对块链式账本的压缩方法、装置及设备 | |
CN110059088B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN111444216A (zh) | 一种基于中心化块链式账本的数据块删除方法 | |
CN110059087B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN110362570B (zh) | 一种数据存储方法、装置及设备 | |
CN111444215A (zh) | 一种块链式账本中的成块方法、装置及设备 | |
CN111444194B (zh) | 一种块链式账本中索引的清除方法、装置及设备 | |
CN110636042B (zh) | 一种服务端已验证块高的更新方法、装置及设备 | |
CN110688664B (zh) | 一种块链式账本中的权限管理方法、装置及设备 | |
CN111444197B (zh) | 一种块链式账本中数据记录的验证方法、装置及设备 | |
CN110717172B (zh) | 一种块链式账本中的权限移交方法、装置及设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200724 |
|
RJ01 | Rejection of invention patent application after publication |