CN110458567B - 一种基于区块链的物品交易管理系统和方法 - Google Patents
一种基于区块链的物品交易管理系统和方法 Download PDFInfo
- Publication number
- CN110458567B CN110458567B CN201910782944.1A CN201910782944A CN110458567B CN 110458567 B CN110458567 B CN 110458567B CN 201910782944 A CN201910782944 A CN 201910782944A CN 110458567 B CN110458567 B CN 110458567B
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- node
- recorded
- nodes
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于区块链的物品交易管理系统和方法,系统中包括服务器和多个节点,两个节点完成一笔交易后,服务器生成用于记录这笔交易的待记录区块,在待记录区块的区块主体中记录该交易的交易信息,交易信息中包括参与交易的节点之间的亲密度,并在待记录区块的区块头中写入待记录区块的区块哈希值和区块链的末端区块的区块哈希值,使待记录区块连接至区块链,每一个节点均可以利用区块哈希值查询区块链中的交易信息。本方案中,服务器可以将从节点获取的交易信息记录在区块链中,并提供给用户查询,使得用户能够基于区块链中记录的交易信息以及发生交易时残垣交易的节点之间的亲密度,解决关于物品交易的争议,满足用户的物品交易需求。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种基于区块链的物品交易管理系统和方法。
背景技术
生活中,每个人都会有些不经常使用的闲置物品。持有者可以将自己的闲置物品租借给其他需要使用这些闲置物品的人,也可以用自己的闲置物品交换其他人的闲置物品,这种闲置物品的交换和租借的过程,就是物品交易的过程。
随着参与物品交易的人数的增加,以及闲置物品被交易的频率的增加,目前的仅基于参与交易双方的口头承诺的物品交易方法很容易引起对物品交易的争议,因此这种方法并不能有效满足多个用户之间的物品交易的需求。综上所述,目前亟需一种针对物品交易的管理方案,以实现多用户之间的有效的物品交易。
发明内容
基于上述现有技术的缺点,本发明提供一种基于区块链的物品交易管理系统和方法,已解决现有的交易方法无法适应多个用户之间的物品交易需求的问题。
本发明第一方面提供一种基于区块链的物品交易管理方法,应用于服务器,所述服务器连接有多个节点,所述方法包括:
接收节点发送的待记录交易的交易信息;其中,所述待记录交易指代未记录在区块链中的交易;所述交易信息包括:参与交易的节点的节点标识,被交易物品的物品标识,交易类型,交易发生时间,交易完成时间及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;
利用随机散列算法计算所述待记录交易的交易信息,得到待记录区块的区块哈希值;
组合所述待记录交易的交易信息,以及所述待记录区块的区块哈希值,得到待记录区块;其中,所述待记录区块的区块头记录有所述待记录区块的区块哈希值,所述待记录区块的区块主体记录有所述待记录交易的交易信息;
在所述待记录区块的区块头中写入所述区块链当前的末端区块的区块哈希值,使所述待记录区块连接在所述区块链的末端;
向每一个参与所述待记录交易的节点发送所述待记录区块的区块哈希值;其中,所述待记录区块的区块哈希值作为节点查询历史交易信息的依据。
可选的,所述接收节点发送的待记录交易的交易信息之前,还包括:
接收新增节点发送的注册请求;其中,所述注册请求携带有,新用户持有的物品的数量,以及,新用户持有的物品的种类;所述新用户指代所述新增节点对应的用户;
生成所述新增节点的节点标识;
针对新用户持有的每一个物品,根据所述新增节点的节点标识,以及所述物品的种类,生成所述物品的物品标识;
向所述新增节点发送响应信息;其中,所述响应信息携带有所述新增节点的节点标识,以及所述新用户的每一个物品的物品标识。
可选的,所述方法还包括:
从所述服务器连接的多个节点中选择部分节点作为数据中心节点;
将所述区块链拆分为多段子区块链;
向每个所述数据中心节点发送至少一段所述子区块链。
可选的,所述方法还包括:
接收节点发送的交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块;
响应所述交易查询请求,向所述节点发送响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
本发明第二方面提供一种基于区块链的物品交易管理方法,适用于服务器连接的多个节点中的任意一个节点,所述方法包括:
所述节点向另一个节点发送交易请求;其中,所述交易请求携带有请求交易的物品的种类,请求进行的交易的交易类型,以及所述节点的节点标识;
所述节点对应的用户和所述另一个节点对应的用户完成所述交易请求对应的交易后,所述节点向所述服务器发送子交易信息;其中,所述子交易信息包括:被交易物品的物品标识,发送交易请求的时间,完成交易的时间,交易类型,所述节点的节点标识以及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;
所述节点接收所述服务器下发的待记录区块的区块哈希值,并更新所述节点与所述另一个节点之间的亲密度;其中,所述待记录区块的区块主体记录有所述交易请求对应的交易的交易信息,所述交易信息通过组合所述子交易信息和所述另一个节点的节点标识得到;所述待记录区块的区块哈希值,作为所述节点查询历史交易信息的依据。
可选的,所述方法还包括:
所述节点向所述服务器指定的数据中心节点发送交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块;
所述节点接收所述数据中心节点发送的响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
可选的,所述方法还包括:
所述节点向服务器发送交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块;
所述节点接收服务器发送的响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
本发明第三方面提供一种基于区块链的物品交易管理系统,所述系统包括服务器以及与所述服务器连接的多个节点,所述服务器包括:
接收单元,用于接收节点发送的待记录交易的交易信息;其中,所述待记录交易指代未记录在区块链中的交易;所述交易信息包括:参与交易的节点的节点标识,被交易物品的物品标识,交易类型,交易发生时间,交易完成时间及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;
计算单元,用于利用随机散列算法计算所述待记录交易的交易信息,得到待记录区块的区块哈希值;
组合单元,用于组合所述待记录交易的交易信息,以及所述待记录区块的区块哈希值,得到待记录区块;其中,所述待记录区块的区块头记录有所述待记录区块的区块哈希值,所述待记录区块的区块主体记录有所述待记录交易的交易信息;
连接单元,用于在所述待记录区块的区块头中写入所述区块链当前的末端区块的区块哈希值,使所述待记录区块连接在所述区块链的末端;
发送单元,用于向每一个参与所述待记录交易的节点发送所述待记录区块的区块哈希值;其中,所述待记录区块的区块哈希值作为节点查询历史交易信息的依据。
可选的,所述服务器的接收单元还用于:接收新增节点发送的注册请求;其中,所述注册请求携带有,新用户持有的物品的数量,以及,新用户持有的物品的种类;所述新用户指代所述新增节点对应的用户;
所述服务器还包括:
生成单元,用于生成所述节点的节点标识,并且,用于针对新用户持有的每一个物品,根据所述新增节点的节点标识,以及所述物品的种类,生成所述物品的物品标识;
所述服务器的发送单元还用于,向所述新增节点发送响应信息;其中,所述响应信息携带有所述新增节点的节点标识,以及所述新用户的每一个物品的物品标识。
本发明第四方面提供一种基于区块链的物品交易管理系统,所述系统包括服务器以及与所述服务器连接的多个节点,其中的每一个节点均包括:
发送单元,用于向另一个节点发送交易请求;其中,所述交易请求携带有请求交易的物品的种类,请求进行的交易的交易类型,以及所述节点的节点标识;
所述发送单元,用于在所述节点对应的用户和所述另一个节点对应的用户完成所述交易请求对应的交易后,向所述服务器发送子交易信息;其中,所述子交易信息包括:被交易物品的物品标识,发送交易请求的时间,完成交易的时间,交易类型,所述节点的节点标识及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;
接收单元,用于接收所述服务器下发的待记录区块的区块哈希值,并更新所述节点与所述另一个节点之间的亲密度;其中,所述待记录区块的区块主体记录有所述交易请求对应的交易的交易信息,所述交易信息通过组合所述子交易信息和所述另一个节点的节点标识得到;所述待记录区块的区块哈希值,作为所述节点查询历史交易信息的依据。
本发明提供一种基于区块链的物品交易管理系统和方法,系统中包括服务器和多个节点,两个节点完成一笔交易后,服务器生成用于记录这笔交易的待记录区块,在待记录区块的区块主体中记录该交易的交易信息,交易信息中包括参与交易的节点之间的亲密度,并在待记录区块的区块头中写入待记录区块的区块哈希值和区块链的末端区块的区块哈希值,使待记录区块连接至区块链,每一个节点均可以利用区块哈希值查询区块链中的交易信息。本方案中,服务器可以将从节点获取的交易信息记录在区块链中,并提供给用户查询,使得用户能够基于区块链中记录的交易信息以及发生交易时残垣交易的节点之间的亲密度,解决关于物品交易的争议,满足用户的物品交易需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于区块链的物品交易管理方法的流程图;
图2为本发明另一实施例提供的一种基于区块链的物品交易管理方法的流程图;
图3为本发明实施例提供的一种基于区块链的物品交易管理系统的服务器的结构示意图;
图4为本发明实施例提供的一种基于区块链的物品交易管理系统的节点的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供的基于区块链的物品交易管理方法,主要基于服务器以及多个连接至服务器的节点实现,这些节点和服务器,相当于构成了一个用于在多个用户之间进行物品交易的网络。
其中,节点可以是电脑或智能手机等设备,一个节点对应一个用户,用户通过节点实现与服务器的数据交互,任意两个用户之间完成一次交易后,这次交易的交易信息就可以由用户输入节点,然后由节点发送至服务器。服务器可以作为物品交易管理时态数据库,以区块链的形式记录各个节点对应的用户之间的物品交易的交易信息,并且允许用户通过对应的节点访问区块链中记录的交易信息。
可以理解的,本申请实施例提供基于区块链的物品交易管理方法,一方面包括服务器将交易信息打包成区块,并将区块连接在区块链中,从而完成对交易信息的记录;另一方面还包括服务器为自身连接的多个节点提供交易查询服务,响应节点的交易查询请求,向节点发送区块链中记录的交易信息的过程。
下面结合图1介绍本申请实施例中第一方面的实现过程:
S101、第一节点向第二节点发送交易请求。
为了方便理解本申请实施例提供的方法,本实施例以网络中的任意两个节点(分别记为第一节点和第二节点)以及服务器之间交互过程为例说明本实施例提供的方法。本领域技术人员能够理解,本实施例中的第一节点和第二节点并不特指网络中的某两个节点,而是可以是网络中的任意两个节点,因此,基于第一节点和第二节点介绍的方法,可以直接适用于网络中的所有节点。
具体的,上述交易请求携带有请求交易的物品的种类,请求进行的交易的交易类型,以及第一节点的节点标识。
其中,第一节点的节点标识在第一节点向服务器注册时,由服务器生成并发送给第一节点。
网络中出现新增节点时,新增节点可以通过以下过程向服务器注册,注册完成后这个新增节点的用户就可以与网络的其他节点对应的用户进行交易:
新增节点向服务器发送注册请求,其中,注册请求携带有,新用户持有的物品的数量,以及,新用户持有的物品的种类,这里的新用户指代新增节点对应的用户。
服务器收到注册请求后,生成新增节点的节点标识,其中,网络中各个节点的节点标识,可以用一串字符串表示。相对的,服务器生成新增节点的节点标识,可以是随机的生成一串字符串,只要保证该字符串在当前的网络中是唯一的,根据这个字符串能够唯一的确定出对应的这个新增节点即可。
其中,由于节点与用户一一对应,因此,节点标识就相当于是对应的用户的用户标识。
生成节点标识后,服务器针对新用户持有的每一个物品,根据新增节点的节点标识,以及物品的种类,生成新用户持有的每一个物品的物品标识。与节点标识类似,物品标识也可以认为是,一个用于唯一的确定出网络的某一个具体物品的字符串,这样,通过记录每一笔交易中参与交易的节点的节点标识和被交易的物品的物品标识,就可以准确的记录用户之间的物品交易行为。
服务器向新增节点发送响应信息;其中,响应信息中携带有新增节点的节点标识,以及新用户的每一个物品的物品标识,新增节点收到响应消息,就表示新增节点注册成功。
请求进行的交易的交易类型,可以包括物品交换、物品借用以及物品授权等,第一节点和第二节点之间允许进行的交易类型,可以根据这两个节点之间的亲密度决定,若第一节点和第二节点的亲密度较高,那么第一节点和第二节点之间的交易类型可以是上述三种交易类型中任意一种,反之,若亲密度较低,那么只能进行上述三种交易类型中的前两种或者只能进行第一种。
网络中任意两个节点的亲密度,是在两个节点之间的初始亲密度的基础上,根据两个节点之间成功进行的物品交易的次数不断更新得到的。
具体的,一个新增节点注册时,服务器可以为这个新增节点分配与网络中其他每一个节点的初始亲密度。然后新增节点基于这个初始亲密度与另一个节点进行物品交易,每成功进行一次物品交易,这个新增节点与进行交易的那个节点之间的亲密度就在原有的亲密度的基础上增加,以此类推。
综上所述,亲密度可以认为是一个根据两个节点之间的历史交易记录确定的,用于反映两个节点之间的交易的可信度的指标。
S102、第二节点向第一节点发送请求交易的物品的物品标识。
具体的,第一节点发送交易请求后,第一节点对应的用户(即第一用户)和第二节点对应的用户(即第二用户)就可以进行物品交易,在第一用户和第二用户确定交易成功后,第二节点才执行步骤S102,向第一节点发送请求交易的物品的物品标识。
S103、第一节点向服务器发送子交易信息。
子交易信息包括:被交易物品的物品标识,发送交易请求的时间,完成交易的时间,交易类型,以及第一节点的节点标识。
可选的,第一节点发送的子交易信息还可以包括,当前第一节点与第二节点之间的亲密度。
其中,第一节点发送交易请求的时间,就是这笔交易的交易发生时间。
S104、第二节点向服务器发送第二节点的节点标识。
第一节点向服务器送的子交易信息和第二节点发送的节点标识,就构成了第一用户和第二用户之间刚完成的这一交易的交易信息,其中,由于已经完成的这笔交易还未被服务器记录在区块链中,因此,这笔交易可以认为是一笔待记录交易。
可选的,第二节点也可以向服务器发送当前第一节点和第二节点之间的亲密度。
S105、服务器接收节点发送的待记录交易的交易信息。
上述交易信息,包括前述第一节点发送的子交易信息,和第二节点发送的第二节点的节点标识。另外,若第一节点和第二节点向服务器发送了当前第一节点和第二节点之间的亲密度,则上述交易信息还包括当前第一节点和第二节点之间的亲密度。
待记录交易是指,已经完成但是尚未被记录在区块链中的交易。在本实施例中,待记录交易就是前述第一节点和第二节点完成的这笔交易。
可以理解的,在实际应用场景中,由于网络中存在多个节点,因此,可能出现在同一时间段内完成了多笔交易的情况,这种情况下,同一时间段内完成的这些交易都是待记录交易。对应的,这些待记录交易的交易信息都需要记录在区块链中。
S106、服务器生成待记录区块的区块哈希值。
待记录区块,是指用于保存上述待记录交易的交易信息的区块。一个区块包括区块头和区块主体,区块主体用于保存上述交易信息,而区块头则用于保存该区块的区块哈希值,并且,在该区块被连接至区块链之后,区块头还用于保存该区块的前一个区块的区块哈希值,各个区块之间通过这种方式逐个连接,就构成一个区块链。
具体的,如果需要记录的待记录交易只有一笔,那么服务器可以直接利用随机散列算法计算这一笔待记录交易的交易信息,得到的哈希值就是待记录区块的区块哈希值。如果同一时间段内完成了多笔待记录交易,服务器可以利用随机散列算法计算每一笔待记录交易的交易信息,得到每一笔待记录交易对应的哈希值(可以记为交易哈希值),然后再利用随机散列算法计算当前的所有待记录交易的交易信息以及所有待记录交易的交易哈希值,得到待记录区块的区块哈希值。
可选的,存在多笔待记录交易时,服务器可以按照交易发生时间的先后顺序将这些待记录交易分成多个批次,然后先生成第一个待记录区块,在第一个待记录区块中保存第一批次的待记录交易的交易信息,将第一个待记录区块连接至区块链后,在生成用于保存第二批次的待记录交易的交易信息的第二个待记录区块,以此类推。通过这种方式,可以减少各个节点之间达成共识的计算规模。
S107、服务器组合待记录交易的交易信息,以及待记录区块的区块哈希值,得到待记录区块。
如步骤S106所述,待记录区块的区块头记录有待记录区块的区块哈希值,待记录区块的区块主体记录有待记录交易的交易信息,将区块头和区块主体组合,就得到待记录区块。
可以理解的,若第一节点和第二节点向服务器发送了发生前述待记录交易时第一节点和第二节点之间的亲密度,则服务器会将发生前述待记录交易时第一节点和第二节点之间的亲密度也作为交易信息记录在待记录区块中。
在区块链中记录交易发生时参与交易的两个节点之间的亲密度的作用在于:用户之间的亲密度经常会发生变化,并且,亲密度的变化可能会导致用户之间发生关于物品归属权的争议。通过记录每一笔交易发生时参与交易的双方之间的亲密度,当用户之间由于亲密度变化而发生关于物品归属权的争议时,发生争议的用户可以从区块链中获取有争议的那一笔物品交易的交易信息,进而结合交易信息中的交易类型以及发生交易时参与交易的双方之间的亲密度,确定发生交易时被交易的物品的归属权,从而解决争议。
S108、服务器在待记录区块的区块头中写入区块链当前的末端区块的区块哈希值。
执行步骤S108后,待记录区块就相当于被连接在区块链的末端,待记录区块就成为了区块链的末端区块。
也就是说,假设执行步骤S108之前区块链包括100个逐个连接的区块,其中的第100个区块就是区块链当前的末端区块,那么执行步骤S108后,前述待记录区块被连接在区块链中,区块链包括101个区块,待记录区块作为第101个区块连接在区块链的末端,此时区块链的末端区块就是前述待记录区块。
通过上述在区块链的每一个区块中保存前一个区块的区块哈希值的方法,可以基于各个区块的区块哈希值构建起一个多个区块的链表,这样,只要获得区块链中的任意一个区块的区块头,就可以用递归的方法向前遍历这个区块之前的每一个区块,从而查询这个区块之前的每一笔交易的交易信息。
S109、服务器向第一节点和第二节点发送新增区块的区块哈希值。
前述待记录区块连接至区块链后,这个区块就相当于是区块链中的一个新增区块。也就是说,步骤S109中的新增区块,就是前述服务器组合得到的待记录区块。
其中,新增区块的区块哈希值作为第一节点和第二节点查询历史交易信息的依据。
需要说明的是,步骤S109实际是服务器向参与待记录交易的每一个节点发送待记录区块的区块哈希值,本实施例中待记录交易只有前面第一节点和第二节点进行的交易,因此仅向第一节点和第二节点发送。实际应用场景中,若存在多笔待记录交易,对应的待记录区块的区块哈希值就需要发送所有参与其中任意一笔待记录交易的节点。
如步骤S108所述,节点获得待记录区块的区块哈希值后,就可以利用待记录区块的区块哈希值查询区块链中,待记录交易之前发生的每一笔交易的交易信息。
可选的,服务器可以更新第一节点和第二节点之间的亲密度,后续第一节点和第二节点之间的物品交易基于更新后的亲密度进行。
本申请实施例提供的基于区块链的物品交易管理方法,在节点之间完成交易后,服务器将这些交易的交易信息打包成区块,然后将区块连接至区块链中,并向参与交易的节点反馈区块哈希值。基于上述技术方案,本实施例提供的方法有效的记录了节点之间发生的每一笔物品交易的交易信息,并且这些交易信息可以被用户通过对应的节点查询。因此基于本方案进行物品交易,可以有效的减少用户之间的交易争议。
结合前述将交易信息记录至区块链的方法,参考图2,下面介绍节点从服务器查询历史交易信息的方法:
S201、服务器从所有节点中确定出至少一个数据中心节点。
其中,数据中心节点可以由服务器根据节点之间的亲密度确定。具体的,可以首先选择任意一个节点(记为节点A)作为数据中心节点,然后,在其他节点中,选择与节点A的亲密度最低的节点B作为第二个数据中心节点,然后在选择与节点A的亲密度低于一定的阈值,并且与节点B的亲密度也低于一定阈值的节点C作为第三个数据中心节点,以此类推,最终确定多个数据中心节点。
可选的,各个节点也可以主动向服务器申请成为数据中心节点,服务器基于前述规则判断申请节点是否满足成为数据中心节点的要求,若满足要求,则服务器将申请的节点确定为数据中心节点。
服务器可以向被选择作为数据中心节点的节点发放物币,物币可以在及与本实施例提供的网络进行的物品交易过程中使用。
S202、服务器按一定长度间隔将完整的区块链划分为多段子区块链。
S203、服务器向数据中心节点发送子区块链。
基于上述方法,区块链只需要由网络中的各个数据中心节点保存,而个体节点(指代网络中除数据中心节点以外的节点)只需要保存区块链中某些区块的区块头即可,不需要保存区块主体中的交易信息,通过这种方法可以减小网络中的个体节点的数据存储量。
其中,子区块链可以按数据中心节点的确定时间分配,例如,假设区块链当前有100个区块,按时间先后顺序,第1个至第20个区块构成的子区块链可以分配给服务器确定的第一个,第二个和第三个数据中心节点保存,第20个至第21个区块可以分配给服务器确定的第四个,第五个和第六个数据中心节点保存,以此类推。
需要说明的是,在步骤S203所述的分发子区块链的过程中,每一段子区块链需要被至少3个数据中心节点保存,以避免数据中心节点保存子区块链时数据出现错误或者被篡改。
一般情况下,服务器分配子区块链时应当尽可能使每个数据中心节点只保存一段子区块链,但是,当数据中心节点较少时,部分数据中心节点也可以存储多段子区块链。
可选的,当区块链中新增的区块的数量大于一定的阈值后,服务器可以将这些新增的区块作为一段新的子区块链从完整的区块链中划分出来,然后选择新的数据中心节点,将新增的子区块链发送给新增的数据中心节点保存。
可选的,服务器可以设置裁决模块,裁决模块按预设的时间间隔检查各个数据中心节点是否正常工作,若检查出某个数据中心节点不能正常工作(例如,数据中心节点的网络连接故障,或者数据中心节点宕机),那么服务器可以选择新的数据中心节点来代替不能正常工作的数据中心节点,承担保存子区块链的任务,同时删除不能正常工作的数据中心节点。
S204、节点向数据中心节点发送交易查询请求。
交易查询请求中携带有节点需要查询的区块的区块哈希值。
需要说明的是,步骤S204中的节点可以是包括数据中心节点和个体节点中的任意一个节点。
一方面,个体节点未保存任意一个区块的区块主体,因此个体节点需要查询区块主体中记录的交易信息时,需要通过向数据中心节点发送交易查询请求以获取区块主体中的交易信息。
另一方面,数据中心节点只保存有完整的区块链的一部分(即子区块链),当数据中心需要查询的区块主体不属于自身保存的子区块链时,也需要向其他的数据中心节点发送上述交易查询请求。
S205、数据中心节点向节点发送待查询区块的区块主体中记录的交易信息。
如前文所述,每一个区块均具有唯一的对应的区块哈希值,数据中心节点根据区块哈希值就可以判断出自身保存的子区块链中是否有节点需要查询的区块,若有,则数据中心节点根据区块哈希值找到对应的区块,并将该区块的区块主体中记录的交易信息向发送交易查询请求的节点反馈。
可选的,节点也可以直接向服务器发送携带有需要查询的区块的区块哈希值的交易查询请求,从服务器获取需要查询的交易信息。
步骤S204和步骤S205是节点查询某一个区块中的交易信息的过程。可选的,当网络中任意一个节点需要查询完整的区块链上记录的所有交易信息时,可以遍历多个数据中心节点,获取每一个数据中心节点保存的子区块链,然后将各个子区块链组合,并删除其中的重复数据,从而得到完整的区块链。
可选的,本实施例提供的管理方法中,服务器还可以在实时的向各个节点发送新产生的交易的部分或全部交易信息,并且用户可以通过节点查询这些新产生的交易的交易信息,以及在这些新产生的交易中与被交易的物品关联的历史交易信息。
本实施例提供的基于区块链的物品交易管理方法中,将区块链划分为多个子区块链,分别由多个数据中心节点保存,使得个体节点可以不必保存区块主体,减小个体节点的数据存储。并且,基于本实施例提供的查询交易信息的方法,网络中任意一个节点都可以查询到区块链中任意一个区块记录的任意一笔交易的交易信息,减少用户之间的交易争议。
结合本申请任一实施例提供的基于区块链的物品交易的管理方法,本申请另一实施例还提供一种基于区块链的物品交易的管理系统,该系统包括服务器和节点,其中,服务器的结构参考图3,所述服务器包括:
接收单元301,用于接收节点发送的待记录交易的交易信息;其中,所述待记录交易指代未记录在区块链中的交易;所述交易信息包括:参与交易的节点的节点标识,被交易物品的物品标识,交易类型,交易发生时间和交易完成时间。
计算单元302,用于利用随机散列算法计算所述待记录交易的交易信息,得到待记录区块的区块哈希值。
组合单元303,用于组合所述待记录交易的交易信息,以及所述待记录区块的区块哈希值,得到待记录区块;其中,所述待记录区块的区块头记录有所述待记录区块的区块哈希值,所述待记录区块的区块主体记录有所述待记录交易的交易信息。
连接单元304,用于在所述待记录区块的区块头中写入所述区块链当前的末端区块的区块哈希值,使所述待记录区块连接在所述区块链的末端。
发送单元305,用于向每一个参与所述待记录交易的节点发送所述待记录区块的区块哈希值;其中,所述待记录区块的区块哈希值作为节点查询历史交易信息的依据。
所述服务器的接收单元301还用于:接收新增节点发送的注册请求;其中,所述注册请求携带有,新用户持有的物品的数量,以及,新用户持有的物品的种类;所述新用户指代所述新增节点对应的用户。
所述服务器还包括:
生成单元306,用于生成所述节点的节点标识,并且,用于针对新用户持有的每一个物品,根据所述新增节点的节点标识,以及所述物品的种类,生成所述物品的物品标识。
所述服务器的发送单元304还用于,向所述新增节点发送响应信息;其中,所述响应信息携带有所述新增节点的节点标识,以及所述新用户的每一个物品的物品标识。
可选的,所述服务器还包括分配单元307,用于从所述服务器连接的多个节点中选择部分节点作为数据中心节点,并且用于将所述区块链拆分为多段子区块链。
发送单元305还用于,向分配单元307指定的每个所述数据中心节点发送至少一段所述子区块链。
接收单元301还用于,接收节点发送的交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块。
发送单元305还用于,响应所述交易查询请求,向所述节点发送响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
参考图4,本实施例提供的节点包括以下结构:
发送单元401,用于向另一个节点发送交易请求;其中,所述交易请求携带有请求交易的物品的种类,请求进行的交易的交易类型,以及所述节点的节点标识。
发送单元401,还用于在所述节点对应的用户和所述另一个节点对应的用户完成所述交易请求对应的交易后,向所述服务器发送子交易信息;其中,所述子交易信息包括:被交易物品的物品标识,发送交易请求的时间,完成交易的时间,交易类型,所述节点的节点标识,以及参与交易的两个节点之间的亲密度,两个节点之间的亲密度根据这两个节点之间的历史交易记录确定。
接收单元402,用于接收所述服务器下发的待记录区块的区块哈希值,并更新所述节点与所述另一个节点之间的亲密度;其中,所述待记录区块的区块主体记录有所述交易请求对应的交易的交易信息,所述交易信息通过组合所述子交易信息和所述另一个节点的节点标识得到;所述待记录区块的区块哈希值,作为所述节点查询历史交易信息的依据。
发送单元401还用于,向所述服务器指定的数据中心节点发送交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块。
接收单元402还用于,接收所述数据中心节点发送的响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
发送单元401还用于,向服务器发送交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块。
接收单元402还用于,接收服务器发送的响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
可选的,所述节点还包括显示单元403,用于向用户显示从区块链中查询到的交易信息。
本申请任一实施例提供的节点和服务器的具体工作原理可以参考本申请实施例提供的基于区块链的物品交易管理方法中的相关步骤,此处不再赘述。
本申请实施例提供的基于区块链的物品交易管理系统,在节点之间完成交易后,服务器利用计算单元302和组合单元303将这些交易的交易信息打包成区块,然后由连接单元304将这些区块连接至区块链中,通过发送单元305向参与交易的节点反馈区块哈希值。基于上述技术方案,本实施例提供的方法有效的记录了节点之间发生的每一笔物品交易的交易信息,并且这些交易信息可以被用户通过对应的节点查询。因此基于本方案进行物品交易,可以有效的减少用户之间的交易争议。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于区块链的物品交易管理方法,其特征在于,应用于服务器,所述服务器连接有多个节点,所述方法包括:
接收节点发送的待记录交易的交易信息;其中,所述待记录交易指代未记录在区块链中的交易;所述交易信息包括:参与交易的节点的节点标识,被交易物品的物品标识,交易类型,交易发生时间,交易完成时间及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;所述交易类型包括:物品交换、物品借用以及物品授权,所述任意两个节点之间的亲密度用于确定任意两个节点之间允许进行交易类型;
利用随机散列算法计算所述待记录交易的交易信息,得到待记录区块的区块哈希值;
组合所述待记录交易的交易信息,以及所述待记录区块的区块哈希值,得到待记录区块;其中,所述待记录区块的区块头记录有所述待记录区块的区块哈希值,所述待记录区块的区块主体记录有所述待记录交易的交易信息;
在所述待记录区块的区块头中写入所述区块链当前的末端区块的区块哈希值,使所述待记录区块连接在所述区块链的末端;
向每一个参与所述待记录交易的节点发送所述待记录区块的区块哈希值;其中,所述待记录区块的区块哈希值作为节点查询历史交易信息的依据。
2.根据权利要求1所述的方法,其特征在于,所述接收节点发送的待记录交易的交易信息之前,还包括:
接收新增节点发送的注册请求;其中,所述注册请求携带有,新用户持有的物品的数量,以及,新用户持有的物品的种类;所述新用户指代所述新增节点对应的用户;
生成所述新增节点的节点标识;
针对新用户持有的每一个物品,根据所述新增节点的节点标识,以及所述物品的种类,生成所述物品的物品标识;
向所述新增节点发送响应信息;其中,所述响应信息携带有所述新增节点的节点标识,以及所述新用户的每一个物品的物品标识。
3.根据权利要求1所述的方法,其特征在于,还包括:
从所述服务器连接的多个节点中选择部分节点作为数据中心节点;
将所述区块链拆分为多段子区块链;
向每个所述数据中心节点发送至少一段所述子区块链。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收节点发送的交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块;
响应所述交易查询请求,向所述节点发送响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
5.一种基于区块链的物品交易管理方法,其特征在于,适用于服务器连接的多个节点中的任意一个节点,所述方法包括:
所述节点向另一个节点发送交易请求;其中,所述交易请求携带有请求交易的物品的种类,请求进行的交易的交易类型,以及所述节点的节点标识;
所述节点对应的用户和所述另一个节点对应的用户完成所述交易请求对应的交易后,所述节点向所述服务器发送子交易信息;其中,所述子交易信息包括:被交易物品的物品标识,发送交易请求的时间,完成交易的时间,交易类型,所述节点的节点标识以及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;所述交易类型包括:物品交换、物品借用以及物品授权,所述任意两个节点之间的亲密度用于确定任意两个节点之间允许进行交易类型;
所述节点接收所述服务器下发的待记录区块的区块哈希值,并更新所述节点与所述另一个节点之间的亲密度;其中,所述待记录区块的区块主体记录有所述交易请求对应的交易的交易信息,所述交易信息通过组合所述子交易信息和所述另一个节点的节点标识得到;所述待记录区块的区块哈希值,作为所述节点查询历史交易信息的依据。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述节点向所述服务器指定的数据中心节点发送交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块;
所述节点接收所述数据中心节点发送的响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
7.根据权利要求5所述的方法,其特征在于,还包括:
所述节点向服务器发送交易查询请求;其中,所述交易查询请求携带有待查询区块的区块哈希值,所述待查询区块是所述区块链中的任意一个区块;
所述节点接收服务器发送的响应消息;其中,所述响应消息携带有所述待查询区块的区块主体记录的交易信息。
8.一种基于区块链的物品交易管理系统,其特征在于,所述系统包括服务器以及与所述服务器连接的多个节点,所述服务器包括:
接收单元,用于接收节点发送的待记录交易的交易信息;其中,所述待记录交易指代未记录在区块链中的交易;所述交易信息包括:参与交易的节点的节点标识,被交易物品的物品标识,交易类型,交易发生时间,交易完成时间及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;所述交易类型包括:物品交换、物品借用以及物品授权,所述任意两个节点之间的亲密度用于确定任意两个节点之间允许进行交易类型;
计算单元,用于利用随机散列算法计算所述待记录交易的交易信息,得到待记录区块的区块哈希值;
组合单元,用于组合所述待记录交易的交易信息,以及所述待记录区块的区块哈希值,得到待记录区块;其中,所述待记录区块的区块头记录有所述待记录区块的区块哈希值,所述待记录区块的区块主体记录有所述待记录交易的交易信息;
连接单元,用于在所述待记录区块的区块头中写入所述区块链当前的末端区块的区块哈希值,使所述待记录区块连接在所述区块链的末端;
发送单元,用于向每一个参与所述待记录交易的节点发送所述待记录区块的区块哈希值;其中,所述待记录区块的区块哈希值作为节点查询历史交易信息的依据。
9.根据权利要求8所述的系统,其特征在于,所述服务器的接收单元还用于:接收新增节点发送的注册请求;其中,所述注册请求携带有,新用户持有的物品的数量,以及,新用户持有的物品的种类;所述新用户指代所述新增节点对应的用户;
所述服务器还包括:
生成单元,用于生成所述节点的节点标识,并且,用于针对新用户持有的每一个物品,根据所述新增节点的节点标识,以及所述物品的种类,生成所述物品的物品标识;
所述服务器的发送单元还用于,向所述新增节点发送响应信息;其中,所述响应信息携带有所述新增节点的节点标识,以及所述新用户的每一个物品的物品标识。
10.一种基于区块链的物品交易管理系统,其特征在于,所述系统包括服务器以及与所述服务器连接的多个节点,其中的每一个节点均包括:
发送单元,用于向另一个节点发送交易请求;其中,所述交易请求携带有请求交易的物品的种类,请求进行的交易的交易类型,以及所述节点的节点标识;
所述发送单元,用于在所述节点对应的用户和所述另一个节点对应的用户完成所述交易请求对应的交易后,向所述服务器发送子交易信息;其中,所述子交易信息包括:被交易物品的物品标识,发送交易请求的时间,完成交易的时间,交易类型,所述节点的节点标识及参与交易的节点之间的亲密度;任意两个节点之间的亲密度,根据所述两个节点之间的历史交易记录确定;所述交易类型包括:物品交换、物品借用以及物品授权,所述任意两个节点之间的亲密度用于确定任意两个节点之间允许进行交易类型;
接收单元,用于接收所述服务器下发的待记录区块的区块哈希值,并更新所述节点与所述另一个节点之间的亲密度;其中,所述待记录区块的区块主体记录有所述交易请求对应的交易的交易信息,所述交易信息通过组合所述子交易信息和所述另一个节点的节点标识得到;所述待记录区块的区块哈希值,作为所述节点查询历史交易信息的依据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782944.1A CN110458567B (zh) | 2019-08-23 | 2019-08-23 | 一种基于区块链的物品交易管理系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782944.1A CN110458567B (zh) | 2019-08-23 | 2019-08-23 | 一种基于区块链的物品交易管理系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110458567A CN110458567A (zh) | 2019-11-15 |
CN110458567B true CN110458567B (zh) | 2022-06-24 |
Family
ID=68488757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910782944.1A Active CN110458567B (zh) | 2019-08-23 | 2019-08-23 | 一种基于区块链的物品交易管理系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110458567B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111193706B (zh) * | 2019-11-25 | 2022-03-15 | 泰康保险集团股份有限公司 | 一种身份验证方法及装置 |
CN111415154B (zh) * | 2020-03-17 | 2023-07-14 | 杰瑞石油天然气工程有限公司 | 一种以区块链技术实现公司级加气站账务管理的方法 |
CN113239052B (zh) * | 2021-07-13 | 2021-09-28 | 广东卓启云链科技有限公司 | 一种联盟链分组方法、装置、设备和介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN104639661A (zh) * | 2015-03-13 | 2015-05-20 | 华存数据信息技术有限公司 | 分布式存储系统及文件存储和读取方法 |
CN107528886B (zh) * | 2017-07-25 | 2020-07-31 | 中国科学院计算技术研究所 | 区块链全网拆分方法与系统 |
CN107423426B (zh) * | 2017-08-02 | 2020-06-02 | 众安信息技术服务有限公司 | 一种区块链块数据的数据归档方法及电子设备 |
CN109377226A (zh) * | 2018-10-30 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种交易信息管理方法及相关设备 |
-
2019
- 2019-08-23 CN CN201910782944.1A patent/CN110458567B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110458567A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110458567B (zh) | 一种基于区块链的物品交易管理系统和方法 | |
US11373173B2 (en) | Distributed ledger system, distributed ledger subsystem, and distributed ledger node | |
CN112380149B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
WO2019024780A1 (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
CN106997557B (zh) | 订单信息采集方法及装置 | |
CN105095313B (zh) | 一种数据访问方法和设备 | |
CN106815218A (zh) | 数据库访问方法、装置和数据库系统 | |
CN108717457B (zh) | 一种电子商务平台大数据处理方法和系统 | |
CN104301233A (zh) | 路由访问方法、路由访问系统及用户终端 | |
CN110941619B (zh) | 针对多种使用场景的图数据存储模型和结构的定义方法 | |
CN106981024A (zh) | 一种交易限额计算处理系统及其处理方法 | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
CN104636286A (zh) | 用于数据访问的方法和设备 | |
CN106326499A (zh) | 一种数据处理方法及装置 | |
CN104346458A (zh) | 数据存储方法和存储设备 | |
CN114331428A (zh) | 一种非同质化通证分配方法及装置 | |
CN112860953A (zh) | 图数据库的数据导入方法、装置、设备及存储介质 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN113127477A (zh) | 访问数据库的方法、装置、计算机设备和存储介质 | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 | |
CN101344882A (zh) | 数据查询方法、插入方法及删除方法 | |
CN112685417B (zh) | 数据库操作方法、系统、装置、服务器及存储介质 | |
CN101789963A (zh) | 数据同步系统 | |
US20070239767A1 (en) | Implementing referential integrity in a database hosting service | |
CN112364021A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |