本发明属于区块链,具体涉及一种基于联盟链的智能合约注册与校验方法。
背景技术:
1、在基于联盟链的智能合约的合约注册与应用的方法过程中,尚未形成系统性的解决方案,当前,存在智能合约在链上无法被调用者在调用前准确知道其状态,同时在调用前无法直接获取智能合约的相关文档信息等问题。其主要受制于客观因素方面:客观因素为链上发布智能合约的主体较多,没有一个有力的组织来进行注册智能合约的编写,并提供服务注册的功能。在联盟链中既有强有力的组织,也有各个共识节点互相之间通过智能合约进行查询验证等需求。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于区块链的智能合约注册中心的方法,采用区块链、智能合约、注册中心等多项核心技术,用户分为三种,第一种是用户将可用的智能合约注册进入注册智能合约中,其中注册的过程会按照注册智能合约所提供的格式进行注册,主要需要提供需注册的智能合约中方法的入参、出参、名字、详细介绍等。第二种用户是调用智能合约的用户,主要是通过可视化的界面来了解该注册智能合约中具体有哪些智能合约,包括第一种用户上传的大致介绍等。如此第二种用户即可在可视化界面中查询需要调用的接口,不需频繁对接,且因为注册智能合约的存在可以进行服务的注册功能。
2、为达到上述目的,本发明提供如下技术方案:
3、一种基于联盟链的智能合约注册与校验方法,包括以下步骤:
4、s1:用户生成各自的公私钥对,将公钥公开;
5、s2:按形式化要求编写需注册的合约,作为需要传输的内容,加密各自需要传输的内容或者接口调用信息;
6、s3:权限控制部分通过私钥解密信息,确认权限是否通过验证;
7、s4:注册智能合约用户通过验证后将需要注册的智能合约注册成功;
8、s5:调用人员通过权限控制后调用注册中心合约获取需要调用合约的地址和方法参数;
9、s6:管理者通过权限控制后管理注册中心合约,进行相应的管理工作。
10、进一步,数据源方调用流程如下:
11、第一步:数据源方编写自己的调用后台,进行数据的组装和处理,通过可视化界面查看自己需要调用的智能合约的名称和其中的方法所对应的参数和命名,将自己需要上链的数据通过处理后准备进行下步调用;
12、第二步:通过私钥加密需要上链的合约信息和身份信息,通过权限校验;
13、第三步:调用注册智能合约,如果需要调用的合约已经在注册且状态为可用,即返回相应的智能合约地址;
14、第四步:调用方按照注册智能合约返回的路由信息调用相应的智能合约中的方法进行数据的上链和存储,数据上链后同步至其他节点中。
15、进一步,注册智能合约流程包括以下步骤:
16、第一步:编写智能合约方按照注册智能合约的要求提供智能合约中方法的入参、出参、名字、详细介绍;
17、第二步:通过私钥加密需要上链的合约信息和身份信息,通过权限校验;
18、第三步:对注册的合约信息进行形式化的校验,同时在可视化界面中展示信息;
19、第四步:注册智能合约判断此次注册的合约是否具有同名且合约中具有的方法参数一致,如果是则更新注册合约中该合约的注册信息,如果不是则新增该合约的相关信息和状态,以备调用;
20、第五步:在联盟链中的可视化界面中显示合约的具体信息,包括智能合约中方法的入参、出参、名字、详细介绍,同时显示该合约的状态。
21、进一步,步骤s2中,合约形式化内容包括合约命名、合约下各个方法的命名、方法对应参数信息、方法的用途;接口包括新增合约,删除合约,在新增时调用新增接口。
22、进一步,步骤s3中验证方法如下:先验证e中形式化格式的要求,通过格式要求后,通过形式验证领域的自动定理证明求解器来验证程序是否符合某种规范。
23、进一步,步骤s4中智能合约注册成功后,将智能合约部署上链,同步各个区块节点;注册中心合约通过回调的方式,确定合约具体信息;合约信息展示在可视化界面中,包括合约的名称和合约中的方法对应的参数和命名信息,同时提供合约状态。
24、进一步,注册智能合约通过外部的定时器定时触发,主动监测注册中的合约状态;注册智能合约定时触发,当有智能合约的使用状态为可用时,会使公共变量加1。
25、进一步,步骤s5中,具体包括:
26、s51:调用方生成公私钥对,将公钥公开;
27、s52:调用方在可视化界面查看合约的详细信息,以编辑调用合约方法的名称和内容;
28、s53:通过私钥对需要调取的接口名称,参数,内容进行加密;
29、s54:向注册智能合约中查询需要调用的合约信息,注册智能合约如果监测出该合约无法调用则不返回合约信息,否则返回;
30、s55:注册智能合约将调用方需要的合约信息按要求返回;
31、s56:调用方将合约地址、合约调用参数通过私钥加密后通过权限校验后调用智能合约;
32、s57:数据通过智能合约上链,结果同步至其他区块链节点中,数据上链完成。
33、进一步,步骤s6中,管理者首先生成公私钥对,将公钥公开,所述管理者的公钥为:
34、ku=(e,n)
35、管理者的私钥为:
36、kr=(d,n)
37、其中,n表示模值由两素数p和q的乘积(p和q必须保密),e表示公钥指数由(p-1)*(q-1)互质的一个数得出,d表示私钥指数需满足(d*e)mod((p-1)(q-1))=1;
38、管理者通过私钥对需要调取的接口名称,参数,内容进行加密:
39、c=me mod n
40、其中c为秘文,m为明文;
41、管理者通过权限校验后进行注册智能合约的管理:
42、m=cd mod n。
43、本发明的有益效果在于:
44、1、将已注册的智能合约显示在可视化界面上可有效降低沟通成本,在提供智能合约方更新合约后可通过该可视化界面更新信息,调用方使用规范化的文档形式调用更简单和准确。
45、2、提供了注册合约返回调用机制,在调用方调用后首先判断需要调用的合约的状态,再通过验证后返回调用合约的基本信息,避免的因合约不存在或状态不对无法调用的可能性,让整个系统更加健壮。
46、3、在联盟链的基础上提供了注册智能合约,并具备了服务注册的功能,使得在联盟中的多个主体联系更加紧密,沟通更加方便,传输更加有效。
47、本发明的其他优点、目标和特征将在随后的说明书中进行阐述,并且在某种程度上对本领域技术人员而言是显而易见的,或者本领域技术人员可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
1.一种基于联盟链的智能合约注册与校验方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:数据源方调用流程如下:
3.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:注册智能合约流程包括以下步骤:
4.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:步骤s2中,合约形式化内容包括合约命名、合约下各个方法的命名、方法对应参数信息、方法的用途;接口包括新增合约,删除合约,在新增时调用新增接口。
5.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:步骤s3中验证方法如下:先验证e中形式化格式的要求,通过格式要求后,通过形式验证领域的自动定理证明求解器来验证程序是否符合某种规范。
6.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:步骤s4中智能合约注册成功后,将智能合约部署上链,同步各个区块节点;注册中心合约通过回调的方式,确定合约具体信息;合约信息展示在可视化界面中,包括合约的名称和合约中的方法对应的参数和命名信息,同时提供合约状态。
7.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:注册智能合约通过外部的定时器定时触发,主动监测注册中的合约状态;注册智能合约定时触发,当有智能合约的使用状态为可用时,会使公共变量加1。
8.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:步骤s5中,具体包括:
9.根据权利要求1所述的基于联盟链的智能合约注册与校验方法,其特征在于:步骤s6中,管理者首先生成公私钥对,将公钥公开,所述管理者的公钥为: