本发明涉及物联网和区块链
技术领域:
,特别是涉及一种传感数据批量写入区块的系统和方法。
背景技术:
:物联网在智慧城市、智能交通、工业监测、食品溯源等各领域都有着广泛的应用,近年来得到了迅速的发展。物联网通过射频识别、红外感应器、全球定位系统、激光扫描器、气体感应器等信息传感设备,按约定的协议,把任何物品与网络连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。区块链是一种去中心化的、由各节点参与的分布式数据库技术。区块链网络中记录的信息由所有验证节点共同参与记录,无需任何中心化的节点审核,记录的信息具有不可伪造和防篡改的特点。物联网和区块链技术能够实现物理世界和信息世界的有效结合,实现管理的分布式,信息的可信和可追溯。物联网的一个特点是对各种感知技术的广泛应用。物联网上部署了多种类型传感器,每个传感器都是一个信息源。传感器按一定的频率周期采集环境信息,不断更新数据。数据生成速度快,并发量高,对数据的存储要求比较高,当前区块链的信息写入性能不能完全满足这一要求。因此,面对海量的物联网感知数据,区块链的写入效率低,扩展复杂,技术要求高,亟需一种扩展方便的海量数据快速写入方法。技术实现要素:针对现有技术中的缺陷,本发明提供一种传感数据批量写入区块的系统和方法,以提高数据写入区块的速度,提高效率,减少写入数据时的并发量和区块链网络的负荷。具体而言,本发明提供了一种传感数据批量写入区块的系统和方法,所述方法包括接收数据执行过程和定时器执行过程,其中接收数据执行过程是接收到传感数据时执行的数据批量写入过程,定时器执行过程是固定时间间隔周期性执行的数据批量写入过程。一种传感数据批量写入区块的系统和方法,包括传感器、数据接收服务器,通过所述数据接收服务器进行接收数据执行过程,步骤如下:s1、建立缓存队列,设置所述缓存队列的数量阈值;s2、所述数据接收服务器接收所述传感器采集的传感数据;s3、设置所述缓存队列的数据锁定信号量,并将所述缓存队列数据加锁;s4、将所述传感数据添加至所述缓存队列中;s5、判断所述缓存队列中的传感数据数量是否符合所述数量阈值,若超出该数量阈值,则进入步骤s6,否则复位所述缓存队列的数据锁定信号量,将缓存队列数据解锁,并进入步骤s2;s6、根据所述缓存队列中的传感数据生成批量传感数据,并将所述批量传感数据发送至区块链网络后,清空所述缓存队列中的传感数据,复位所述缓存队列的数据锁定信号量,将缓存队列数据解锁。进一步的,所述步骤s5中未超出该数量阈值时,保留所述缓存队列中的传感数据。一种传感数据批量写入区块的系统和方法,包括传感器、数据接收服务器以及定时器,所述数据接收服务器接收所述传感器采集的传感数据后,通过定时器进行含有周期的接收数据执行过程,包括步骤如下:s1、建立缓存队列,所述缓存队列用于暂存所述传感数据;s2、通过所述定时器建立执行周期,在每一个所述执行周期中仅执行一次下列步骤;s3、设置所述缓存队列的数据锁定信号量,并将所述缓存队列数据加锁;s4、判断所述缓存队列中是否存在所述传感数据,若存在所述传感数据,则进入步骤s5,否则复位所述缓存队列的数据锁定信号量,将缓存队列数据解锁,并结束本次执行周期;s5、根据所述缓存队列中的传感数据生成批量传感数据,并将所述批量传感数据发送至区块链网络后,清空所述缓存队列中的传感数据,复位所述缓存队列的数据锁定信号量,将缓存队列数据解锁。上述步骤建立缓存队列和步骤所述传感数据的添加,可有序或无序进行;所述数量阈值也可由数据接收服务器自行定制。进一步的,所述批量传感数据包括合并属性和属性列表,所述合并属性为所述缓存队列中传感数据的相同的属性所组成,所述属性列表为所述缓存队列中传感数据除所述合并属性以外的剩余属性组成。属性列表中的每一条记录对应一条传感数据。进一步的,一种传感数据批量写入区块的系统和方法还包括区块链账本,所述区块链网络通过共识过程将所述批量传感数据写入所述区块链账本的区块结构中。进一步的,当所述缓存队列数据加锁后,所述缓存队列仅在数据加锁处执行数据的添加或数据的删除。除数据添加或数据删除以外的操作过程,其他所有对所述缓存队列的操作过程仅在所述数据锁定信号量复位后执行。进一步的,所述缓存队列中的传感数据按照进入该缓存队列的先后顺序进行排列。进一步的,所述数据接收服务器为云服务器或物联网服务器;还可选用硬件服务器。进一步的,所述传感器包括温度传感器。进一步的,所述温度传感器采集的所述传感数据包括:时间、区域、温度以及设备号。本发明的有益效果体现在:本发明技术方案将接收的传感数据首先加入到缓存队列中,然后将缓存队列中的多条传感数据组织成传感批数据,最后将传感批数据提交到区块链网络,通过共识过程实现传感数据的批量写入。与现有技术相比,本发明显著优点在于,传感数据缓存后批量写入区块,避免了数据逐条写入时的频繁写入操作和共识过程,降低了写入并发量和区块链网络的负荷,提高了数据写入的效率。附图说明为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图1为本发明接收数据执行过程的流程框图;图2为本发明定时器执行过程的流程框图。具体实施方式下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。实施例1本发明提供了一种传感数据批量写入区块的系统和方法,所述方法包括接收数据执行过程和定时器执行过程,其中接收数据执行过程是接收到传感数据时执行的数据批量写入过程,定时器执行过程是固定时间间隔周期性执行的的数据批量写入过程。如图1所示,是本发明实施例一种传感数据批量写入区块的系统和方法接收数据执行过程的流程图。具体包括以下基本步骤:建立缓存队列,设置所述缓存队列的数量阈值,该步骤一般由数据接收服务器提前完成。步骤101,数据接收服务器接收来自传感器采集的传感数据。例如在电力设备检测中,在设备节点和线路上部署有温度传感器,用于定期采集温度数据。当前接收的传感数据如表1所示,包括采集的数据包括time(时间)、region(区域)、deviceid(设备号)、temp(温度),其中time包括date(日期)和daytime(时刻)两部分。数据中id为数据条目的唯一键值,即唯一标识一条数据。iddatetimeregiondeviceidtemp10003date1time3region1device1temp3表1步骤102,设置缓存队列的数据锁定信号量,将该缓存队列标记为队列中数据可能会增加或删除,其它涉及对缓存队列操作的过程应等待该信号量重新复位后再继续执行,所述缓存队列用于暂存接收的传感数据,队列中的数据按进入队列的先后顺序进行排列。步骤103,将接收的传感数据添加到缓存队列中。例如缓存队列原有id为10001和10002的两条传感数据,将接收的id为10003的数据添加到缓存列表后的数据如表2所示。iddatetimeregiondeviceidtemp10001date1time1region1device1temp110002date1time2region1device1temp210003date1time3region1device1temp3表2步骤104,判断缓存队列中传感数据的数量,如果该数量超出给定的阈值,则开始执行步骤105;否则执行步骤106。假设给定的阈值为2,由于当前队列中传感数据有3条,超出给定阈值,因此开始执行步骤105。步骤105,根据缓存队列中的传感数据生成批量传感数据并提交到区块链网络,区块链网络通过共识过程将批量传感数据写入区块链账本的区块结构中,然后将缓存队列中的数据清空。所述批量传感数据包括合并属性部分和属性列表部分,其中合并属性部分是由多条传感数据合并相同值的重复属性所组成;属性列表部分是传感数据去除合并属性后的剩余属性组成,属性列表中的每一条记录对应一条传感数据。本实施例中合并属性部分包括region和deviceid两个属性,属性列表部分的属性包括id、date、time和temp。本次批量传感数据的合并属性部分为region=region1,deviceid=device1,属性列表部分如表3所示。iddatetimetemp10001date1time1temp110002date1time2temp210003date1time3temp3表3步骤106,复位缓存队列的数据锁定信号量,将缓存队列数据解锁。实施例2基于实施例1中的一种传感数据批量写入区块的系统和方法。如图2所示,所述定时器执行过程包括:步骤201,定时器时钟周期执行开始,所述定时器时钟周期是指按照一个给定的周期定时执行的一个周期。假设设置的定时器每1分钟执行一次,则每一分钟执行一次定时器执行过程。步骤202,设置缓存队列的数据锁定信号量,将该缓存队列标记为队列中数据可能会增加或删除,其它涉及对缓存队列操作的过程应等待该信号量重新复位后再继续执行,所述缓存队列用于暂存接收的传感数据,队列中的数据按进入队列的先后顺序进行排列。步骤203,判断缓存队列中是否有传感数据,如果有,则开始执行步204;否则执行步骤205。假设缓存队列中有一条传感数据,如表4所示。iddatetimeregiondeviceidtemp10003date1time3region1device1temp3表4步骤204,生成批量传感数据并提交到区块链网络,清空缓存队列,所述该步骤过程同接收数据执行过程的步骤105。本实施例中合并属性部分包括region和deviceid两个属性,属性列表部分的属性包括id、date、time和temp。本次批量传感数据的合并属性部分为region=region1,deviceid=device1,属性列表部分如表5所示。iddatetimetemp10001date1time1temp1表5步骤205,复位缓存队列的数据锁定信号量,将缓存队列数据解锁。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。当前第1页12