一种区块链虚拟仿真系统技术方案

技术编号:20566792 阅读:96 留言:0更新日期:2019-03-14 09:32
本发明专利技术公开了一种区块链虚拟仿真系统,该系统能在单台计算机上虚拟仿真完整的共有区块链实验与应用环境,包括应用接口模块、区块链仿真模块及网络与数据模块;所述应用接口模块,包括P2P网络接口和区块应用接口,用于初始化区块链网络、驱动并控制区块链虚拟仿真过程,并在计算机上仿真为一个功能模块;区块链仿真模块,包括P2P网络和Block模块,用于仿真区块链的交易过程,区块验证与维护及PoW共识;网络与数据模块,用于仿真区块链的网络通信与数据存储。本发明专利技术提供的系统能够在一台计算机上仿真大规模的公有区块链应用环境,既能用于区块链领域科学技术研究的仿真实验,又能用于区块链行业的应用仿真,降低区块链研究与开发的成本。

【技术实现步骤摘要】
一种区块链虚拟仿真系统
本专利技术涉及计算机、网络与仿真
,尤其涉及一种区块链虚拟仿真系统。
技术介绍
区块链是一种分布式账本,也是一种新型应用模式;区块链技术覆盖了分布式存储、网络、信息安全、数据容错等计算机技术;区块链应用具有去中心、开放、自治等特点,可划分为公有区块链、联合区块链和私有区块链。一般而言,公有区块链的任何节点都能够参与交易和共识过程。当前区块链典型应用还较少,区块链技术研究(例如共识算法、智能合约以及安全与隐私等)吸引了众多学者的研究热情。区块链技术研究需要搭建实验环境,主要有两种做法。第一种是以小型虚拟币为主,利用开源的虚拟币工程项目搭建一个或多个封闭的实验环境。在这些实验环境中研究开发共识算法、智能合约、信息安全等。这种做法通常需要更多的物理设备,例如多台计算机,需要部署专用的物理网络等,而且规模有限,难以形成大规模的区块链应用环境。第二种是利用现有的区块链平台,例如以太坊(Ethereum)、超级账本(Hyperledger)等搭建实验与开发环境。这2个平台主要面向行业应用,构建各行业的区块链应用案例;只能使用以太坊本身的智能合约创建业务应用,但不能研究开发新的智能合约。因此区块链各类算法等基础构件研究的空间是非常有限的。本专利技术面向区块链技术研究开发的需要,提供一种公有区块链虚拟仿真方法及系统,解决上述存在的问题。
技术实现思路
为解决上述技术问题,本专利技术的目的是提供一种区块链虚拟仿真系统。本专利技术的目的通过以下的技术方案来实现:一种区块链虚拟仿真系统,该系统能在单台计算机上虚拟仿真完整的共有区块链实验与应用环境,包括应用接口模块、区块链仿真模块及网络与数据模块;所述应用接口模块,包括P2P网络接口和区块应用接口,用于初始化区块链网络、驱动并控制区块链虚拟仿真过程,并在计算机上仿真为一个功能模块;区块链仿真模块,包括P2P网络和Block模块,用于仿真区块链的交易过程,区块验证与维护及PoW共识;网络与数据模块,用于仿真区块链的网络通信与数据存储。与现有技术相比,本专利技术的一个或多个实施例可以具有如下优点:能够在单台计算机上虚拟仿真大规模的公有区块链应用环境,不需要额外的物理设备,能够降低区块链研究开发的成本;所述方法与系统具备模块化,可以根据研究开发需要更换其中的构件,例如将PoW更换成股权证明(PoS)、添加智能合约等,实验研究范围覆盖区块链各个环节,不受现有区块链平台的制约。既能用于区块链领域科学技术研究的仿真实验,又能用于区块链行业的应用仿真,降低区块链研究与开发的成本。附图说明图1是区块链虚拟仿真系统结构图;图2是启动区块链虚拟仿真后整个系统的快照示意图;图3是Chord工作线程和BlockChain工作线程构成图;图4是区块链网络初始化流程图;图5是节点加入网络流程图;图6是交易过程流程图;图7是区块维护流程图;图8是区块同步示意图;图9是应用接口模块的实施示例图;图10是区块链仿真模块的实施示例图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合实施例及附图对本专利技术作进一步详细的描述。如图1所示,是区块链虚拟仿真系统结构,所述系统能在单台计算机上虚拟仿真完整的共有区块链实验与应用环境,包括应用接口模块、区块链仿真模块及网络与数据模块;所述应用接口模块,包括P2P网络接口和区块应用接口,用于初始化区块链网络、驱动并控制区块链虚拟仿真过程,并在计算机上仿真为一个功能模块;P2P网络接口子模块用于实现P2P网络的接口调用,调用区块链仿真模块的功能接口;区块应用接口子模块用于实现区块链的应用层,调用区块链仿真模块与区块相关的功能接口。在所述仿真方法与系统中,应用接口模块是唯一的,仅存在一个实体,在单台计算机上虚拟仿真为一个功能模块。区块链仿真模块,包括P2P网络和Block模块,用于仿真区块链的交易过程,区块验证与维护及PoW共识;实现一个计算节点的区块链仿真模块。一个区块链应用存在数量巨大的计算节点,每个计算节点实现1个图1所示的区块链仿真模块。在所述仿真方法与系统中,存在多少个计算节点,就产生多少个区块链仿真模块实体,1个计算节点在单台计算机上虚拟仿真为1个对象。网络与数据模块,用于仿真区块链的网络通信与数据存储,包括区块链数据存储和基础数据存储。在所述仿真方法与系统,每个计算节点有独立的网络与数据模块实体,在单台计算机上虚拟仿真为计算节点对象的成员。应用接口模块、区块链仿真模块、网络与数据模块之间的关系见图2所示。在所述仿真方法与系统中,应用接口模块仅存在一个实体,通过图1所示的ChordAPI检索到指定的计算节点,并获得图1所示的BlockChainAPI,从而对该节点发出操作指令,例如初始化、节点加入、节点退出等。区块链仿真模块、网络与数据模块存在于每个计算节点,见图2所示。所述应用接口模块,包含P2P网络接口子模块。P2P网络接口子模块提供“初始化”、“节点加入”、“节点退出”、“网络维护”和“节点检索”部件。启动区块链仿真时,“初始化”部件用于建立初始化节点、初始化P2P网络等;“节点加入”部件用于向P2P网络新增计算节点;“节点退出”部件用于仿真计算节点正常退出以及崩溃等现象;“网络维护”部件用于实现P2P网络的维护与管理;“节点检索”部件用于检索区块链仿真模块中的计算节点。所述应用接口模块,还包含区块应用接口子模块。区块应用接口子模块提供“初始化”、“区块校验”、“发布交易”、“区块统计”和“挖矿设置”部件。启动区块链仿真时,“初始化”部件用于创建创世区块等;“发布交易”部件调用指定计算节点,向P2P网络发布交易区块;“挖矿设置”部件用于设置指定计算节点的挖矿行为(例如关闭挖矿,则该节点不参与挖矿,但可以参与共识过程);“区块校验”部件用于校验指定计算节点的区块链完整性和合法性;“区块统计”部件用于统计网络内的统计量,例如有效区块数量、网络流量、节点资源消耗等。图1列出了P2P网络接口子模块和区块应用接口子模块的构成部分,但不限于图1所述的构成部分。所述区块链仿真模块,包含一个P2P网络。每个计算节点的P2P网络层采用Chord协议与其他计算节点构成1个环状网,见图2所示。每个计算节点的P2P网络层提供“ChordAPI”部件供应用接口模块调用;“数据区”部件用于存储计算节点的前驱、后继节点数据以及Fingertable等;“Chord工作线程”部件主要包含4个线程,分别用于维护后续节点、维护Fingertable数据、检查前驱节点的存活性、发布并接收区块链数据,见图3所示。所述区块链仿真模块,还包含一个Block子模块。每个计算节点的Block层提供“BlockChainAPI”、“区块存取”、“BlockChain工作线程”、“基础算法”部件,见图1所示。“BlockChainAPI”部件供应用接口模块调用;“区块存取”部件供计算节点存取各自的区块链数据;“基础算法”部件提供基础函数与算法,包括Hash计算、密码算法、数字签名、时间戳等;“BlockChain工作线程”主要包含“区块确权线程”、“广播线程”、“区块维护线程”、“挖矿线程”、“PoW共识线程”,见图3所示。广播线程,用于向Fingertable指向的计算节点广本文档来自技高网...

【技术保护点】
1.一种区块链虚拟仿真系统,其特征在于,所述系统能在单台计算机上虚拟仿真完整的共有区块链实验与应用环境,包括应用接口模块、区块链仿真模块及网络与数据模块;所述应用接口模块,包括P2P网络接口和区块应用接口,用于初始化区块链网络、驱动并控制区块链虚拟仿真过程,并在计算机上仿真为一个功能模块;区块链仿真模块,包括P2P网络和Block模块,用于仿真区块链的交易过程,区块验证与维护及PoW共识;网络与数据模块,用于仿真区块链的网络通信与数据存储。

【技术特征摘要】
1.一种区块链虚拟仿真系统,其特征在于,所述系统能在单台计算机上虚拟仿真完整的共有区块链实验与应用环境,包括应用接口模块、区块链仿真模块及网络与数据模块;所述应用接口模块,包括P2P网络接口和区块应用接口,用于初始化区块链网络、驱动并控制区块链虚拟仿真过程,并在计算机上仿真为一个功能模块;区块链仿真模块,包括P2P网络和Block模块,用于仿真区块链的交易过程,区块验证与维护及PoW共识;网络与数据模块,用于仿真区块链的网络通信与数据存储。2.如权利要求1所述的区块链虚拟仿真系统,其特征在于,所述应用接口模块提供一个区块链网络初始化算法,用于初始化P2P网络,创建创世区块;所述一个区块链包括多个计算节点,每个计算节点实现一个区块链仿真模块。3.如权利要求1所述的区块链虚拟仿真系统,其特征在于,所述区块链仿真模块、网络与数据模块在单台计算机上仿真为一个对象。4.如权利要求1所述的区块链虚拟仿真系统,其特征在于,每个计算节点的P2P网络采用Chord协议与其他计算节点构成一个环状网,且通过内置的区块链数据收发线程为区块链仿真提供网络数据通道;所述Block模块包含BlockChainAPI、区块存取、BlockChain工作线程及基础算法;所述BlockChainAPI,用于与应用接口模块交换数据与指令;区块存取,用于访问虚拟的区块链数据;BlockChain工作线程,用于仿真区块的交易、维护、PoW共识、挖矿、确权以及网络数据交换;基础算法,用于提供Hash计算、密码算法、数字签名、时间戳计算功能。5.如权利要求4所述的区块链虚拟仿真系统,其特征在于,所述BlockChain工作线程包含计算节点加入区块链网络的算法、区块链网络交易算法及计算节点区块维护算法;所述计算节点加入区块链网络的算法,用于实现计算节点新增、重入区块链网络的过程;所述区块链网络交易算法,用于实现区块链的新交易、挖矿、PoW确认、区块确权以及区块链更新的过程;计算节点区块维护算法,用于解决区块分叉问题、实现计算节点间区块同步的过程。6.如权利要求2所述的区块链虚拟仿真系统,其特征在于,区块链网络初始化算法包括:A1应用接口模块增加数量计算节点,构建一个P2P网络,Chord工作线程构建各自计算节点的数据区,包括Fingertable、前驱后续节点信息;A2通过应用接口模块创建一个有效区块,作为创世区块,并添加到区块链网络中任意一个计算节点;A3计算节点的各个工作线程开始工作,区块维护线程实现网络中各计算节点同步添加新增的创世区块;A4在区块链网络稳定时,算法结束。7.如权利要求5所述的区块链虚拟仿真系统,其特征在于,所述节点加入区块链网络的算法包括:B1新增或重入网络的计算节点按Chord协议更新自己的前驱后续节点信息以及Fingertable;B2新增或重入网络的计算节点的BlockChain工作线程开始工作,其中区块维护线程向Fingertable所指节点各获取一个区块;B3如果获取的区块已经存在于自己的区块链中,则忽略,并转到B6;B4如果获取的区块不存在于自己的区块链中,且获取的区块是创世区块,则直接加入到自己的区块链中,并执行步骤B6;B5如果不是创世区块,则请求PoW共识线程进行确认,将得到确认后的区...

【专利技术属性】
技术研发人员:刘昌平李威常亚萍唐懿芳范云龙王婷
申请(专利权)人:广东科学技术职业学院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1