发明内容
由于目前市场上存在的跨链系统无法从整体上对用户账户进行系统性管理,也没有提供用户账户的分类变更和查询功能,使得现有的跨链系统缺乏可扩展性和实用性。针对上述问题,本公开内容的公开了用于跨区块链建立账户的方法及系统能够建立公有链账户和/或联盟链账户,并且能够建立公有链账户与联盟链账户、公有链账户与公有链账户、联盟链账户与联盟链账户等源账户与目的账户之间的映射关系,实现了对同一用户的不同账户进行分类变更和查询功能。
本公开内容的第一方面提出了一种用于跨区块链建立账户的方法,所述方法包括:
接收并审核创建用户请求;
在所述创建用户请求通过审核的情况下,生成与所述创建用户请求相对应的全局唯一用户编码;
基于所述全局唯一用户编码生成相应的跨区块链账户清单,其中,所述跨区块链账户清单包括所述全局唯一用户编码、与所述全局唯一用户编码相对应的账户总数、与所述全局唯一用户编码相对应的公有链账户总数和公有链账户列表、与所述全局唯一用户编码相对应的联盟链账户总数和联盟链机构用户及账户列表;
接收新建账户请求,其中,所述新建账户请求是新建公有链账户请求或新建联盟链账户请求,并且所述新建账户请求至少包括所述全局唯一用户编码、账户名称以及目的区块链;以及
基于所述新建账户请求创建所述目的区块链的账户,并将所创建账户的账户信息写入所述跨区块链账户清单。
在根据本公开内容的第一方面的实施例中,接收并审核创建用户请求进一步包括:
当所述创建用户请求来自个人使用者时,至少审核所述创建用户请求中的个人身份信息以及联系方式信息是否真实有效,在所述个人身份信息以及所述联系方式信息真实有效的情况下,确定所述创建用户请求通过审核;或者
当所述创建用户请求来自企业使用者时,至少审核所述创建用户请求中的企业法人信息以及统一社会信用代码是否真实有效,在所述企业法人信息以及所述统一社会信用代码真实有效的情况下,确定所述创建用户请求通过审核。
在根据本公开内容的第一方面的实施例中,当所接收的新建账户请求中包括的目的区块链是任一种公有链时,基于所述新建账户请求创建所述目的区块链的相应账户并将所创建账户的账户信息写入所述跨区块链账户清单进一步包括:
向所述目的区块链的任一区块链节点发送创建公有链账户请求,其中,所述创建公有链账户请求至少包括所述全局唯一用户编码和所述账户名称;
接收来自所述目的区块链的区块链节点所创建账户的账户信息,其中,所述账户信息至少包括与所述账户名称相对应的公有链账户地址以及所创建的公有链账户私钥,并且其中,所述公有链账户地址与所述全局唯一用户编码相关联;
基于所述账户地址与所述全局唯一用户编码的关联关系,更新与所述全局唯一用户编码相对应的账户总数以及与所述全局唯一用户编码相对应的公有链账户总数,并将所创建的公有链账户地址、所创建的公有链账户私钥、所述账户所属的目的区块链信息以及所述公有链账户名称写入所述公有链账户列表中;
向客户端返回所创建账户的账户信息。
在根据本公开内容的第一方面的实施例中,在接收新建账户请求之前,所述方法进一步包括:
接收新建联盟链机构用户请求,其中,所述新建联盟链机构用户请求至少包括所述全局唯一用户编码以及联盟链机构用户名称;
基于所述新建联盟链机构用户请求创建所述联盟链机构用户,并将所创建联盟链机构用户的联盟链机构用户名称、联盟链机构用户ID号写入所述跨区块链账户清单。
在根据本公开内容的第一方面的实施例中,当所接收的新建账户请求中包括的目的区块链是任一种联盟链时,所接收的新建账户请求还包括要求新建账户的联盟链机构用户名称;基于所述新建账户请求创建所述目的区块链的相应账户并将所创建账户的账户信息写入所述跨区块链账户清单进一步包括:
向所述目的区块链的任一区块链节点发送创建联盟链账户请求,其中,所述创建联盟链账户请求至少包括所述全局唯一用户编码和所述账户名称;
接收来自所述目的区块链的区块链节点所创建账户的账户信息,其中,所述账户信息至少包括与所述账户名称相对应的联盟链账户地址、所创建的联盟链账户私钥以及联盟链认证证书,并且其中,所述账户地址与所述全局唯一用户编码相关联;
基于所述账户地址与所述全局唯一用户编码的关联关系,更新与所述全局唯一用户编码相对应的账户总数以及与所述全局唯一用户编码相对应的联盟链账户总数,并将所创建账户的联盟链账户名称、联盟链账户地址、所创建的联盟链账户私钥、所述账户所属的目的区块链信息、联盟链认证证书、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号写入所述联盟链机构用户及账户列表中;
向客户端返回所创建账户的账户信息。
在根据本公开内容的第一方面的实施例中,所述方法进一步包括:
接收账户映射请求,其中,所述账户映射请求至少包括源账户地址、目的账户地址以及全局唯一用户编码;
确定所述账户映射请求是否符合映射标准;
在所述账户映射请求符合所述映射标准的情况下,基于所述账户映射请求建立相应账户之间的账户映射关系。
在根据本公开内容的第一方面的实施例中,确定所述账户映射请求是否符合映射标准进一步包括:
确定所述源账户地址、所述目的账户地址是否存在于所述跨区块链账户清单中;
在确定所述源账户地址、所述目的账户地址存在于所述跨区块链账户清单中的情况下,确定所述源账户地址、所述账户地址是否均与所述账户映射请求中的全局唯一用户编码具有关联关系;以及
在确定所述源账户地址、所述目的账户地址均与所述账户映射请求中的全局唯一用户编码具有关联关系的情况下,确定所述账户映射请求符合映射标准。
在根据本公开内容的第一方面的实施例中,基于所述账户映射请求建立相应账户之间的映射关系进一步包括:
将所述源账户地址写入账户映射列表中的源账户信息中,并将所述目的账户地址写入所述账户映射列表中的目的账户信息中,使得所述源账户地址与所述目的账户地址具有相互对应的账户映射关系。
在根据本公开内容的第一方面的实施例中,所述方法进一步包括:
接收调整公有链账户请求,其中,所述调整公有链账户请求包括与所述全局唯一用户编码相对应的用户名、调整模式以及要调整的信息,并且其中,所述要调整的信息是公有链账户地址、公有链账户私钥和/或公有链账户名称中的一个或多个;
基于所述调整公有链账户请求,对相应的所述公有链账户进行调整;
在所述公有链账户存在账户映射关系的情况下,基于调整后的公有链账户修改相应的账户映射关系。
在根据本公开内容的第一方面的实施例中,基于所述调整公有链账户请求对相应的所述公有链账户进行调整进一步包括:
当所述调整模式是修改公有链账户并且所述要调整的信息是公有链账户名称和/或公有链账户私钥时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述公有链账户名称以及所述公有链账户所属的目的公有链;
向所述目的公有链的区块链节点发送修改请求,其中,所述修改请求包括要修改的公有链账户名称和/或公有链账户私钥;
接收来自所述目的公有链的区块链节点的修改信息,其中,所述修改信息包括修改后的公有链账户名称和/或修改后的公有链账户私钥;
在所述跨区块链账户清单中将所述修改后的公有链账户名称和/或修改后的公有链账户私钥替代修改前的公有链名称和/或修改前的公有链账户私钥;或者
当所述调整模式是删除公有链账户并且所述要调整的信息是公有链账户地址和/或公有链账户名称时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述公有链账户地址和/或所述公有链账户名称、所述公有链账户所属的目的公有链;
向所述目的公有链的区块链节点发送删除请求,其中,所述删除请求包括要删除的公有链账户地址和/或公有链账户名称;
接收来自所述目的公有链的区块链节点的删除信息;
在所述跨区块链账户清单中删除与所述公有链账户相关联的信息。
在根据本公开内容的第一方面的实施例中,所述方法进一步包括:
接收调整联盟链账户请求,其中,所述调整联盟链账户请求包括与所述全局唯一用户编码相对应的用户名、调整模式以及要调整的信息,并且其中,所述要调整的信息包括联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户地址、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
基于所述调整联盟链账户请求,对相应的所述联盟链账户进行调整;
在所述联盟链账户存在账户映射关系的情况下,基于调整后的联盟链账户修改相应的账户映射关系。
在根据本公开内容的第一方面的实施例中,基于所述调整联盟链账户请求对相应的所述联盟链账户进行调整进一步包括:
当所述调整模式是修改联盟链账户并且所述要调整的信息是联盟链账户名称、联盟链账户地址、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述联盟链账户名称以及所述联盟链账户所属的目的联盟链;
向所述目的联盟链的区块链节点发送修改请求,其中,所述修改请求包括要修改的联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
接收来自所述目的联盟链的区块链节点的修改信息,其中,所述修改信息包括修改后的联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
在修改联盟链账户名称、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个的情况下,在所述跨区块链账户清单中将所述修改后的联盟链账户名称、修改后的联盟链私钥和/或修改后的联盟链账户认证证书中的一个或多个相应地替代修改前的联盟链账户名称、修改前的联盟链私钥和/或修改前的联盟链账户认证证书中的一个或多个;或者
当所述调整模式是删除联盟链账户并且所述要调整的信息是联盟链账户地址和/或联盟链账户名称时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述联盟链账户名称和/或所述联盟链账户地址、以及所述联盟链账户所属的目的联盟链;
向所述目的联盟链的区块链节点发送删除请求,其中,所述删除请求包括要删除的联盟链账户地址和/或联盟链账户名称;
接收来自所述目的联盟链的区块链节点的删除信息;
在所述跨区块链账户清单中删除与所述联盟链账户相关联的信息。在根据本公开内容的第一方面的实施例中,所述方法进一步包括:
接收查询请求,其中,所述查询请求至少包括与所述全局唯一用户编码相对应的用户名以及要查询的信息,并且其中,所述要查询的信息包括与所述全局唯一用户编码相对应的账户总数、与所述全局唯一用户编码相对应的公有链账户总数、与所述全局唯一用户编码相对应的联盟链账户总数、与所述全局唯一用户编码相对应的用户信息、账户信息中的一个或多个;
返回与所述查询请求相对应的信息。
本公开内容的第二方面提出了一种用于跨区块链建立账户的系统,所述系统包括:
一个或多个客户端;
多个跨链账户管理设备,所述多个跨链账户管理设备分别与所述一个或多个客户端进行通信,并且所述多个跨链账户管理设备之间进行通信以保持所有跨链账户管理设备的数据同步,每一个跨链账户管理设备分别与一个或多个公有链的区块链节点以及一个或多个联盟链的区块链节点进行通信,其中,每一个跨链账户管理设备进一步包括:
处理器;
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
接收并审核创建用户请求;
在所述创建用户请求通过审核的情况下,生成与所述创建用户请求相对应的全局唯一用户编码;
基于所述全局唯一用户编码生成相应的跨区块链账户清单,其中,所述跨区块链账户清单包括所述全局唯一用户编码、与所述全局唯一用户编码相对应的账户总数、与所述全局唯一用户编码相对应的公有链账户总数和公有链账户列表、与所述全局唯一用户编码相对应的联盟链账户总数和联盟链机构用户及账户列表;
接收新建账户请求,其中,所述新建账户请求是新建公有链账户请求或新建联盟链账户请求,并且所述新建账户请求至少包括所述全局唯一用户编码、账户名称以及目的区块链;以及
基于所述新建账户请求创建所述目的区块链的账户,并将所创建账户的账户信息写入所述跨区块链账户清单。
在根据本公开内容的第二方面的实施例中,接收并审核创建用户请求进一步包括:
当所述创建用户请求来自个人使用者时,至少审核所述创建用户请求中的个人身份信息以及联系方式信息是否真实有效,在所述个人身份信息以及所述联系方式信息真实有效的情况下,确定所述创建用户请求通过审核;或者
当所述创建用户请求来自企业使用者时,至少审核所述创建用户请求中的企业法人信息以及统一社会信用代码是否真实有效,在所述企业法人信息以及所述统一社会信用代码真实有效的情况下,确定所述创建用户请求通过审核。
在根据本公开内容的第二方面的实施例中,当所接收的新建账户请求中包括的目的区块链是任一种公有链时,基于所述新建账户请求创建所述目的区块链的相应账户并将所创建账户的账户信息写入所述跨区块链账户清单进一步包括:
向所述目的区块链的任一区块链节点发送创建公有链账户请求,其中,所述创建公有链账户请求至少包括所述全局唯一用户编码和所述账户名称;
接收来自所述目的区块链的区块链节点所创建账户的账户信息,其中,所述账户信息至少包括与所述账户名称相对应的公有链账户地址以及所创建的公有链账户私钥,并且其中,所述公有链账户地址与所述全局唯一用户编码相关联;
基于所述账户地址与所述全局唯一用户编码的关联关系,更新与所述全局唯一用户编码相对应的账户总数以及与所述全局唯一用户编码相对应的公有链账户总数,并将所创建的公有链账户地址、公有链账户私钥以及所述账户所属的目的区块链信息写入所述公有链账户列表中;
向客户端返回所创建账户的账户信息。
在根据本公开内容的第二方面的实施例中,在接收新建账户请求之前,当所述指令执行时使得所述处理器进一步执行以下操作:
接收新建联盟链机构用户请求,其中,所述新建联盟链机构用户请求至少包括所述全局唯一用户编码以及联盟链机构用户名称;
基于所述新建联盟链机构用户请求创建所述联盟链机构用户,并将所创建联盟链机构用户的联盟链机构用户名称、联盟链机构用户ID号写入所述跨区块链账户清单。
在根据本公开内容的第二方面的实施例中,当所接收的新建账户请求中包括的目的区块链是任一种联盟链时,所接收的新建账户请求还包括要求新建账户的联盟链机构用户名称;基于所述新建账户请求创建所述目的区块链的相应账户并将所创建账户的账户信息写入所述跨区块链账户清单进一步包括:
向所述目的区块链的任一区块链节点发送创建联盟链账户请求,其中,所述创建联盟链账户请求至少包括所述全局唯一用户编码和所述账户名称;
接收来自所述目的区块链的区块链节点所创建账户的账户信息,其中,所述账户信息至少包括与所述账户名称相对应的联盟链账户地址、所创建的联盟链账户私钥以及联盟链认证证书,并且其中,所述账户地址与所述全局唯一用户编码相关联;
基于所述账户地址与所述全局唯一用户编码的关联关系,更新与所述全局唯一用户编码相对应的账户总数以及与所述全局唯一用户编码相对应的联盟链账户总数,并将所创建账户的联盟链账户名称、联盟链账户地址、联盟链账户私钥、所述账户所属的目的区块链信息、联盟链认证证书、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号写入所述联盟链机构用户及账户列表中;
向客户端返回所创建账户的账户信息。
在根据本公开内容的第二方面的实施例中,当所述指令执行时使得所述处理器进一步执行以下操作:
接收账户映射请求,其中,所述账户映射请求至少包括源账户地址、目的账户地址以及全局唯一用户编码;
确定所述账户映射请求是否符合映射标准;
在所述账户映射请求符合所述映射标准的情况下,基于所述账户映射请求建立相应账户之间的账户映射关系。
在根据本公开内容的第二方面的实施例中,确定所述账户映射请求是否符合映射标准进一步包括:
确定所述源账户地址、所述目的账户地址是否存在于所述跨区块链账户清单中;
在确定所述源账户地址、所述目的账户地址存在于所述跨区块链账户清单中的情况下,确定所述源账户地址、所述账户地址是否均与所述账户映射请求中的全局唯一用户编码具有关联关系;以及
在确定所述源账户地址、所述目的账户地址均与所述账户映射请求中的全局唯一用户编码具有关联关系的情况下,确定所述账户映射请求符合映射标准。
在根据本公开内容的第二方面的实施例中,基于所述账户映射请求建立相应账户之间的映射关系进一步包括:
将所述源账户地址写入账户映射列表中的源账户信息中,并将所述目的账户地址写入所述账户映射列表中的目的账户信息中,使得所述源账户地址与所述目的账户地址具有相互对应的账户映射关系。
在根据本公开内容的第二方面的实施例中,当所述指令执行时使得所述处理器进一步执行以下操作:
接收调整公有链账户请求,其中,所述调整公有链账户请求包括与所述全局唯一用户编码相对应的用户名、调整模式以及要调整的信息,并且其中,所述要调整的信息是公有链账户地址、公有链账户私钥和/或公有链账户名称中的一个或多个;
基于所述调整公有链账户请求,对相应的所述公有链账户进行调整;
在所述公有链账户存在账户映射关系的情况下,基于调整后的公有链账户修改相应的账户映射关系。
在根据本公开内容的第二方面的实施例中,基于所述调整公有链账户请求对相应的所述公有链账户进行调整进一步包括:
当所述调整模式是修改公有链账户并且所述要调整的信息是公有链账户名称和/或公有链账户私钥时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述公有链账户名称以及所述公有链账户所属的目的公有链;
向所述目的公有链的区块链节点发送修改请求,其中,所述修改请求包括要修改的公有链账户名称和/或公有链账户私钥;
接收来自所述目的公有链的区块链节点的修改信息,其中,所述修改信息包括修改后的公有链账户名称和/或修改后的公有链账户私钥;
在所述跨区块链账户清单中将所述修改后的公有链账户名称和/或修改后的公有链账户私钥替代修改前的公有链名称和/或修改前的公有链账户私钥;或者
当所述调整模式是删除公有链账户并且所述要调整的信息是公有链账户地址和/或公有链账户名称时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述公有链账户地址和/或所述公有链账户名称、所述公有链账户所属的目的公有链;
向所述目的公有链的区块链节点发送删除请求,其中,所述删除请求包括要删除的公有链账户地址和/或公有链账户名称;
接收来自所述目的公有链的区块链节点的删除信息;
在所述跨区块链账户清单中删除与所述公有链账户相关联的信息。
在根据本公开内容的第二方面的实施例中,当所述指令执行时使得所述处理器进一步执行以下操作:
接收调整联盟链账户请求,其中,所述调整联盟链账户请求包括与所述全局唯一用户编码相对应的用户名、调整模式以及要调整的信息,并且其中,所述要调整的信息包括联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户地址、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
基于所述调整联盟链账户请求,对相应的所述联盟链账户进行调整;
在所述联盟链账户存在账户映射关系的情况下,基于调整后的联盟链账户修改相应的账户映射关系。
在根据本公开内容的第二方面的实施例中,基于所述调整联盟链账户请求对相应的所述联盟链账户进行调整进一步包括:
当所述调整模式是修改联盟链账户并且所述要调整的信息是联盟链账户名称、联盟链账户地址、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述联盟链账户名称以及所述联盟链账户所属的目的联盟链;
向所述目的联盟链的区块链节点发送修改请求,其中,所述修改请求包括要修改的联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
接收来自所述目的联盟链的区块链节点的修改信息,其中,所述修改信息包括修改后的联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
在修改联盟链账户名称、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个的情况下,在所述跨区块链账户清单中将所述修改后的联盟链账户名称、修改后的联盟链私钥和/或修改后的联盟链账户认证证书中的一个或多个相应地替代修改前的联盟链账户名称、修改前的联盟链私钥和/或修改前的联盟链账户认证证书中的一个或多个;或者
当所述调整模式是删除联盟链账户并且所述要调整的信息是联盟链账户地址和/或联盟链账户名称时:
在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述联盟链账户名称和/或所述联盟链账户地址、以及所述联盟链账户所属的目的联盟链;
向所述目的联盟链的区块链节点发送删除请求,其中,所述删除请求包括要删除的联盟链账户地址和/或联盟链账户名称;
接收来自所述目的联盟链的区块链节点的删除信息;
在所述跨区块链账户清单中删除与所述联盟链账户相关联的信息。
在根据本公开内容的第二方面的实施例中,当所述指令执行时使得所述处理器进一步执行以下操作:
接收查询请求,其中,所述查询请求至少包括与所述全局唯一用户编码相对应的用户名以及要查询的信息,并且其中,所述要查询的信息包括与所述全局唯一用户编码相对应的账户总数、与所述全局唯一用户编码相对应的公有链账户总数、与所述全局唯一用户编码相对应的联盟链账户总数、与所述全局唯一用户编码相对应的用户信息、账户信息中的一个或多个;
返回与所述查询请求相对应的信息。
依据本公开内容的用于跨区块链建立账户的方法及系统能够实现从整体上对用户账户进行系统性管理,并且实现了同一用户在其不同区块链上的账户之间根据需要建立相应的账户映射关系,以便于账户关联变更和交易处理;此外,本公开内容还能够向用户提供对账户的变更服务和查询服务。
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。
本公开内容的实施例主要关注以下技术问题:如何处理同一用户既需要创建公有链账户又需要创建联盟链账户时产生的账户创建问题,如何建立用户的不同账户之间的联系,以及如何实现对于同一用户所有账户的管理(包括修改、删除、查询等)。
为了解决上述问题,本文所公开的用于跨区块链建立账户的方法及系统利用跨链账户管理设备实现了创建不同类型区块链的账户、根据用户需求对不同的账户建立映射关系以及根据用户需求对所有账户进行查询、修改、删除等管理,提高了用户在不同区块链上的应用的方便性、扩展性及实用性。
实施例1
图1示出了用于跨区块链建立账户的方法的示例性流程图。本实施例中在使用者需要分别建立一个或多个公有链账户以及一个或多个联盟链账户的情况下,跨链账户管理设备可以实施图1所示的方法,具体如下:
步骤110:接收并审核创建用户请求。
在步骤110中,跨链账户管理设备的具体操作如下:
首先,从客户端接收来自使用者的创建用户请求。
其次,当所述创建用户请求来自个人使用者时,至少审核所述创建用户请求中的个人身份信息以及联系方式信息是否真实有效,在所述个人身份信息以及所述联系方式信息真实有效的情况下,确定所述创建用户请求通过审核。
在本实施例中,上述联系方式可以是移动电话号码、微信号、电子邮件地址中的一个或多个。另外,所述创建用户请求还至少包括用户名和用户密码,可选地还可以包括自定义图像、昵称等个性信息。
替代地,当所述创建用户请求来自企业使用者时,至少审核所述创建用户请求中的企业法人信息以及统一社会信用代码是否真实有效,在所述企业法人信息以及所述统一社会信用代码真实有效的情况下,确定所述创建用户请求通过审核。
在本实施例中,上述联系方式可以是移动电话号码、微信号、电子邮件地址中的一个或多个。另外,所述创建用户请求还至少包括用户名和用户密码,可选地还可以包括企业类型、法人代表信息、营业执照信息等。
步骤120:在所述创建用户请求通过审核的情况下,生成与所述创建用户请求相对应的全局唯一用户编码。
在本实施例中,跨链账户管理设备生成的全局唯一用户编码利用生成时的时间戳信息和自增序列编号来保存其唯一性。该全局唯一用户编码与上述用户名、用户密码一一对应。
步骤130:基于所述全局唯一用户编码生成相应的跨区块链账户清单。其中,所述跨区块链账户清单包括所述全局唯一用户编码、与所述全局唯一用户编码相对应的账户总数、与所述全局唯一用户编码相对应的公有链账户总数和公有链账户列表(例如,PBC_公有链账户列表)、与所述全局唯一用户编码相对应的联盟链账户总数和联盟链机构用户及账户列表(例如,CBC_联盟链机构用户及账户列表)。
在本实施例中,跨链账户管理设备通过自己的数据库或文件系统(例如,关系型数据库,诸如Oracle或NoSQL数据库或New SQL数据库)保存所有用户的跨区块链账户清单。用于跨区块链建立账户的系统中的多个跨链账户管理设备相互备份,使得每一个跨链账户管理设备都具有所述系统中注册的所有用户的最新跨区块链账户清单。在实际应用中,任一用户可以有一个或多个相同和/或不同公有链的账户以及一个或多个相同和/或不同联盟链的账户,或者可以仅具有一个或多个相同和/或不同公有链的账户,或者可以仅具有一个或多个相同和/或不同联盟链的账户。
步骤140:从客户端接收用户的新建账户请求。其中,所述新建账户请求至少包括所述全局唯一用户编码、账户名称以及目的区块链。
此外,在步骤130与步骤140之间,本实施例所公开的跨链账户管理设备进一步可以执行以下步骤:
接收新建联盟链机构用户请求,其中,所述新建联盟链机构用户请求至少包括所述全局唯一用户编码以及联盟链机构用户名称;
基于所述新建联盟链机构用户请求创建所述联盟链机构用户,并将所创建联盟链机构用户的联盟链机构用户名称、联盟链机构用户ID号写入所述跨区块链账户清单。
步骤150:基于所述新建账户请求创建所述目的区块链的相应账户,并将所创建账户的账户信息写入所述跨区块链账户清单。
在本步骤中,当所接收的新建账户请求中包括的目的区块链是任一种公有链时,跨链账户管理设备的具体操作如下:
第一,向所述目的区块链的任一区块链节点发送创建公有链账户请求,其中,所述创建公有链账户请求至少包括所述全局唯一用户编码和所述账户名称;
第二,在所述目的区块链的区块链节点创建了账户之后,接收来自所述目的区块链的区块链节点所创建账户的账户信息,其中,所述账户信息至少包括与所述账户名称相对应的公有链账户地址以及所创建的公有链账户私钥,并且其中,所述公有链账户地址与所述全局唯一用户编码相关联。
第三,基于所述账户地址与所述全局唯一用户编码的关联关系,更新与所述全局唯一用户编码相对应的账户总数以及与所述全局唯一用户编码相对应的公有链账户总数,并将所创建的公有链账户地址、所创建的公有链账户私钥、所述账户所属的目的区块链信息以及所述公有链账户名称写入所述PBC_公有链账户列表中。
第四,向客户端返回所创建账户的账户信息。
在本步骤中,当所接收的新建账户请求中包括的目的区块链是任一种联盟链时,所接收的新建账户请求还包括要求新建账户的联盟链机构用户名称;跨链账户管理设备的具体操作如下:
首先,向所述目的区块链的任一区块链节点发送创建联盟链账户请求,其中,所述创建联盟链账户请求至少包括所述全局唯一用户编码和所述账户名称。
其次,在所述目的区块链的区块链节点创建了账户之后,接收来自所述目的区块链的区块链节点所创建账户的账户信息,其中,所述账户信息至少包括与所述账户名称相对应的联盟链账户地址、所创建的联盟链账户私钥以及联盟链认证证书,并且其中,所述账户地址与所述全局唯一用户编码相关联;
再次,基于所述账户地址与所述全局唯一用户编码的关联关系,更新与所述全局唯一用户编码相对应的账户总数以及与所述全局唯一用户编码相对应的联盟链账户总数,并将所创建账户的联盟链账户名称、联盟链账户地址、所创建的联盟链账户私钥、所述账户所属的目的区块链信息、联盟链认证证书、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号写入所述CBC_联盟链机构用户及账户列表中。
最后,向客户端返回所创建账户的账户信息。
在本实施例中,跨链账户管理设备将所获得的公有链账户私钥和联盟链账户私钥利用用户密码进行加密存储,使得使用者只要凭借用户名和用户密码访问其在跨链账户管理设备上创建的用户。
在实施例1中,跨链账户管理设备可以与一个或多个不同的公有链的区块链节点、一个或多个不同的联盟链的区块链节点进行通信,以便于当获得使用者发出的新建账户请求时与所述新建账户请求中的目的区块链的区块链节点进行通信,并请求相应的区块链节点创建区块链账户,并且能够将所创建账户的账户信息进行存储,以便于使用者通过客户端访问跨链账户管理设备时能够便捷的管理其所有的账户。所公开的实施例实现了跨链使用者利用在跨链账户管理设备中创建的用户管理其所有的账户,提高了管理账户的便利性和效率。
实施例2
如图2所示,在本公开内容所公开用于跨区块链建立账户的方法中,当任一用户在不同的区块链上已经创建了若干账户并且该用户需要将不同的区块链上的相应账户相关联时,该用户通过客户端向跨链账户管理设备发送账户映射请求,该跨链账户管理设备可以具体进行如下操作:
步骤210:接收由使用者通过客户端发送的账户映射请求,其中,所述账户映射请求至少包括源账户地址、目的账户地址以及全局唯一用户编码。
步骤220:确定所述账户映射请求是否符合映射标准。
在本步骤中,跨链账户管理设备具体操作步骤如下:
首先,确定所述源账户地址、所述目的账户地址是否存在于所述跨区块链账户清单中;
其次,在确定所述源账户地址、所述目的账户地址存在于所述跨区块链账户清单中的情况下,确定所述源账户地址、所述账户地址是否均与所述账户映射请求中的全局唯一用户编码具有关联关系。
最后,在确定所述源账户地址、所述目的账户地址均与所述账户映射请求中的全局唯一用户编码具有关联关系的情况下,确定所述账户映射请求符合映射标准。
步骤230:在所述账户映射请求符合所述映射标准的情况下,基于所述账户映射请求建立相应账户之间的账户映射关系。
在本公开内容中,跨链账户管理设备具体采用如下操作实现步骤230:
将所述源账户地址写入账户映射列表中的源账户信息中,并将所述目的账户地址写入所述账户映射列表中的目的账户信息中,使得所述源账户地址与所述目的账户地址具有相互对应的账户映射关系。
本实施例能够实现用户的同一个账户与该用户的多个不同账户具有映射关系以及用户的一个账户仅与该用户的一个目的账户具有映射关系;同时用户的任一公有链账户或联盟链账户可以与该用户的一个或多个联盟链账户或一个或多个公有链账户具有映射关系,以便于后续查找与任一账户具有映射关系的所有账户以及确定不同账户之间是否具有交易的权限。
实施例3
如图3、图4所示,在本公开内容所公开用于跨区块链建立账户的方法中,当任一用户在不同的区块链上已经创建了若干账户并且该用户需要对任一账户进行修改时,该用户通过客户端向跨链账户管理设备发送调整账户请求。
如图3所示,当所述调整账户请求是调整公有链账户请求时,该跨链账户管理设备可以具体进行如下操作:
步骤310:通过客户端接收来自使用者的调整公有链账户请求,其中,所述调整公有链账户请求包括与所述全局唯一用户编码相对应的用户名、调整模式以及要调整的信息,并且其中,所述要调整的信息是公有链账户地址、公有链账户私钥、扩展信息和/或公有链账户名称中的一个或多个。
步骤320:基于所述调整公有链账户请求,对相应的所述公有链账户进行调整。该步骤具体包括:
当所述调整模式是修改公有链账户并且所述要调整的信息是公有链账户名称、扩展信息和/或公有链账户私钥时:
首先,在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述公有链账户名称以及所述公有链账户所属的目的公有链。
在本实施例中,在与所述全局唯一用户编码相对应PBC_公有链账户列表中查询是否存在调整公有链账户请求中的公有链账户名称、扩展信息和/或公有链账户私钥,当存在该公有链账户信息时,执行下一步骤。
其次,在所述PBC_公有链账户列表中存在调整公有链账户请求中的公有链账户名称、扩展信息和/或公有链账户私钥的情况下,向所述目的公有链的区块链节点发送修改请求,其中,所述修改请求包括要修改的公有链账户名称和/或公有链账户私钥。
再次,在所述目的公有链的区块链节点完成了对相应账户的修改之后,接收来自所述目的公有链的区块链节点的修改信息,其中,所述修改信息包括修改后的公有链账户名称、修改后的扩展信息和/或修改后的公有链账户私钥。
最后,在所述跨区块链账户清单中将所述修改后的公有链账户名称、修改后的扩展信息和/或修改后的公有链账户私钥替代修改前的公有链名称、修改前的扩展信息和/或修改前的公有链账户私钥。
在本实施例中,在相应的PBC_公有链账户列表中修改公有链账户名称、扩展信息和/或公有链账户私钥。
当所述调整模式是删除公有链账户并且所述要调整的信息是公有链账户地址和/或公有链账户名称时:
第一,在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述公有链账户地址和/或所述公有链账户名称、所述公有链账户所属的目的公有链。
在本实施例中,在与所述全局唯一用户编码相对应PBC_公有链账户列表中查询是否存在调整公有链账户请求中的公有链账户名称和/或公有链账户名称,当存在该联盟链账户信息时,执行下一步骤。
第二,向所述目的公有链的区块链节点发送删除请求,其中,所述删除请求包括要删除的公有链账户地址和/或公有链账户名称。
第三,接收来自所述目的公有链的区块链节点的删除信息。
第四,在所述跨区块链账户清单中删除与所述公有链账户相关联的信息。在本实施例中,在相应的PBC_公有链账户列表中删除公有链账户及其相关联的信息。
步骤330:在所述公有链账户存在账户映射关系的情况下,基于调整后的公有链账户修改相应的账户映射关系。
在本实施例中,当调整公有链账户请求中的调整模式是修改账户并且修改了公有链账户名称时,使得修改后的公有链账户名称替代所述账户映射列表中修改前的公有链账户名称并且保持该账户原来的账户映射关系。当调整公有链账户请求中的调整模式是删除账户时,在所述账户映射列表中删除与该账户相关联映射的关系信息。
如图4所示,当所述调整账户请求是调整联盟链账户请求时,该跨链账户管理设备可以具体进行如下操作:
步骤410:接收调整联盟链账户请求,其中,所述调整联盟链账户请求包括与所述全局唯一用户编码相对应的用户名、调整模式以及要调整的信息,并且其中,所述要调整的信息包括联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户地址、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
步骤420:基于所述调整联盟链账户请求,对相应的所述联盟链账户进行调整。该步骤具体包括:
当所述调整模式是修改联盟链账户并且所述要调整的信息是联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个时:
首先,在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述联盟链账户名称以及所述联盟链账户所属的目的联盟链。
在本实施例中,在与所述全局唯一用户编码相对应的CBC_联盟链机构用户及账户列表中查询是否存在调整联盟链账户请求中的联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书。
其次,向所述目的联盟链的区块链节点发送修改请求,其中,所述修改请求包括要修改的联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个。
再次,在所述目的联盟链的区块链节点完成对所述账户的修改之后,接收来自所述目的联盟链的区块链节点的修改信息,其中,所述修改信息包括修改后的联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个;
最后,在修改联盟链账户名称、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个的情况下,在所述跨区块链账户清单中将所述修改后的联盟链账户名称、修改后的联盟链私钥和/或修改后的联盟链账户认证证书中的一个或多个替代修改前的联盟链账户名称、修改前的联盟链私钥和/或修改前的联盟链账户认证证书中的一个或多个。
在本实施例中,在相应的CBC_联盟链机构用户及账户列表中修改联盟链账户名称、联盟链账户私钥和/或联盟链账户认证证书中的一个或多个。
替代地,当所述调整模式是删除联盟链账户并且所述要调整的信息是联盟链账户地址和/或联盟链账户名称时:
第一,在所述跨区块链账户清单中确定存在与所述全局唯一用户编码相对应的所述联盟链账户名称和/或所述联盟链账户地址、以及所述联盟链账户所属的目的联盟链。
在本实施例中,在与所述全局唯一用户编码相对应CBC_联盟链机构用户及账户列表中查询是否存在调整联盟链账户请求中的所述联盟链账户名称和/或所述联盟链账户地址、以及所述联盟链账户所属的目的联盟链。
第二,向所述目的联盟链的区块链节点发送删除请求,其中,所述删除请求包括要删除的联盟链账户地址和/或联盟链账户名称。
第三,接收来自所述目的联盟链的区块链节点的删除信息。
最后,在所述跨区块链账户清单中删除与所述联盟链账户相关联的信息。在本实施例中,在相应的CBC_联盟链机构用户及账户列表中删除与该账户相关联的映射关系信息。
步骤430:在所述联盟链账户存在账户映射关系的情况下,基于调整后的联盟链账户修改相应的账户映射关系。
在本实施例中,当调整联盟链账户请求中的调整模式是修改账户并且修改了联盟链账户名称时,使得修改后的联盟链账户名称替代所述账户映射列表中修改前的联盟链账户名称并且保持该账户原来的账户映射关系。当调整联盟链账户请求中的调整模式是删除账户时,在所述账户映射列表中删除该账户以及与该账户映射的其他账户信息。
本文所公开的修改或删除跨区块链的用户账户的方法,使得使用者能够通过客户端与跨链账户管理设备通信以实现对其所创建的不同区块链账户进行修改、删除等控制操作,提高了管理账户的方便性、扩展性和实用性。
此外,本文所公开的用于跨区块链建立账户的方法,当任一用户在不同的区块链上已经创建了若干账户并且该用户需要对任一账户进行查询时,该用户通过客户端向跨链账户管理设备发送查询请求,该跨链账户管理设备可以具体进行如下操作:
第一,接收查询请求,其中,所述查询请求至少包括与所述全局唯一用户编码相对应的用户名以及要查询的信息,并且其中,所述要查询的信息包括与所述全局唯一用户编码相对应的账户总数、与所述全局唯一用户编码相对应的公有链账户总数、与所述全局唯一用户编码相对应的联盟链账户总数、与所述全局唯一用户编码相对应的用户信息、账户信息中的一个或多个。
在本实施例中,使用者通过客户端在跨链账户管理设备上用户登录验证后,能够查询账户总数、公有链账户总数、PBC_公有链账户列表、联盟链账户总数、CBC_联盟链机构用户及账户列表等信息;并且使用者可以通过跨链账户管理设备查询用户信息(例如,用户ID编号、用户手机号、用户微信号、用户E-mail、用户昵称、用户图像等);此外,使用者可以通过跨链账户管理设备查询公有链账户信息,包括公有链账户私钥、账户名称、扩展信息等;进一步,使用者可以通过跨链账户管理设备查询联盟链账户名称、联盟链账户所属的联盟链机构用户名称、联盟链机构用户ID号、联盟链账户地址、联盟链账户私钥、联盟链账户认证证书、扩展信息等。
第二,返回与所述查询请求相对应的信息。
另外,本文所公开的用于跨区块链建立账户的方法还可以通过接收使用者发送的调整公有链账户请求和/或调整联盟链账户请求(其可以包括增加账户、修改账户以及删除账户)来实现对该使用者在跨链账户管理设备上创建的用户进行账户新建、修改及删除。
本文所公开的用于跨区块链建立账户的方法,首先,在跨链账户管理设备上实现创建用户,使得在跨链账户管理设备中存在与该用户相对应的全局唯一用户编码以及与该全局唯一用户编码相对应的账户总数、公有链账户总数、PBC_公有链账户列表、联盟链账户总数以及CBC_联盟链机构用户及账户列表;其次,能够通过跨链账户管理设备创建源账户与目的账户之间的账户映射关系,以便于后续的关联操作;最后,使用者能够通过跨链账户管理设备与目的区块链的区块链节点之间的通信实现对其所创建的不同区块链账户进行新建、修改、删除及查询。
图5示出了本文所公开的用于跨区块链建立账户的系统的一种实现方式,在图5中包括公有链510、联盟链520、第一跨链账户管理设备530、第二跨链账户管理设备540、第一客户端550以及第二客户端560,其中,第一跨链账户管理设备530、第二跨链账户管理设备540均能够与公有链510、联盟链520相互通信,并且第一跨链账户管理设备530与第二跨链账户管理设备540实时互相备份彼此的数据,以便于即时两者中的任一个发生故障,另外一个仍然可以正常工作以保障能够正常处理用户的账户信息;另外,第一客户端550和第二客户端560都可以与第一跨链账户管理设备530、第二跨链账户管理设备540进行通信(未全部在图5中示出)。
本文所公开的用于跨区块链建立账户的系统包括:一个或多个客户端、多个跨链账户管理设备。使用者通过客户端与跨链账户管理设备进行通信,进而与不同的区块链节点进行交互。
所述多个跨链账户管理设备保持时钟同步并且分别与所述一个或多个客户端进行通信,并且所述多个跨链账户管理设备之间进行通信以保持所有跨链账户管理设备的数据同步,每一个跨链账户管理设备分别与一个或多个公有链的区块链节点以及一个或多个联盟链的区块链节点进行通信。每一个跨链账户管理设备进一步包括:处理器、存储器,存储器用于存储指令,当所述指令执行时使得所述处理器执行上述实施例1-3的方法。
本文所公开的用于跨区块链建立账户的设备,首先,在跨链账户管理设备上实现创建用户,使得在跨链账户管理设备中存储与该用户相对应的全局唯一用户编码以及账户信息;其次,能够通过跨链账户管理设备创建源账户与目的账户之间的账户映射关系,以便于后续的账户之间的关联操作;最后,使用者能够通过跨链账户管理设备与目的区块链的区块链节点之间的通信实现对其所创建的不同区块链账户进行新建、修改、删除及查询。
替代地,本文所公开的方法能够通过计算机程序产品来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。