1.一种区块链的实现方法,其特征在于,包括客户端数据上链流程,所述客户端数据上链流程包括如下步骤:
a1)客户端把需要储存的文件上传到ipfs系统,获取所述文件的hash值fh;
a2)所述客户端计算所述文件的hash值fh,并对所述文件的hash值fh、当前时间time和用户hash值uh进行签名得到文件签名us;
a3)所述客户端将所述文件的hash值fh、所述文件签名us、所述当前时间time、所述用户hash值uh和区块链id信息发送到中心,请求建立区块节点;
a4)所述客户端监听添加区块链是否成功,如是,执行步骤a5);否则,执行步骤a6);
a5)所述客户端将新增的区块节点下载下来,执行步骤a7);
a6)所述客户端进行异常处理,返回步骤a3);
a7)结束。
2.根据权利要求1所述的区块链的实现方法,其特征在于,还包括中心将数据上链流程,所述中心将数据上链流程包括如下步骤:
b1)所述中心接收到添加区块节点的请求;
b2)所述中心从所述ipfs系统同步需要上区块链的文件到本地;
b3)所述中心查找用户信息,使用用户信息校验所述文件签名us;
b4)判断所述文件签名us是否合法,如是,执行步骤b6);否则,执行步骤b5);
b5)返回出错信息给用户,告知用户进行异常处理,执行步骤b10);
b6)所述中心将所述文件签名us和上一块区块hash值ph进行合并,使用自己的私钥计算签名得到私钥签名bs,执行步骤b7);
b7)所述中心将区块节点文件写到所述ipfs系统,得到区块节点的hash值;
b8)所述中心把添加成功的所述区块节点的hash值返回给用户;
b9)所述中心广播区块链的变更消息,订阅者根据收到的消息从所述ipfs系统中更新区块链;
b10)结束。
3.根据权利要求1所述的区块链的实现方法,其特征在于,还包括秘钥变更流程,所述秘钥变更流程包括如下步骤:
c1)定时产生一对新的秘钥对;
c2)把新旧公钥写到所述ipfs系统中,得到相应的hash值;
c3)使用旧的私钥对所述ipfs系统中的文件进行签名;
c4)发送上链请求到所述中心,所述中心将签名后的文件上链到公钥链;
c5)记录下新的私钥,后续的签名采用所述新的私钥来进行。
4.根据权利要求1所述的区块链的实现方法,其特征在于,还包括添加用户流程,所述添加用户流程包括如下步骤:
d1)添加用户前首先要获取被添加用户的信息,所述被添加用户的信息包括被添加人的公钥;
d2)将所述被添加用户的信息保存到所述ipfs系统,获得新文件的hash值;所述被添加用户的信息包括用户的hash;
d3)使用被添加用户的私钥对所述新文件进行签名;
d4)请求把数据上链到用户链;
d5)数据上所述用户链成功后,通知所述被添加用户,所述被添加用户上链自己的数据。
5.根据权利要求1所述的区块链的实现方法,其特征在于,还包括删除用户流程,所述删除用户流程包括如下步骤:
e1)删除用户前获取被删除用户的信息;
e2)将所述被删除用户的信息保存到所述ipfs系统,获得新文件的hash值;所述被删除用户的信息包括用户的hash;
e3)使用自己的私钥对所述新文件进行签名;
e4)请求把数据上链到失效链;
e5)所述中心判断是否有权删除,如是,执行步骤e6);否则,执行步骤e7);
e6)所述数据上所述失效链成功后,通知所述被删除用户,所述被删除用户无法再请求数据上链;
e7)结束。
6.根据权利要求5所述的区块链的实现方法,其特征在于,用户自己或者用户的创建人或者创建人的上级创建人能删除用户。