在区块链中部署和调用合约的方法和装置.pdf
《在区块链中部署和调用合约的方法和装置.pdf》由会员分享,可在线阅读,更多相关《在区块链中部署和调用合约的方法和装置.pdf(19页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202011176391.4 (22)申请日 2020.10.28 (71)申请人 支付宝 (杭州) 信息技术有限公司 地址 310000 浙江省杭州市西湖区西溪路 556号8层B段801-11 (72)发明人 周晨辉闫莺 (74)专利代理机构 北京亿腾知识产权代理事务 所(普通合伙) 11309 代理人 张静娟周良玉 (51)Int.Cl. G06Q 40/04(2012.01) G06F 21/64(2013.01) (54)发明名称 在区块链中部署和调用合约的方法和装置 (。
2、57)摘要 本说明书实施例提供了一种在区块链系统 中部署合约的方法和装置, 所述区块链系统中包 括N个相互独立的区块链, 所述方法包括: 接收用 于部署第一合约的第一请求; 基于预定规则确定 第一合约与所述N个区块链中的第一区块链相对 应; 向所述第一区块链发送第一交易, 以将所述 第一合约部署到所述第一区块链中。 权利要求书3页 说明书12页 附图3页 CN 112017052 A 2020.12.01 CN 112017052 A 1.一种在区块链系统中部署合约的方法, 所述区块链系统中包括N个相互独立的区块 链, 所述方法包括: 接收用于部署第一合约的第一请求; 基于预定规则确定第一合约。
3、与所述N个区块链中的第一区块链相对应; 向所述第一区块链发送第一交易, 以将所述第一合约部署到所述第一区块链中。 2.根据权利要求1所述的方法, 还包括, 在基于预定规则确定第一合约与所述N个区块 链中的第一区块链相对应之后, 记录所述第一合约与所述第一区块链的对应关系。 3.根据权利要求2所述的方法, 其中, 记录所述第一合约与所述第一区块链的对应关系 包括, 记录所述第一合约的唯一标识与所述第一区块链的对应关系。 4.根据权利要求3所述的方法, 其中, 所述第一合约的唯一标识为发送所述第一请求的 账户和所述第一合约的名称的组合。 5.根据权利要求1所述的方法, 其中, 所述方法由区块链平台。
4、执行, 所述区块链平台与 所述N个区块链分别连接, 其中, 接收用于部署第一合约的第一请求包括, 接收用于部署第 一合约的第一交易。 6.根据权利要求1-5任一项所述的方法, 还包括: 接收用于部署第二合约的第二请求, 所述第二请求中包括所述第二合约与所述第一合 约的关联信息; 基于所述第一合约与所述第一区块链的对应关系, 确定第二合约与所述第一区块链相 对应; 向所述第一区块链发送第二交易, 以将所述第二合约部署到所述第一区块链中。 7.根据权利要求1所述的方法, 还包括, 在基于预定规则确定第一合约与所述N个区块 链中的第一区块链相对应之后, 获取所述第一合约的地址, 所述第一合约的地址的。
5、预定位 用于指示所述第一区块链。 8.根据权利要求1所述的方法, 其中, 所述第一请求由第一账户发送, 所述基于预定规 则确定第一合约与所述N个区块链中的第一区块链相对应包括, 基于第一预定规则确定第 一合约与所述N个区块链中的M个区块链相对应, 基于第二预定规则确定所述第一账户与所 述M个区块链中的第一区块链相对应。 9.根据权利要求8所述的方法, 还包括, 在基于第二预定规则确定所述第一账户与所述 M个区块链中的第一区块链相对应之后, 记录所述第一合约与所述M个区块链的第一对应关 系, 以及所述第一账户与所述第一区块链的第二对应关系, 其中, 所述第二对应关系与所述 第一对应关系相关联。 。
6、10.一种在区块链系统中调用合约的方法, 所述区块链系统中包括N个相互独立的区块 链, 所述方法包括: 接收用于调用第一合约的第三请求; 确定第一合约与所述N个区块链中的第一区块链相对应; 向所述第一区块链发送与所述第三请求对应的第三交易, 所述第三交易中调用所述第 一合约。 11.根据权利要求10所述的方法, 其中, 确定第一合约与所述N个区块链中的第一区块 链相对应包括, 通过读取预先记录的第一合约与所述N个区块链中的第一区块链的对应关 权利要求书 1/3 页 2 CN 112017052 A 2 系, 确定第一合约与所述N个区块链中的第一区块链相对应。 12.根据权利要求10所述的方法,。
7、 其中, 所述第三请求中包括所述第一合约的地址, 其 中, 确定第一合约与所述N个区块链中的第一区块链相对应包括, 基于所述第一合约的地址 中的预定位确定第一合约与所述N个区块链中的第一区块链相对应。 13.根据权利要求10所述的方法, 其中, 所述第一合约用于在所述第一区块链中进行存 证, 所述第三交易使得在执行之后在所述第一区块链中存入第一数据, 所述方法还包括: 在 向所述第一区块链发送与所述第三请求对应的第三交易之后, 从所述第一区块链接收所述 第一数据的标识。 14.根据权利要求13所述的方法, 其中, 所述第一数据的标识为所述第三交易的标识。 15.根据权利要求10-14任一项所述。
8、的方法, 其中, 接收用于调用第一合约的第三请求 包括, 接收用于调用第一合约的第三交易。 16.一种在区块链系统中部署合约的装置, 所述区块链系统中包括N个相互独立的区块 链, 所述装置包括: 第一接收单元, 配置为, 接收用于部署第一合约的第一请求; 第一确定单元, 配置为, 基于预定规则确定第一合约与所述N个区块链中的第一区块链 相对应; 第一发送单元, 配置为, 向所述第一区块链发送第一交易, 以将所述第一合约部署到所 述第一区块链中。 17.根据权利要求16所述的装置, 还包括, 第一记录单元, 配置为, 在基于预定规则确定 第一合约与所述N个区块链中的第一区块链相对应之后, 记录所。
9、述第一合约与所述第一区 块链的对应关系。 18.根据权利要求17所述的装置, 其中, 所述第一记录单元还配置为, 记录所述第一合 约的唯一标识与所述第一区块链的对应关系。 19.根据权利要求18所述的装置, 其中, 所述第一合约的唯一标识为发送所述第一请求 的账户和所述第一合约的名称的组合。 20.根据权利要求16所述的装置, 其中, 所述装置部署于区块链平台, 所述区块链平台 与所述N个区块链分别连接, 其中, 所述第一接收单元还配置为, 接收用于部署第一合约的 第一交易。 21.根据权利要求16-20任一项所述的装置, 还包括: 第二接收单元, 配置为, 接收用于部署第二合约的第二请求, 。
10、所述第二请求中包括所述 第二合约与所述第一合约的关联信息; 第二确定单元, 配置为, 基于所述第一合约与所述第一区块链的对应关系, 确定第二合 约与所述第一区块链相对应; 第二发送单元, 配置为, 向所述第一区块链发送第二交易, 以将所述第二合约部署到所 述第一区块链中。 22.根据权利要求16所述的装置, 还包括, 获取单元, 配置为, 在基于预定规则确定第一 合约与所述N个区块链中的第一区块链相对应之后, 获取所述第一合约的地址, 所述第一合 约的地址的预定位用于指示所述第一区块链。 23.根据权利要求16所述的装置, 其中, 所述第一请求由第一账户发送, 所述第一确定 权利要求书 2/3。
11、 页 3 CN 112017052 A 3 单元还配置为, 基于第一预定规则确定第一合约与所述N个区块链中的M个区块链相对应, 基于第二预定规则确定所述第一账户与所述M个区块链中的第一区块链相对应。 24.根据权利要求23所述的装置, 还包括, 第二记录单元, 配置为, 在基于第二预定规则 确定所述第一账户与所述M个区块链中的第一区块链相对应之后, 记录所述第一合约与所 述M个区块链的第一对应关系, 以及所述第一账户与所述第一区块链的第二对应关系, 其 中, 所述第二对应关系与所述第一对应关系相关联。 25.一种在区块链系统中调用合约的装置, 所述区块链系统中包括N个相互独立的区块 链, 所述。
12、装置包括: 第一接收单元, 配置为, 接收用于调用第一合约的第三请求; 确定单元, 配置为, 确定第一合约与所述N个区块链中的第一区块链相对应; 发送单元, 配置为, 向所述第一区块链发送与所述第三请求对应的第三交易, 所述第三 交易中调用所述第一合约。 26.根据权利要求25所述的装置, 其中, 所述确定单元还配置为, 通过读取预先记录的 第一合约与所述N个区块链中的第一区块链的对应关系, 确定第一合约与所述N个区块链中 的第一区块链相对应。 27.根据权利要求25所述的装置, 其中, 所述第三请求中包括所述第一合约的地址, 其 中, 所述确定单元还配置为, 基于所述第一合约的地址中的预定位。
13、确定第一合约与所述N个 区块链中的第一区块链相对应。 28.根据权利要求25所述的装置, 其中, 所述第一合约用于在所述第一区块链中进行存 证, 所述第三交易使得在执行之后在所述第一区块链中存入第一数据, 所述装置还包括: 第 二接收单元, 配置为, 在向所述第一区块链发送与所述第三请求对应的第三交易之后, 从所 述第一区块链接收所述第一数据的标识。 29.根据权利要求28所述的装置, 其中, 所述第一数据的标识为所述第三交易的标识。 30.根据权利要求25-29任一项所述的装置, 其中, 所述第一接收单元还配置为, 接收用 于调用第一合约的第三交易。 31.一种计算机可读存储介质, 其上存储。
14、有计算机程序, 当所述计算机程序在计算机中 执行时, 令计算机执行权利要求1-15中任一项的所述的方法。 32.一种计算设备, 包括存储器和处理器, 所述存储器中存储有可执行代码, 所述处理 器执行所述可执行代码时, 实现权利要求1-15中任一项所述的方法。 权利要求书 3/3 页 4 CN 112017052 A 4 在区块链中部署和调用合约的方法和装置 技术领域 0001 本说明书实施例涉及区块链技术领域, 更具体地, 涉及一种在区块链中部署合约 的方法和装置、 以及一种在区块链中调用合约的方法和装置。 背景技术 0002 区块链技术也被称之为分布式账本技术, 是一种去中心化的分布式数据库。
15、技术, 其特点是去中心化、 公开透明、 不可篡改、 可信任。 区块链的每笔交易, 都会广播到全网的区 块链节点, 每个全节点都有全量的、 一致的数据。 在联盟链中, 通常, 用户终端通过区块链平 台使用区块链进行业务处理, 例如存证、 转账等处理。 然而, 在单条链的场景下, 长时间的运 行积累大量的存储数据, 并且账户规模越来越大, 使得该单条链的处理能力下降。 另外, 在 并发交易较多的时段 (例如双十一时段) , 单条链的访问压力增大, 使得单条链的处理不能 满足业务需求。 发明内容 0003 本说明书实施例旨在提供一种更有效的在区块链中部署和调用合约的方案, 以解 决现有技术中的不足。。
16、 0004 为实现上述目的, 本说明书一个方面提供一种在区块链系统中部署合约的方法, 所述区块链系统中包括N个相互独立的区块链, 所述方法包括: 接收用于部署第一合约的第一请求; 基于预定规则确定第一合约与所述N个区块链中的第一区块链相对应; 向所述第一区块链发送第一交易, 以将所述第一合约部署到所述第一区块链中。 0005 在一种实施方式中, 所述方法还包括, 在基于预定规则确定第一合约与所述N个区 块链中的第一区块链相对应之后, 记录所述第一合约与所述第一区块链的对应关系。 0006 在一种实施方式中, 记录所述第一合约与所述第一区块链的对应关系包括, 记录 所述第一合约的唯一标识与所述第。
17、一区块链的对应关系。 0007 在一种实施方式中, 所述第一合约的唯一标识为发送所述第一请求的账户和所述 第一合约的名称的组合。 0008 在一种实施方式中, 所述方法由区块链平台执行, 所述区块链平台与所述N个区块 链分别连接, 其中, 接收用于部署第一合约的第一请求包括, 接收用于部署第一合约的第一 交易。 0009 在一种实施方式中, 所述方法还包括: 接收用于部署第二合约的第二请求, 所述第二请求中包括所述第二合约与所述第一合 约的关联信息; 基于所述第一合约与所述第一区块链的对应关系, 确定第二合约与所述第一区块链相 对应; 向所述第一区块链发送第二交易, 以将所述第二合约部署到所述。
18、第一区块链中。 说明书 1/12 页 5 CN 112017052 A 5 0010 在一种实施方式中, 所述方法还包括, 在基于预定规则确定第一合约与所述N个区 块链中的第一区块链相对应之后, 获取所述第一合约的地址, 所述第一合约的地址的预定 位用于指示所述第一区块链。 0011 在一种实施方式中, 所述第一请求由第一账户发送, 所述基于预定规则确定第一 合约与所述N个区块链中的第一区块链相对应包括, 基于第一预定规则确定第一合约与所 述N个区块链中的M个区块链相对应, 基于第二预定规则确定所述第一账户与所述M个区块 链中的第一区块链相对应。 0012 在一种实施方式中, 所述方法还包括,。
19、 在基于第二预定规则确定所述第一账户与 所述M个区块链中的第一区块链相对应之后, 记录所述第一合约与所述M个区块链的第一对 应关系, 以及所述第一账户与所述第一区块链的第二对应关系, 其中, 所述第二对应关系与 所述第一对应关系相关联。 0013 本说明书另一方面提供一种在区块链系统中调用合约的方法, 所述区块链系统中 包括N个相互独立的区块链, 所述方法包括: 接收用于调用第一合约的第三请求; 确定第一合约与所述N个区块链中的第一区块链相对应; 向所述第一区块链发送与所述第三请求对应的第三交易, 所述第三交易中调用所述第 一合约。 0014 在一种实施方式中, 确定第一合约与所述N个区块链中。
20、的第一区块链相对应包括, 通过读取预先记录的第一合约与所述N个区块链中的第一区块链的对应关系, 确定第一合 约与所述N个区块链中的第一区块链相对应。 0015 在一种实施方式中, 所述第三请求中包括所述第一合约的地址, 其中, 确定第一合 约与所述N个区块链中的第一区块链相对应包括, 基于所述第一合约的地址中的预定位确 定第一合约与所述N个区块链中的第一区块链相对应。 0016 在一种实施方式中, 所述第一合约用于在所述第一区块链中进行存证, 所述第三 交易使得在执行之后在所述第一区块链中存入第一数据, 所述方法还包括: 在向所述第一 区块链发送与所述第三请求对应的第三交易之后, 从所述第一区。
21、块链接收所述第一数据的 标识。 0017 在一种实施方式中, 所述第一数据的标识为所述第三交易的标识。 0018 在一种实施方式中, 接收用于调用第一合约的第三请求包括, 接收用于调用第一 合约的第三交易。 0019 本说明书另一方面提供一种在区块链系统中部署合约的装置, 所述区块链系统中 包括N个相互独立的区块链, 所述装置包括: 第一接收单元, 配置为, 接收用于部署第一合约的第一请求; 第一确定单元, 配置为, 基于预定规则确定第一合约与所述N个区块链中的第一区块链 相对应; 第一发送单元, 配置为, 向所述第一区块链发送第一交易, 以将所述第一合约部署到所 述第一区块链中。 0020 。
22、在一种实施方式中, 所述装置还包括, 记录单元, 配置为, 在基于预定规则确定第 一合约与所述N个区块链中的第一区块链相对应之后, 记录所述第一合约与所述第一区块 说明书 2/12 页 6 CN 112017052 A 6 链的对应关系。 0021 在一种实施方式中, 所述记录单元还配置为, 记录所述第一合约的唯一标识与所 述第一区块链的对应关系。 0022 在一种实施方式中, 所述第一合约的唯一标识为发送所述第一请求的账户和所述 第一合约的名称的组合。 0023 在一种实施方式中, 所述装置部署于区块链平台, 所述区块链平台与所述N个区块 链分别连接, 其中, 所述第一接收单元还配置为, 接。
23、收用于部署第一合约的第一交易。 0024 在一种实施方式中, 所述装置还包括: 第二接收单元, 配置为, 接收用于部署第二合约的第二请求, 所述第二请求中包括所述 第二合约与所述第一合约的关联信息; 第二确定单元, 配置为, 基于所述第一合约与所述第一区块链的对应关系, 确定第二合 约与所述第一区块链相对应; 第二发送单元, 配置为, 向所述第一区块链发送第二交易, 以将所述第二合约部署到所 述第一区块链中。 0025 在一种实施方式中, 所述装置还包括, 获取单元, 配置为, 在基于预定规则确定第 一合约与所述N个区块链中的第一区块链相对应之后, 获取所述第一合约的地址, 所述第一 合约的地。
24、址的预定位用于指示所述第一区块链。 0026 本说明书另一方面提供一种在区块链系统中调用合约的装置, 所述区块链系统中 包括N个相互独立的区块链, 所述装置包括: 第一接收单元, 配置为, 接收用于调用第一合约的第三请求; 确定单元, 配置为, 确定第一合约与所述N个区块链中的第一区块链相对应; 发送单元, 配置为, 向所述第一区块链发送与所述第三请求对应的第三交易, 所述第三 交易中调用所述第一合约。 0027 在一种实施方式中, 所述确定单元还配置为, 通过读取预先记录的第一合约与所 述N个区块链中的第一区块链的对应关系, 确定第一合约与所述N个区块链中的第一区块链 相对应。 0028 在。
25、一种实施方式中, 所述第三请求中包括所述第一合约的地址, 其中, 所述确定单 元还配置为, 基于所述第一合约的地址中的预定位确定第一合约与所述N个区块链中的第 一区块链相对应。 0029 在一种实施方式中, 所述第一合约用于在所述第一区块链中进行存证, 所述第三 交易使得在执行之后在所述第一区块链中存入第一数据, 所述装置还包括: 第二接收单元, 配置为, 在向所述第一区块链发送与所述第三请求对应的第三交易之后, 从所述第一区块 链接收所述第一数据的标识。 0030 在一种实施方式中, 所述第一数据的标识为所述第三交易的标识。 0031 在一种实施方式中, 所述第一接收单元还配置为, 接收用于。
26、调用第一合约的第三 交易。 0032 本说明书另一方面提供一种计算机可读存储介质, 其上存储有计算机程序, 当所 述计算机程序在计算机中执行时, 令计算机执行上述任一项方法。 0033 本说明书另一方面提供一种计算设备, 包括存储器和处理器, 所述存储器中存储 说明书 3/12 页 7 CN 112017052 A 7 有可执行代码, 所述处理器执行所述可执行代码时, 实现上述任一项方法。 0034 通过根据本说明书实施例的部署和调用合约的方案, 将合约平均部署到多个区块 链中, 从而可通过多个区块链为区块链系统提供平行扩展的容量和处理能力, 相比于单条 区块链, 减小了读写压力, 提高了区块。
27、链系统的处理效率, 尤其在流量突增时期能够快速扩 展, 平行分散压力。 附图说明 0035 通过结合附图描述本说明书实施例, 可以使得本说明书实施例更加清楚: 图1示出根据本说明书实施例的区块链系统的示意图; 图2示出根据本说明书实施例的一种在区块链系统中部署合约的方法流程图; 图3示出交易1 (Tx1) 的内容示意图; 图4示出根据本说明书实施例的一种在区块链中调用合约的方法流程图; 图5示出交易2 (Tx2) 的内容示意图; 图6示出根据本说明书实施例的一种在区块链系统中部署合约的装置600; 图7示出根据本说明书实施例的一种在区块链系统中调用合约的装置700。 具体实施方式 0036 下。
28、面将结合附图描述本说明书实施例。 0037 图1示出根据本说明书实施例的区块链系统的示意图。 如图1所示, 该区块链系统 中包括区块链平台11、 多个用户终端 (图中示意示出用户终端12、 13和14) , 所述区块链平台 即区块链平台服务器。 用户终端与区块链平台11连接, 并通过区块链平台11对区块链进行 操作。 区块链平台11与多个相互独立的区块链连接, 图1中示意示出区块链1、 区块链2和区 块链3。 区块链1、 区块链2和区块链3可以称为一个区块链系统的平行链, 其相互独立的运 行, 从而分别进行对用户请求的处理, 并分别存储交易数据, 从而提高系统的处理能力和数 据存储容量。 00。
29、38 所述包括区块链1区块链3的区块链系统例如为用于存证的系统 (例如版权维护 系统) , 用户A可通过例如用户终端12向区块链平台11发送请求, 以向区块链系统中发送交 易。 区块链平台11接收到该请求之后, 将相应的交易发送给区块链1区块链3中的一个区 块链, 以将该交易存储到相应的区块链中。 并且, 区块链平台11可以向用户终端12返回该交 易的标识, 这里, 交易的标识可以为该交易的哈希值。 后续, 当用户A希望查询该交易时, 用 户A可向区块链平台11提供交易的标识以进行对该交易的查询。 0039 在所述区块链系统例如仅用于处理例如版权维护的单一业务的情况中, 所述区块 链系统中的交。
30、易的形式也比较单一, 例如, 所述交易可能包括部署合约的交易、 调用合约的 交易等。 在该情况中, 区块链平台11在接收到来自用户终端的交易之后, 可通过基于交易中 包括的合约的标识来将交易分别分配到区块链1、 区块链2和区块链3进行处理, 从而起到均 衡负载的效果。 0040 可以理解, 图1所示的区块链系统仅仅是示意性的, 根据本说明书实施例的区块链 系统不限于此。 例如, 各个用户终端可通过本地的客户端将交易分配到一个区块链并与该 区块链连接, 从而不需要通过区块链平台11进行分配。 下面将详细描述上述处理过程。 说明书 4/12 页 8 CN 112017052 A 8 0041 图2。
31、示出根据本说明书实施例的一种在区块链系统中部署合约的方法流程图, 所 述方法包括: 步骤S202, 接收用于部署合约1的请求; 步骤S204, 基于预定规则确定合约1与区块链1相对应; 步骤S206, 向区块链1发送交易1, 以将合约1部署到所述区块链1中。 0042 在一种实施方式中, 图2所示方法由图1中的区块链平台11执行。 0043 首先, 在步骤S202, 区块链平台11例如从用户终端12接收用于部署合约1的请求。 0044 各个用户希望存证的数据可能是不同的数据, 需要对存证的数据进行的处理也可 能不同, 例如, 用户A可能希望对存证的数据进行资格认证处理, 用户B可能希望对存证的。
32、数 据进行加密处理。 因此, 不同的用户可通过在区块链系统中部署用于进行相应处理的合约, 从而可通过调用该合约进行对其数据的存证。 0045 例如, 用户A可以使用其账户A通过用户终端12向区块链平台11发送用于部署合约 1的请求。 在一种实施方式中, 所述账户A可以为用户A在区块链平台11中注册的唯一账户。 也就是说, 该账户A由区块链平台11进行管理, 并不是某个区块链中的账户。 在该实施方式 中, 该请求中例如包括合约1的名称 “合约1” 和合约1的内容, 其中合约1的内容为用于实施 特定处理 (例如资格认证处理) 的程序。 0046 在另一种实施方式中, 所述账户A也可以为用户A申请的。
33、区块链账户, 从而所述用 于部署合约1的请求可以为交易1。 图3示出交易1 (Tx1) 的内容示意图。 如图3所示, 该交易1 的发送账户 (见图3中的 “From” 字段) 为账户A, 其中 “0 x507a” 为账户A的账户地址, 该交易 1的接收账户字段 (即图3中的 “To” 字段) 为空, 表示该交易1为用于部署合约的交易, 该交易 1的数据字段 (即图3中的 “Data” 字段) 中包括合约1的内容, 即用于实施特定处理的程序。 另 外, 如图3所示, 用户终端12还将通过账户A对交易1的数字签名一起发送给区块链平台11。 可以理解, 图3所示的交易1的形式仅仅是示意性地, 本说明。
34、书实施例不限于此, 例如, 在交 易1的另一种形式中, 可以在交易1中通过特定字段指示该交易为部署合约1的交易, 并且 “To” 字段中可以填充合约1的名称 (即 “合约1” ) , 从而用于部署合约1。 0047 在一种实施方式中, 在所述账户A为区块链账户的情况中, 各个区块链中都可以预 先获取账户A的公钥, 从而各个区块链都可以接收由账户A发送的交易, 并且, 各个区块链可 在首次接收到由账户A发送的交易之后在本地记录账户A的状态信息。 0048 在步骤S204, 区块链平台11基于预定规则确定合约1与区块链1相对应。 0049 可以设定多种预定分配规则将合约1分配给区块链1区块链3中的。
35、一个区块链, 只要该预定分配规则使得将合约基本均匀地分配到区块链1区块链3即可, 从而使得区块 链1区块链3负载均衡。 0050 在一种实施方式中, 区块链平台11可对需要部署的合约进行编号, 并根据该编号 除以3的余数来分配, 例如, 余数为0时, 分配给区块链1, 余数为1时分配给区块链2, 余数为2 时分配给区块链3。 0051 在另一种实施方式中, 区块链平台11可对合约1的标识进行哈希运算, 该哈希运算 例如为某种随机运算, 并且其运算结果为1、 2、 3中的任一值, 从而可根据该哈希运算的结果 将合约1分配给一个区块链。 这里, 合约1的标识可以为合约1的名称、 账户A+合约1、 。
36、合约1的 合约地址等标识。 说明书 5/12 页 9 CN 112017052 A 9 0052 步骤S206, 区块链平台11向区块链1发送交易1, 以将合约1部署到所述区块链1中。 0053 在一种实施方式中, 用户A并没有以交易的形式发送上述部署合约1的请求, 区块 链平台11在接收到该请求之后, 生成交易1, 该交易1具有与图3所示交易1基本相同的形式, 所不同的是, 发送账户 (即 “From” 字段) 不是 “账户A” , 而是区块链平台11拥有的区块链1中 的账户, 另外该交易1的数字签名为通过区块链平台11的账户的签名, 而不是通过账户A进 行的签名。 之后, 区块链平台11将。
37、该生成的交易1发送给区块链1中的任一节点。 区块链1中 的节点在接收到交易1之后, 将交易1广播到区块链1中。 区块链1中的节点在对交易1进行共 识之后执行交易1, 按照预定规则生成合约1的合约地址, 在账户数据库中存储与合约1的合 约地址对应的合约1的合约内容, 从而在区块链1中部署合约1。 0054 在另一种实施方式中, 如上文所述, 用户A通过用户终端12向区块链平台11发送如 图3所示的交易1, 从而, 区块链平台11可直接将该交易1发送给区块链1中的任一节点, 从而 使得区块链1中的各节点中部署合约1。 0055 区块链1中的节点在如上文所述执行交易1之后在本地存储交易1, 区块链1。
38、中的节 点可计算交易1的哈希值, 并将该哈希值与交易1的存储位置关联存储, 从而可基于交易1的 哈希值找到交易1。 在通过上述过程在区块链1中部署合约1之后, 区块链平台11可从区块链 1中的任一节点获取交易1的哈希值和合约1的合约地址, 并将该哈希值作为交易1的标识返 回给用户终端12, 或者, 还可以将合约1的合约地址作为合约1的标识返回给用户终端12。 0056 在一种实施方式中, 在基于预定规则确定第一合约与所述N个区块链中的第一区 块链相对应之后, 区块链平台11记录合约1与区块链1的对应关系。 0057 为了记录合约1与区块链1的对应关系, 区块链平台11需要记录合约1的唯一标识 。
39、与区块链1的唯一标识的对应关系, 并且该合约1的唯一标识是用户可获知的, 以用于后续 将由用户发送的与合约1相关的全部交易都分配给区块链1。 0058 在一种实施方式中, 用户A仅仅在上述部署合约1的请求中包括合约1的名称, 即 “合约1” , 该合约1的名称有可能与其它用户部署的其它合约的名称相同, 为了唯一标识该 合约1, 区块链平台11可以 (账户A, 合约1) 来唯一表示合约1, 其中,“账户A” 为用于请求部署 合约1的账户,“合约1” 为合约1的名称。 区块链平台11中可记录如表1所示的合约与区块链 的映射关系表。 0059 表1 合约区块链 账户A, 合约1区块链1 账户B, 合。
40、约2区块链2 账户C, 合约3区块链3 如表1所示, 区块链平台11可在本地存储的表1中记录合约1与区块链1的对应关系, 以 用于后续的对合约1的调用以及对包括合约1的交易的查询等功能。 0060 在另一种实施方式中, 如上文所述, 区块链1可在部署合约1之后, 将合约1的地址 (例如0 x487b) 返回给区块链平台11, 从而, 区块链平台11可记录如表2所示的合约与区块 链的映射关系表。 0061 表2 说明书 6/12 页 10 CN 112017052 A 10 合约区块链 0 x487b区块链1 0 x768a区块链2 0 x3876区块链3 如表2所示, 区块链平台11可在本地存。
41、储的表2中记录合约1的合约地址与区块链1的对 应关系, 以用于后续的对合约1的调用以及对包括合约1的交易的查询等功能。 0062 在另一种方式中, 在基于预定规则确定第一合约与所述N个区块链中的第一区块 链相对应之后, 区块链平台11可从区块链1中任一节点获取合约1的合约地址。 在该说明书 实施例中, 区块链1中的节点在根据现有的获取合约地址的方式获取与合约1对应的一串字 符串之后, 可将该一串字符串的预定位置 (例如首位置或末位置等) 添加预定位数, 从而生 成合约1的合约地址, 所述预定位数用于指示区块链1, 或者可修改该串字符串中包含的预 定位, 从而生成合约1的合约地址, 所述预定位用。
42、于指示区块链1。 之后, 区块链平台11和/或 用户终端12可从区块链1的任一节点获取合约1的合约地址, 以用于进行对合约1的调用。 在 该情况中, 由于, 合约1的地址中指示了合约1所部署的区块链1, 因此, 将不需要如上文所述 记录合约与区块链的映射关系表。 或者, 区块链平台可自行基于预定计算规则生成合约1的 地址。 例如, 区块链平台首先计算合约1的名称哈希值, 并将该名称哈希值的预定位修改为 用于指示合约1所部署的区块链 (即区块链1) , 从而获取合约1的地址。 区块链平台11在获取 合约1的地址之后可记录该合约1的地址, 以用于后续发送调用合约1的交易。 或者, 区块链 平台11。
43、可将合约1的地址发送给用户终端, 以由用户终端发送调用合约1的交易。 0063 用户A在区块链系统中部署合约1之后, 可能还希望部署其它合约, 例如合约2。 在 一种实施方式中, 合约2与合约1没有关联性, 例如, 在调用合约1时不会关联地调用合约2, 用户A可以通过上述相同的过程部署合约2, 在该情况中, 合约2有可能与合约1一样部署到 区块链1中, 或者, 合约2也有可能部署到其它区块链中, 例如区块链2。 0064 在另一种实施方式, 合约2与合约1具有关联性, 例如, 在调用合约1时, 需要关联地 调用合约2, 例如, 在合约1中调用合约2。 在该情况中, 用户A通过用户终端12向区块。
44、链平台 11发送用于部署合约2的请求, 并在该请求中包括合约2与合约1关联的信息。 区块链平台11 在接收到该用于部署合约2的请求之后, 基于如上文所述在本地记录的如表1或表2所示的 映射表, 确定合约1与区块链1相对应, 从而可确定合约2也与区块链1相对应, 并向区块链1 发送用于部署合约2的交易, 并在所述映射表中记录合约2与区块链1的对应关系。 0065 在一种实施方式中, 图2所示方法可由用户终端执行。 在该情况中, 用户终端12可 直接与区块链1区块链3分别连接, 而不需要通过区块链平台11与各个区块链连接。 用户 终端12中的客户端在接收到用户A的部署合约1的指示之后, 基于预定规。
45、则确定合约1与区 块链1对应, 从而生成部署合约1的交易1, 并向区块链1发送交易1, 之后, 在用户终端12本地 记录合约1与区块链1的对应关系。 在其它用户也可能调用合约1的情况中, 用户终端12、 13 和14之间可相互通信, 以使得各个用户终端存储的合约与区块链的映射关系表是一致的。 其中, 用户终端12、 13和14可通过底层直接通信。 或者, 用户终端12、 13和14之间可通过区块 链平台相互通信, 从而起到统一映射表的目的, 在该情况中, 区块链平台执行的处理将减 少, 大部分的处理放到了用户终端进行。 说明书 7/12 页 11 CN 112017052 A 11 0066 。
46、图4示出根据本说明书实施例的一种在区块链中调用合约的方法流程图, 所述方 法包括: 步骤S402, 接收用于调用合约1的请求; 步骤S404,确定合约1与区块链1相对应; 步骤S406, 向区块链1发送调用合约1的交易2。 0067 与上文类似地, 该方法可由区块链平台11执行, 或者也可由用户终端执行。 0068 在一种实施方式中, 由区块链平台11执行图4所示方法。 0069 在步骤S402, 区块链平台11从用户终端12接收用于调用合约1的请求。 0070 例如, 上述用户A在部署合约1之后, 希望调用合约1以对数据1进行预定处理, 并将 经处理的数据1存入区块链系统中。 因此, 用户A。
47、向区块链平台11发送用于调用合约1的请 求。 该请求中指示了对合约1的调用, 并包括在执行合约1时将输入的参数, 即数据1。 0071 在一种实施方式中, 该请求中包括合约1的唯一标识。 例如, 如上文所述, 该请求中 包括 (账户A, 合约1) 作为合约1的唯一标识。 或者, 该请求中包括合约1的合约地址作为合约 1的唯一标识。 0072 在另一种实施方式中, 用户A的账户A为区块链系统中的账户, 用户终端12可通过 账户A向区块链平台发送调用合约1的交易2。 图5示出交易2 (Tx2) 的内容示意图。 如图5所 示, 交易2的发送账户为账户A, 接收账户为合约1, 其中 “0 x487b”。
48、 表示合约1的账户地址, 交易2的数据字段中表示对合约1中的STORE函数的调用, 并且该数据字段中包括将传入 STORE函数的数据1。 其中, 在该交易2中通过接收账户表示交易2为调用合约1的交易。 另外, 如图5所示, 用户终端12还将通过账户A对交易2的数字签名一起发送给区块链平台11。 0073 在步骤S404, 区块链平台11确定合约1与区块链1相对应。 0074 在一种实施方式中, 如上文所述, 区块链平台11中记录有合约与区块链的映射关 系表 (如上面的表1或表2所示) 。 区块链平台11可通过读取该映射关系表而确定合约1与区 块链1相对应, 也就是说, 合约1部署在区块链1中。。
49、 0075 在另一种实施方式中, 在上述用于调用合约1的请求中包括合约1的合约地址, 该 合约地址中的至少一个预定位数被预设为用于指示该合约所部署的区块链的标识。 例如, 该合约地址的生成规则为将其前两位设置为用于指示区块链, 例如, 如果合约地址的前两 位为01, 则表示区块链1, 如果合约地址的前两位为10, 则表示区块链2, 如果合约地址的前 两位为11, 则表示区块链3。 可以理解, 这里虽然仅描述了将合约地址的前两位设置为用于 指示区块链, 在实际中, 可根据区块链系统中包括的区块链的个数和预计扩展的区块链的 个数来设定用于指示区块链的位数。 区块链中的节点在生成合约1的合约地址时,。
50、 在按照预 定规则生成合约的哈希值 (例如将合约的名称输入预定哈希函数生成合约的哈希值) 之后, 可以在该哈希值的预定位置 (例如哈希头、 或者哈希尾处) 增加用于指示区块链的多位, 或 者将该哈希值的预定位置的多位替换为用于指示区块链的多位, 从而最终获得合约的合约 地址。 在该情况中, 区块链平台11可基于请求中包括的合约1的合约地址的预定位 (例如前 两位) , 确定合约1与区块链1相对应。 0076 在步骤S406, 区块链平台11向区块链1发送交易2, 以用于调用合约1。 0077 在一种实施方式中, 上述用于调用合约1的请求并不是交易的形式, 从而, 区块链 平台11生成交易2, 。
- 内容关键字: 区块 部署 调用 合约 方法 装置
变速箱.pdf
再生铅烟气中铅尘环保治理湿电除尘超低排放设备.pdf
混合加料机构.pdf
漆包线脱漆机.pdf
灯具的透镜反光杯一体式结构.pdf
防坠网-栏一体装置.pdf
装修用管线固定结构.pdf
物料压平测高装置.pdf
氢溴酸山莨菪碱分析溶解仪器.pdf
粉料分散上料机.pdf
电磁屏蔽壳体以及新能源汽车.pdf
枫叶魔方.pdf
骨科助行装置.pdf
钣金件调直装置.pdf
节能建筑保温体系.pdf
超薄柔性关节镜通道.pdf
适用于有水状态下闸门井封堵后干地修复的施工方法.pdf
车辆充电桩用防尘防水枪头结构.pdf
棉浆粕生产用的蒸球.pdf
码垛机器人几何精度标定与辨识方法.pdf
钕铁硼自动化发蓝设备.pdf
钢管外涂塑粉末自清洁回收装置.pdf
货物出库管理方法、系统及介质.pdf
词汇标签的确定方法及系统和查询语句的生成方法及系统.pdf
用于电机定子的端部叠片和电机定子.pdf
船舶目标检测方法、系统、可读存储介质及计算机.pdf
具有圆柱螺旋形液流流道的磁流变阻尼器.pdf
基于AES算法的硬件安全方法、设备及存储介质.pdf
接口管理方法及接口管理系统.pdf
涂料的质量监测方法及系统.pdf
空气灰尘检测仪.pdf
高铬合金离心铸管机及其使用方法.pdf
一种穿心莲内酯衍生物及其盐及其制备方法及用途.pdf
微波烧结制备锰酸锂正极材料的方法.pdf
硫酸尾气深度脱硫方法.pdf
含铜锌铁多金属硫铁矿的综合回收方法.pdf
一种盐酸头孢他美酯化合物及其制法.pdf
一种多功能液膜固沙剂的制备方法.pdf
生物质气化集中供气站储气柜.pdf
从包括DIPB、TIPB、和多烷基化物重化合物的进料中分离二异丙苯DIPB和三异丙苯TIPB的方法.pdf
用于诱导白血病细胞分化的小分子RNA.pdf
旋转式打孔机.pdf
利用太阳能的风冷热泵除霜补偿蓄能装置.pdf
粘拨叉瓷件的夹具体.pdf
12羟基硬脂酸生产废液中硫酸钠盐与甘油的分离方法.pdf
有多种排水模式可供选择的洗衣机.pdf
光纤上的D1379P可辐射固化初级涂层.pdf
废气净化用催化剂.pdf
一种无氰碱性镀铜液及其制备和使用方法.pdf
一种混合动力及电动汽车用旋变式电机零点标定方法.pdf
电动牙刷.pdf