CN110619020B - 一种基于机器学习的区块链分片方法 - Google Patents

一种基于机器学习的区块链分片方法 Download PDF

Info

Publication number
CN110619020B
CN110619020B CN201910825084.5A CN201910825084A CN110619020B CN 110619020 B CN110619020 B CN 110619020B CN 201910825084 A CN201910825084 A CN 201910825084A CN 110619020 B CN110619020 B CN 110619020B
Authority
CN
China
Prior art keywords
fragment
fragmentation
consensus
chip
transaction
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
CN201910825084.5A
Other languages
English (en)
Other versions
CN110619020A (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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian Technology 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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN201910825084.5A priority Critical patent/CN110619020B/zh
Publication of CN110619020A publication Critical patent/CN110619020A/zh
Application granted granted Critical
Publication of CN110619020B publication Critical patent/CN110619020B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本发明公开一种基于机器学习的区块链分片方法,该方法在混合共识的基础上,对系统中的分片和用户进行调整以获得最大的系统吞吐量。交易能够并行地处理在各个分片中,分片调整能够使得系统的分片处于一个相对稳定的状态,用户分片调整能够调整用户所处的分片,不仅能够快速响应用户的更换所处分片的请求,也能进一步地提高系统吞吐量。分片中的节点仅需要处理片内交易的共识,无需存储主链,提高了系统的拓展性。

Description

一种基于机器学习的区块链分片方法
技术领域
本发明涉及区块链的应用领域,具体涉及一种基于机器学习的区块链分片方法。
背景技术
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。
在区块链中,分片技术是按照一定的规则对区块链系统中的节点或数据进行分片,进而优化系统的整体性能。目前分片技术主要分为网络分片技术、交易分片技术以及状态分片技术。网络分片技术将所有节点依据相应的规则划分到不同的分片中,它是交易分片和状态分片的基础以及首要实施步骤。为了保持分片后网络的安全性,一般采用随机化的方法对网络进行分片。交易分片技术将系统中的所有交易数据依据相应的规则划分给不同的分片进行处理,并由分片内的节点进行验证和打包,实现了交易数据并行化处理而且能够有效避免双花问题。状态分片技术把所有的区块链状态信息分别存储在各个分片中,每个节点只需维护分片内的部分区块链状态信息,显著降低了信息冗余度。相比网络分片与交易分片,状态分片主要解决了数据存储的问题,提升了区块链系统的可拓展性。状态分片目前还可以分为智能合约分片和存储分片,分别以Zilliqa和QuarkChain为代表。目前还未发现有基于混合共识的分片方法。
发明内容
针对现有技术的不足,本发明提出了一种基于机器学习的区块链分片方法,从分片的分裂、合并和调整三个方面来实现整个区块链分片的管理,具体技术方案如下:
一种基于机器学习的区块链分片方法,其特征在于,每个节点从属于一个分片,整个区块链系统分为n个分片,n≥1,每个分片包括若干个节点,分片内的节点之间的交易为片内交易,由片内的节点进行共识;不同分片间的节点之间的交易为片间交易,由每个分片的代表节点进行共识;
所述的分片方法具体包括如下步骤:
S1:分别进行片内共识和片间共识,并统计各分片进行片内共识的最大时间P和片间共识时间Q;
S2:判断当前区块高度是否为分割次数T的倍数,T为整数,T∈[3,10],且T由系统性能决定;
若不是,则进行用户分片调整,即计算用户的片外交易数量除以其总交易数量的比值,并进行从大到小的排序,选择前30%的用户,采用机器学习分类算法对其进行重新划分所处分片;
若是,则再次判断片内共识的最大时间P和片间共识时间Q的大小,若P>Q,则进行分片分裂,即选取交易数量最多的分片,使用机器学习聚类算法对其中的用户进行聚类,聚类的结果即是分片分裂的结果,从而将一个分片分裂成两个分片;若P<Q,则进行分片合并,选取两个片间交易数量与该分片的总交易数量的比值最大的两个分片进行合并;
所有的分片调整、分片合并和分片分裂结束后都需将结果广播给各分片的代表节点。
进一步地,每个用户对应一个地址。
进一步地,通过保证金的方式保证所述的代表节点的诚实性。
进一步地,所述的机器学习分类算法和机器学习聚类算法所需要的数据来源于自本区块开始往上的6个区块的交易数据。
进一步地,T优选6。
本发明的有益效果:
本发明通过分片的设计,使得交易能够并行地验证在分片中,这可以很大程度上地提高区块链系统的吞吐量。分片的分裂、合并能够动态地根据用户的交易行为调整系统的分片数量。用户分片调整作为系统的微调,能够快速识别用户分片改变的需求从而提高系统的吞吐量。
附图说明
图1是本发明的分片用户状态图;
图2是本发明的分片调整流程图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明的区块链系统的分片用户状态图,表示了用户和分片之间的关系,用户存在于各分片中,用户之间有一些交易如图中直线所示,这些交易一些存在于分片内,如分片A中用户1和用户2之间的交易,为片内交易,有一些交易的双方存在于不同的分片中,如图1所示,分片A的用户4和分片B的用户2之间的交易,为片外交易。片内交易的共识都是由分片内的节点进行的,而片外交易的共识则需要所有分片直接或间接参与,直接参与即为全节点共识片外交易,间接参与方式即为各分片选派代表节点,代表节点的选择方案有多种,如随机、轮替和选举,本发明采用选举的方式产生代表节点,由代表节点作为纽带使全节点间接地参与片外交易的共识,同时也提高了交易的并行程度。当需要使用本文所采用的分片方法时,可以先使所有用户都处于同一个分片中,也可以是用户处在不同分片中,后采取分片调整的方案动态地为当前系统寻找出相对较优秀的分片状态。
本发明的基于机器学习的区块链分片方法,具体包括如下步骤:
S1:分别进行片内共识和片间共识,并统计各分片进行片内共识的最大时间P和片间共识时间Q;
片内共识在各个分片间是并行的,而片间共识在各个分片之间是串行的,因此需要统计片内共识的时间P,和片间共识时间Q。P为片内共识时间,片内共识为并行,因此P为各分片进行片内共识的最大时间,此时间与各分片片内所采取的共识算法、片内用户数量和片内交易数量相关;Q为片间共识时间,片间共识在各分片之间串行,其余片间共识算法和交易数量相关。
S2:判断当前区块高度是否为T的倍数,T为整数,T∈[3,10];
若不是,则进行用户分片调整,即计算用户的片外交易数量除以其总交易数量的比值,并进行从大到小的排序,选择前30%的用户,采用机器学习分类算法对其进行重新划分所处分片;
若是,则再次判断片内共识的最大时间P和片间共识时间Q的大小,若P>Q,则进行分片分裂,即选取交易数量最多的分片,使用机器学习聚类算法对其中的用户进行聚类,聚类的结果即是分片分裂的结果,从而将一个分片分裂成两个分片;若P<Q,则进行分片合并,选取两个片间交易数量与该分片的总交易数量的比值最大的两个分片进行合并;
所有的分片调整、分片合并和分片分裂结束后都需将结果广播给各分片的代表节点。
本发明针对分片的机制设计了三个调整方案,分别为分片分裂,分片合并和用户分片调整。本发明以区块高度和片内共识时间P和片间共识时间Q为依据判断调整的类型。当区块高度不为分割次数T的倍数时,进行用户分片调整;当区块高度为T的倍数时进行分片调整,若P大于Q进行分片分裂,若P小于Q则进行分片合并。在这三个调整过程中,分片分裂是核心,因其能增加系统的分片数量,从而提高系统交易并行程度,分片合并能与分片分裂能将系统的分片数量稳定在一个固定值附近,当系统处于此状态时P≈Q。用户分片调整相对于分片调整而言所消耗的计算机资源更少,是一种微调,因此认为一次分片调整之后需要T-1个用户分片调整来调和整个系统。
(1)分片分裂调整:当系统有多个分片时,需要判断哪个分片进行分裂,本发明选取交易数量最多的分片进行分裂处理。选取好分片之后,可采用聚类算法——K均值算法对用户进行处理,其中用户之间的距离由用户的交易行为定义,两个用户之间的距离与它们与其他用户之间交易行为的差异性正相关,与两个用户之间的交易数量负相关。若使用原有的K均值算法,一个分片可被分为两个或者多个分片,但在本系统中,分片数量的激增会使得系统的吞吐量下降,因此本文所使用的K均值算法始终只将一个分片划分为两个分片。
(2)分片合并调整:当系统有多个分片时,需判断哪些分片进行合并,在本系统中,合并会导致分片数量的下降,从而导致交易并发程度下降,因此每一次合并时仅选择两个分片进行合并。本发明选取两个片间交易数量与该分片的总交易数量的比值最大的两个分片进行合并。
(3)用户分片调整:当系统有多个分片的时候,需要判断哪些用户进行调整,在本系统中会将用户的片外交易数量除以其总交易数量的比值作为评判标准,每一次都选择比值最大的30%的用户进行划分。本发明采用机器学习中的分类算法对用户进行划分,选择调整的用户作为预测集,余下的用户则可作为训练集用以训练模型。
上述过程中的调整结果都需要通知到全系统。当结果通知到全系统之后,本次调整即可结束,系统可进入下一个区块产生的共识过程中。
在区块链中每一个用户持有多个地址,而交易的本体是出于用户的需求,并非地址,因此本发明将每个用户对应一个地址。
因代表节点负责将结果通知到全系统,因而代表节点是否诚实对系统的性能及安全有较大的影响,因此通过保证金的方式保证所述的代表节点的诚实性。
机器学习算法需要一定的数据进行支持,因此所述的机器学习分类算法和机器学习聚类算法所需要的数据来源于自本区块开始往上的T个区块的交易数据。
根据中本聪在分叉中提出的结论,当一个区块上面有6个区块时即可判断该区块的可靠性,因此T优选6。
图2中表示了一个区块的产生以及后续的分片调整过程,在第n轮共识开始后,首先进行片内交易的并行共识,如图2中分片1、分片2和分片3的并行片内共识,并进行片外交易的共识,在对交易的共识结果完成后,需要统计各用户之间交易数量,记录完成后即可开始分片的调整。首先需要根据当前区块的高度进行判断是否进行分片分裂或合并,当区块高度整除T时,需要进行分片分裂或合并,若不能整除则进行用户分片调整。如图所示当区块高度不能整除T时,用户分片调整需要调整处于不合适分片中的用户,将结果广播给各分片的代表节点之后即结束调整;当区块高度整除T时,若片内共识时间小于片外共识时间即进行分片合并,分片合并需要选取两个片间交易数量与该分片的总交易数量的比值最大的两个分片进行合并,若片内共识时间大于片外共识时间即进行分片分裂,分片分裂需要找到交易数量最大的分片进行分裂。当分片的分裂或合并结束并将结果广播给各分片的代表节点后即调整结束。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。

Claims (5)

1.一种基于机器学习的区块链分片方法,其特征在于,每个节点从属于一个分片,整个区块链系统分为n个分片,n≥1,每个分片包括若干个节点,分片内的节点之间的交易为片内交易,由片内的节点进行共识;不同分片间的节点之间的交易为片间交易,由每个分片的代表节点进行共识;
所述的分片方法具体包括如下步骤:
S1:分别进行片内共识和片间共识,并统计各分片进行片内共识的最大时间P和片间共识时间Q;
S2:判断当前区块高度是否为分割次数T的倍数,T为整数,T∈[3,10],且T由系统性能决定;
若不是,则进行用户分片调整,即计算用户的片外交易数量除以其总交易数量的比值,并进行从大到小的排序,选择前30%的用户,采用机器学习分类算法对其进行重新划分所处分片;
若是,则再次判断片内共识的最大时间P和片间共识时间Q的大小,若P>Q,则进行分片分裂,即选取交易数量最多的分片,使用机器学习聚类算法对其中的用户进行聚类,聚类的结果即是分片分裂的结果,从而将一个分片分裂成两个分片;若P<Q,则进行分片合并,选取两个片间交易数量与该分片的总交易数量的比值最大的两个分片进行合并;
所有的分片调整、分片合并和分片分裂结束后都需将结果广播给各分片的代表节点。
2.根据权利要求1所述的基于机器学习的区块链分片方法,其特征在于,每个用户对应一个地址。
3.根据权利要求1所述的基于机器学习的区块链分片方法,其特征在于,通过保证金的方式保证所述的代表节点的诚实性。
4.根据权利要求1所述的基于机器学习的区块链分片方法,其特征在于,所述的机器学习分类算法和机器学习聚类算法所需要的数据来源于自本区块开始往上的6个区块的交易数据。
5.根据权利要求1所述的基于机器学习的区块链分片方法,其特征在于,T为6。
CN201910825084.5A 2019-09-02 2019-09-02 一种基于机器学习的区块链分片方法 Active CN110619020B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910825084.5A CN110619020B (zh) 2019-09-02 2019-09-02 一种基于机器学习的区块链分片方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910825084.5A CN110619020B (zh) 2019-09-02 2019-09-02 一种基于机器学习的区块链分片方法

Publications (2)

Publication Number Publication Date
CN110619020A CN110619020A (zh) 2019-12-27
CN110619020B true CN110619020B (zh) 2022-04-01

Family

ID=68922207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910825084.5A Active CN110619020B (zh) 2019-09-02 2019-09-02 一种基于机器学习的区块链分片方法

Country Status (1)

Country Link
CN (1) CN110619020B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112615905B (zh) * 2020-12-03 2022-09-20 广州智链未来科技有限公司 区块链分片的调度方法、装置、设备及存储介质
CN115022061B (zh) * 2022-06-14 2024-02-06 安徽中科大国祯信息科技有限责任公司 一种基于最小割法的区块链分片方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345386A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
CN109379343A (zh) * 2018-09-27 2019-02-22 福建福链科技有限公司 一种区块链的异构共识方法及终端
CN109377225A (zh) * 2018-10-30 2019-02-22 杭州复杂美科技有限公司 交易分配方法、共识方法、设备和存储介质
WO2019114097A1 (zh) * 2017-12-15 2019-06-20 成都链一网络科技有限公司 基于区块链的分布式存储方法
CN109949160A (zh) * 2019-03-27 2019-06-28 上海优扬新媒信息技术有限公司 一种区块链的分片方法及装置
CN110166220A (zh) * 2019-05-06 2019-08-23 山东公链信息科技有限公司 一种根据分区键的散列值进行切分的分片方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552556B2 (en) * 2017-08-03 2020-02-04 Liquineq AG System and method for performance testing of scalable distributed network transactional databases

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019114097A1 (zh) * 2017-12-15 2019-06-20 成都链一网络科技有限公司 基于区块链的分布式存储方法
CN109345386A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
CN109379343A (zh) * 2018-09-27 2019-02-22 福建福链科技有限公司 一种区块链的异构共识方法及终端
CN109377225A (zh) * 2018-10-30 2019-02-22 杭州复杂美科技有限公司 交易分配方法、共识方法、设备和存储介质
CN109949160A (zh) * 2019-03-27 2019-06-28 上海优扬新媒信息技术有限公司 一种区块链的分片方法及装置
CN110166220A (zh) * 2019-05-06 2019-08-23 山东公链信息科技有限公司 一种根据分区键的散列值进行切分的分片方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Blockchain-based supply chain traceability: Token recipes model manufacturing processes;Martin Westerkamp等;《2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData)》;20190603;第1595-1602页 *
Op Ed: The Many Faces of Sharding for Blockchain Scalability;无;《https://www.nasdaq.com/articles/op-ed%3A-the-many-faces-of-sharding-for-blockchain-scalability-2018-03-20》;20180320;全文 *
区块链可扩展性研究:问题与方法;潘晨等;《计算机研究与发展》;20181015(第10期);第2099-2110页 *
区块链技术:架构及进展;邵奇峰等;《计算机学报》;20171115(第05期);第969-988页 *
区块链的存储容量可扩展模型;贾大宇等;《计算机科学与探索》;20170928(第04期);第525-535页 *

Also Published As

Publication number Publication date
CN110619020A (zh) 2019-12-27

Similar Documents

Publication Publication Date Title
CN112003942B (zh) 链下数据请求响应方法、系统、节点设备与存储介质
CN110971684B (zh) 一种基于pbft的区块链网络节点负载均衡方法
CN110619020B (zh) 一种基于机器学习的区块链分片方法
CN110868440A (zh) 区块链公链
US9058540B2 (en) Data clustering method and device, data processing apparatus and image processing apparatus
CN108243250B (zh) 一种基于分布式网络的分片快速选择方法
CN106713377B (zh) 分布式数据库负载调平的方法和装置
CN103455534B (zh) 对文档进行聚类的方法和装置
CN111984203B (zh) 一种数据重删方法、装置及电子设备和存储介质
US20110072016A1 (en) Density-based data clustering method
CN112351088A (zh) 一种cdn缓存方法、装置、计算机设备及存储介质
CN116467266A (zh) 一种批量文件智能联机处理方法、装置及可存储介质
CN110781341A (zh) 一种融合多策略召回数据集的音频专辑推荐方法及系统
CN117033004A (zh) 负载均衡方法、装置、电子设备及存储介质
CN105208096A (zh) 分布式缓存系统和方法
CN111445329A (zh) 一种区块链交易处理方法及系统
CN116360994A (zh) 分布式异构资源池的调度方法、装置、服务器及存储介质
CN116980281A (zh) 节点选取方法、装置、第一节点、存储介质及程序产品
CN115879889A (zh) 基于区块链的业务处理方法、装置和计算机设备
CN111209100B (zh) 一种业务处理和数据源确定方法
CN110536349A (zh) 一种确定回退时间的方法及装置、设备、存储介质
CN112181829A (zh) Ab实验的用户分流方法、装置、终端及介质
CN110765309A (zh) 一种基于参数配置的推荐系统召回方法及系统
CN110460663A (zh) 分布式节点间的数据分配方法、装置、服务器及存储介质
CN115033390B (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