1.基于区块链技术的农产品溯源方法,其特征在于包括以下步骤:
(1)农产品数据在区块链中的存储,包括确定存储在区块链上的数据种类和格式;
(2)在步骤(1)的基础上建立农产品溯源链;
(3)根据所述农产品溯源链建立共识机制,使需要存储到区块链上的数据必须按照所述共识机制争得其他节点同意。
2.根据权利要求1所述基于区块链技术的农产品溯源方法,其特征在于:所述农产品数据分为结构化数据和非结构化数据,非结构化数据不存储在区块链上,结构化数据存储在区块链上。
3.根据权利要求1或2所述基于区块链技术的农产品溯源方法,其特征在于:将所述存储在区块链上的数据格式分为区块和信息单,所述区块中记录着前一个区块ID以及该区块下的信息单ID,所述信息单包括信息单ID、信息类型、时间戳、公钥、数字签名。
4.根据权利要求3所述基于区块链技术的农产品溯源方法,其特征在于:所述溯源链为双链结构,第一条链为B1第二条链为B2,B1链上记录所述区块,B2链上记录所述信息单。
5.根据权利要求1或2或4所述基于区块链技术的农产品溯源方法,其特征在于:所述共识机制的具体步骤包括:c1:预准备阶段,节点收到pre-prepare消息后,会有两种选择,一种是接受,一种是不接受;如果一个节点接到了一条pre-prepare消息,消息里的V和N在之前收到里的消息是曾经出现过的,但是d和M却和之前的消息不一致,或者请求编号不在高低水位之间,这时候就会拒绝请求;
c2:准备阶段,节点同意请求后会向其它节点发送prepare消息;
c3:提交阶段,向其它节点广播commit消息,当收到3/5的commit消息后,代表大多数节点已经进入提交阶段,这一阶段已经达成共识,于是节点就会执行请求,写入数据。
6.根据权利要求5所述基于区块链技术的农产品溯源方法,其特征在于:还包括恶意节点检查步骤,某一节点如果在提交阶段有一次未达成共识,下一次这个节点不参加共识;某一节点如果在提交阶段连续有两次未达成共识,下两次这个节点不参加共识;某一节点如果在提交阶段连续有三次未达成共识,这个节点将永远不能参加共识。