1.一种基于区块链块分类的冷链数据存储与查询方法,其特征在于,包括如下步骤:步骤1:对区块链区块结构进行改进,在区块头中添加类块标识字段、添加前一个类型相同的区块Hash标识字段,建立联盟链;
步骤2:冷链数据预处理,将冷链数据划分标识为设备数据D1、订单数据D2、隐私数据D3,设备数据D1经签名后提出交易上链请求,订单数据D2经过对称加密后提出上链请求,隐私数据D3通过非对称加密后提出上链请求;
步骤3:联盟链节点对交易缓冲池中相同接收地址的交易进行打包,打包时根据接收地址填充类型标识CB1、CB2、CB3,打包完成后等待共识,共识完成即可将区块上链;
步骤4:基于所述联盟链,用户根据权限对联盟链进行选择性查询,根据类块标识对联盟链进行检索,根据前一个类型相同的区块Hash标识字段中的Hash值回溯交易数据。
2.根据权利要求1所述的基于区块链块分类的冷链数据存储与查询方法,其特征在于,所述步骤1建立联盟链的具体方法为:步骤1.1:对区块链区块结构进行改进,在区块头中加入区块类型标识,通过填充不同值将区块分类为不同类型的区块;
步骤1.2:在区块头中加入前一个类型相同的区块Hash标识字段;
步骤1.3:基于改进区块结构,建立联盟链;
步骤1.4:所述联盟链包含四类交易,其中三类为部署合约的交易,剩下一类为调用合约的交易,所述部署合约的交易,生成交易中不需要指定接收对象;所述调用合约的交易,需要将交易中的接收地址置为链上合约的地址;
步骤1.4.1:步骤1.4中所述部署合约的交易,通过规定接收地址不同来标识不同的数据交易;
步骤1.4.2:包含设备数据D1的交易的接收地址规定为0x0;
步骤1.4.3:包含订单数据D2的交易的接收地址规定为1x1;
步骤1.4.4:包含隐私数据D3的交易的接收地址规定为2x2。
3.根据权利要求1所述的基于区块链块分类的冷链数据存储与查询方法,其特征在于,所述步骤2中设备数据D1的上链请求具体为:设备数据D1由区块链用户明文提出上链请求;用户创建交易,所述交易中包含发送地址、接收地址0x0、设备数据D1、交易签名。
4.根据权利要求1所述的基于区块链块分类的冷链数据存储与查询方法,其特征在于,所述步骤2中订单数据D2经过AES对称加密后提出上链请求:步骤2.3.1:基于随机函数,生成对称加密密钥kn;
步骤2.3.2:通过AES对称加密函数将订单数据D2和加密密钥kn加密为密文MD2;
步骤2.3.3:用户创建交易,所述交易中包含发送地址、接收地址1x1、密文MD2、交易签名。
5.根据权利要求1所述的基于区块链块分类的冷链数据存储与查询方法,其特征在于,所述步骤2中隐私数据D3经过非对称加密后提出上链请求:步骤2.4.1:基于随机函数,生成对称加密密钥对,公钥pkn、私钥skn;
步骤2.4.2:通过RSA非对称加密函数将隐私数据和公钥pkn加密为密文MD3;
步骤2.4.3:用户创建交易,所述交易中包含发送地址、接收地址2x2、密文MD3、交易签名。
6.根据权利要求1所述的基于区块链块分类的冷链数据存储与查询方法,其特征在于,所述步骤3的具体方法为:步骤3.1:节点检索交易缓冲池,查看交易内容,根据接收地址填充类块标识;
步骤3.2:对接收地址为0x0的区块填充类块标识CB1,对接收地址为1x1的区块填充类块标识CB2,对接收地址为2x2的区块填充类块标识CB3;
步骤3.3:填充前一区块Hash值,填充前一个类型相同的区块Hash标识字段中的Hash值,填充其他字段,获得完整区块头;
步骤3.4:继续检索交易缓冲池并将相同接收地址的交易加入区块;
步骤3.5:达到区块设置容量大小停止打包交易,将区块广播至全网,等待共识;
步骤3.6:使用实用型拜占庭PBFT共识算法对区块进行共识,共识完成则成为最新区块。
7.一种基于区块链块分类的冷链数据存储与查询装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被加载至处理器时实现如权利要求1‑6任一项所述的基于区块链块分类的冷链数据存储与查询方法的步骤。