CN113254064B - 一种区块链的api管理方法和系统 - Google Patents

一种区块链的api管理方法和系统 Download PDF

Info

Publication number
CN113254064B
CN113254064B CN202110757683.5A CN202110757683A CN113254064B CN 113254064 B CN113254064 B CN 113254064B CN 202110757683 A CN202110757683 A CN 202110757683A CN 113254064 B CN113254064 B CN 113254064B
Authority
CN
China
Prior art keywords
api
version
blockchain
intelligent contract
restricted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110757683.5A
Other languages
English (en)
Other versions
CN113254064A (zh
Inventor
林志平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110757683.5A priority Critical patent/CN113254064B/zh
Publication of CN113254064A publication Critical patent/CN113254064A/zh
Application granted granted Critical
Publication of CN113254064B publication Critical patent/CN113254064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书实施例公开了一种区块链的API管理方法和系统。所述方法包括:确定区块链中需要限制使用的API;设置开始限制该API的使用的、区块链程序的预定版本;在区块链程序为所述预定版本或更高版本的情况下,限制该API的使用。

Description

一种区块链的API管理方法和系统
技术领域
本说明书涉及信息技术领域,特别涉及一种区块链的API管理方法和系统。
背景技术
由于区块链分布式共识的特性,区块链对于版本兼容的要求特别高,一旦出现兼容性问题,可能会导致整条链不可用。因此,通常区块链只能做功能的加法,而不能做功能的减法。例如,在某个版本的区块链程序中提供了新的API(Application ProgrammingInterface,应用编程接口)后,哪怕这个API定义的有问题,也会在后续版本的区块链程序中一直保留下去。如果不采取适当的措施,问题API的影响会随着区块链程序的版本迭代不断被放大。
因此,亟需提供一种技术方案,能够在保证区块链兼容性的前提下,控制已提供的问题API产生的影响。
发明内容
本说明书实施例之一提供一种区块链的API管理方法。所述方法可以包括:确定区块链中需要限制使用的API;设置开始限制该API的使用的、区块链程序的预定版本;在区块链程序为所述预定版本或更高版本的情况下,限制该API的使用。
本说明书实施例之一提供一种区块链的API管理系统。所述系统可以包括:确定模块,用于确定区块链中需要限制使用的API;设置模块,用于设置开始限制该API的使用的、区块链程序的预定版本;限制使用模块,用于在区块链程序为所述预定版本或更高版本的情况下,限制该API的使用。
本说明书实施例之一提供一种区块链的API管理装置。所述装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的API管理方法。
本说明书实施例之一提供一种计算机可读存储介质。所述存储介质存储有计算机指令,当计算机读取存储介质中的计算机指令后,执行如本说明书任一实施例所述的API管理方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图;
图2是根据本说明书一些实施例所示的区块链的API管理方法的示例性流程图;
图3是本说明书一些实施例所示的限制API使用的示例性流程图;
图4是根据本说明书一些实施例所示的区块链的API管理系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
首先对本说明书涉及的基本概念进行解释。
在本说明书中,取决于具体的语境,“区块链”一词(有时也简称“链”)的含义是灵活的。例如,区块链可以是对区块链网络(节点链)的简称,也可以是对区块链数据的简称。其中,区块链数据可以包括区块数据和状态数据。区块数据由区块链接而成(数据链,可称为区块链),通常不支持修改(新增、删除、变更值)。状态数据(如账户存储)支持增删查改,区块链数据的更新(新增、删除、变更值)在共识通过后生效。另外,“上链”可表示将内容或内容被写入区块链数据。“链上” 可表示内容包含在区块链数据中,或操作结果需要经过共识并会影响区块链数据的更新。反之,“链下”可表示内容不包含在区块链数据中,或操作结果无需经过共识(自然也不会影响区块链数据的更新)。
智能合约(简称合约)可以指以数字形式分布式存储于区块链系统中各节点且能够自动执行的多方协议。智能合约代码(简称合约代码)的上链可称作智能合约的部署或创建。在一些实施例中,节点可以对已部署的智能合约代码进行更新,可称作智能合约的更新或升级。相应地,节点可以调用已部署/已更新的智能合约,即读取链上的合约代码并执行。
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图。如图1所示,系统100可以包括区块链网络110和用户端120。
区块链网络110可以包括多个区块链节点(简称节点),如节点110-1、节点110-2、节点110-3、...、110-n节点。一般地,区块链网络110中的一个节点可以接收在区块链网络110中广播的区块链交易(简称交易,有时也称作请求),并基于一段时间内接收到的交易生成区块。
用户端120和节点均可发起交易。交易可用于发起区块链系统中的事件/行为,例如,用于加入区块链成员的交易、用于转账的交易,部署智能合约的交易、调用智能合约的交易等等。各节点(可称为共识节点/全量节点)可通过运行共识机制,使得各节点生成相同的区块(或者由记账节点生成区块)并将其写入区块链。即,共识机制可确保各节点保存的区块链维持一致。
用户端120可以链接至任一节点以通过交易获取区块链服务。接收到交易后,节点可以根据交易内容执行相关操作,此过程可称作交易的执行。例如,转账交易的执行包括在账户间转移资产。又如,部署智能合约的交易的执行包括在区块链上部署智能合约。又如,调用智能合约的交易的执行包括调用(执行)链上部署的智能合约。生成区块的过程中,各节点也可通过运行共识机制,使得各节点对状态数据进行一致的更新。即,共识机制也可确保各节点保存的状态数据维持一致。
在一些实施例中,用户端120/区块链网络110中的节点可以包括各类计算设备,如智能电话、平板计算机、膝上型计算机、台式计算机、服务器等等。
在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
节点可安装区块链程序,通过运行区块链程序来处理区块链事务和/或提供区块链服务。在一些实施例中,区块链程序可以集成交易的执行逻辑、区块的生成逻辑、共识逻辑等等。为了方便智能合约的开发,区块链程序可以提供API供智能合约访问。具体地,智能合约代码可包含调用API的语句,相应地,用户调用智能合约时可在调用智能合约的交易中输入提供给该API的参数(即输入参数),区块链节点执行交易后返回的交易执行结果可包含通过该API获得的结果(即输入参数对应的输出)。接口信息可通过各种途径对开发智能合约的开发人员开放,例如,可以在网站上发布接口信息。借助预先定义的API,智能合约的开发人员可以避免通用功能的重复开发。
如前所述,考虑到兼容性,在某个版本的区块链程序中提供了新的API后,哪怕这个API定义的有问题,也会在后续版本的区块链程序中一直保留下去,并且问题API的影响会随着区块链程序的版本迭代不断被放大。
值得说明的是,由于种种原因,需要限制区块链中某些API的使用,相关原因包括但不限于API的输入参数不完整、不正确以及定义的API存在风险。其中,输入参数不完整、不正确可能导致通过API返回的结果出错甚至无法返回输出,风险可以指API的输入和/或输出包含敏感内容(如隐私数据、违法信息、有害信息等)。
有鉴于此,本说明书实施例提供一种区块链的API管理方法,能够在保证区块链兼容性的前提下,限制问题API的使用,以控制已提供的问题API产生的影响。
图2是根据本说明书一些实施例所示的区块链的API管理方法的示例性流程图。该流程可以由区块链节点执行。如图2所示,流程200可以包括:
步骤210,确定区块链中需要限制使用的API。在一些实施例中,步骤210可以由确定模块410(参见图4)实现。
在一些实施例中,可以通过人工方式发现并提交需要限制使用的API(即问题API)。在一些实施例中,可以通过机器自动检测的方式确定需要限制使用的API,例如,确定模块410可以通过检测API的输入和/或输出是否包含敏感数据(如,未经脱敏的人脸数据),来确定该API是否需要被限制使用。进一步地,在机器自动检测的基础上,还可以增加人工确认API是否需要被限制使用的环节,以提高结果的准确性。
步骤220,设置开始限制该API的使用的、区块链程序的预定版本。在一些实施例中,步骤220可以由设置模块420(参见图4)实现。
通过设置开始限制问题API的使用的、区块链程序的预定版本,可以在该预定版本及后续版本中缩小问题API造成的影响和/或防止问题API造成的影响被扩大。可以理解,为了尽早缩小问题API造成的影响和/或防止问题API造成的影响扩大,可以在当前版本(已发布的最新版本)的下一版本就开始限制问题API的使用。例如,当在使用v5版本的过程中确定了2个需要限制使用的API(不妨记为API_1和API_2)后,可从即将发布的v6版本开始限制API_1和API_2的使用,即所述预定版本可以是当前版本v5的下一版本v6。
在一些实施例中,针对各API可设置有版本受限信息,该版本受限信息可以指示需要限制对应的API的使用的区块链程序的版本。可以理解,当某一API未被确定为需要限制使用的API时,该API的版本受限信息可指示该API无需在(已发布的)任一版本下被限制使用。当该API被确定为需要限制使用的API后,则可修改该API的版本受限信息,以指示在区块链程序为所述预定版本或更高版本的情况下需要限制该API的使用。
仅作为示例,所述版本受限信息可以是版本号区间信息,该版本号区间信息可指示不需要限制对应的API的使用的、区块链程序的版本号区间。对于不需要限制使用的API,该API的版本号区间信息指示的版本号区间可以是从最初版本号到无穷大,例如,该API的版本号区间信息可以包括无穷大的标识。对于被确定为需要限制使用的API,可以将该API的版本号区间信息所指示的版本号区间的上限值从无穷大修改为不需要限制该API的使用的区块链程序的最高版本号,例如,对于需要在v6及更高版本下限制使用的API,可将该API的版本号区间信息所指示的版本号区间的上限值从无穷大修改为v5。
步骤230,在区块链程序为所述预定版本或更高版本的情况下,限制该API的使用。在一些实施例中,步骤230可以由限制使用模块430(参见图4)实现。
可以理解,上述步骤220是步骤230的基础/前提。智能合约的执行有时涉及API的调用,若执行智能合约要调用的API中存在在当前区块链程序的版本下需要限制使用的一个或多个API,则限制使用模块430可以对所述一个或多个API的使用进行限制。
这里的当前区块链程序的版本可以指区块版本,区块版本(号)可以是区块/交易中的字段,用以指示区块中各交易/交易适用的、区块链程序的版本。各节点在执行同一交易前可以对该交易适用的、区块链程序的版本达成一致(共识)。
关于限制API使用的具体方式,可以参考图3及其相关描述。
需要注意的是,限制API的使用并不意味着删除API,删除API可能会导致区块链系统无法正常运行。例如,节点同步区块链数据时需要执行历史交易(也称作交易重放),如果节点在交易重放过程中要调用的API已被删除,可能导致交易无法照常重放,从而导致区块链数据的同步无法照常进行,如链出现分叉。
图3是根据本说明书一些实施例所示的限制API使用的示例性流程图。如图3所示,流程300可以包括:
步骤310,接收交易,所述交易用于实现针对智能合约的操作。
针对智能合约的操作可以包括创建(部署)智能合约、调用(执行)智能合约、更新(升级)智能合约中的一种或多种。
在一些实施例中,交易可以包括该交易的类型,限制使用模块430可以根据交易的类型确定该交易是否用于实现针对于智能合约的操作。具体地,交易的类型可以包括转账类型、合约部署类型、合约更新类型、合约调用类型等中的一个或多个。其中,转账类型可指示交易用于实现转账操作,合约部署类型可指示交易用于创建智能合约,合约更新类型可指示交易用于更新智能合约,合约调用类型可指示交易用于调用智能合约。
限制使用模块430也可以通过其他方式确定交易是否用于实现针对于智能合约的操作。仅作为示例,当交易用于实现针对智能合约的操作时,可具备一些特定字段,如要调用/更新的智能合约的地址、指示创建智能合约的地址的字段等,限制使用模块430可以通过检测这些字段中的至少一个来判断交易是否用于实现针对智能合约的操作。进一步地,限制使用模块430可以通过检测特定字段来判断交易是否用于实现针对智能合约的特定操作,如后续步骤中的目标操作。
步骤320,确定执行所述智能合约要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API。若存在,则限制使用模块430可以继续执行步骤330。
在一些实施例中,交易可以包含智能合约的代码,限制使用模块430可以从交易包含的智能合约的代码中解析出执行所述智能合约要调用的API。在一些实施例中,交易中可以包括执行智能合约要调用的API的标识。
步骤320可以通过各种方式来实现。
在一些实施例中,限制使用模块430可以确定执行所述智能合约要调用的API中是否存在需要限制使用的一个或多个API。参考前述实施例,限制使用模块430可以通过查询执行所述智能合约要调用的API的版本受限信息来确定要调用的API中是否存在需要限制使用的一个或多个API(例如,当API的版本号信息所指示的版本号区间的上限值不是无穷大时,该API不需要被限制),也可以通过查询与各版本对应的API受限集合来确定要调用的API中是否存在需要限制使用的一个或多个API(例如,当API属于与某一版本对应的受限API集合时,该API需要被限制)。若存在,则限制使用模块430可以继续确定与所述一个或多个API中的任一API对应的预定版本。进而,限制使用模块430可以确定当前区块链程序的版本是否为与所述一个或多个API中的任一API对应的预定版本或更高版本。若是,则限制使用模块430可以确定执行所述智能合约要调用的API中存在在当前区块链程序的版本下需要限制使用的API,否则可以确定执行所述智能合约要调用的API中不存在在当前区块链程序的版本下需要限制使用的API。
举例说明,假定:执行所述智能合约要调用的API中存在3个需要限制使用的API(记为API_1、API_2和API_3),与API_1、API_2和API_3对应的预定版本为v4、v6和v3。那么:在当前区块链程序的版本为v2或更低版本的情况下,限制使用模块430可以确定执行所述智能合约要调用的API中不存在在当前区块链程序的版本下需要限制使用的API;在当前区块链程序的版本为v3或更高版本的情况下,限制使用模块430可以确定执行所述智能合约要调用的API中存在在当前区块链程序的版本下需要限制使用的API。
参考前述实施例,针对各API可设置有版本受限信息,所述版本受限信息可以是版本号区间信息,该版本号区间信息可指示不需要限制对应的API的使用的、区块链程序的版本号区间。其中,对于不需要限制使用的API,该API的版本号区间信息指示的版本号区间为从最初版本号到无穷大。对于需要限制使用的API,该API的版本号区间信息指示的版本号区间的上限值为不需要限制该API的使用的区块链程序的最高版本号。相应地,限制使用模块430可以确定执行所述智能合约要调用的API的版本号区间信息,比较要调用的API的版本号区间信息所指示的版本号区间的上限值和当前区块链程序的版本号,并基于比较结果确定要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API。
举例说明,假定:执行所述智能合约要调用的API中存在3个需要限制使用的API(记为API_1、API_2和API_3),API_1、API_2和API_3的版本号区间信息所指示的版本号区间的上限值为“无穷大”、v5和v3。那么:在当前区块链程序的版本为v3或更低版本的情况下,限制使用模块430可以确定执行所述智能合约要调用的API中不存在在当前区块链程序的版本下需要限制使用的API;在当前区块链程序的版本为v4或更高版本的情况下,限制使用模块430可以确定执行所述智能合约要调用的API中存在在当前区块链程序的版本下需要限制使用的API。
参考前述实施例,针对区块链程序的各版本可设置有受限API集合,与任一版本对应的受限API集合包含在区块链程序为该版本(即预定版本)或更高版本的情况下需要限制使用的API。即,相同集合中的(需要限制的)API具有共同的预定版本。相应地,限制使用模块430可以确定执行所述智能合约要调用的API中是否存在与当前区块链程序的版本或更低版本对应的需要限制使用的API。若是,则限制使用模块430可以确定执行所述智能合约要调用的API中存在在当前区块链程序的版本下需要限制使用的API,否则可以确定执行所述智能合约要调用的API中不存在在当前区块链程序的版本下需要限制使用的API。
步骤330,拒绝执行针对于所述智能合约的目标操作。
针对于所述智能合约的目标操作可以包括创建所述智能合约、更新所述智能合约和调用所述智能合约。
在一些实施例中,针对于所述智能合约的目标操作可以包括创建所述智能合约和更新所述智能合约。即,不限制问题API在合约调用中的使用。如此,可以维持已创建合约的业务的正常运行。
在一些实施例中,若限制使用模块430拒绝执行针对所述智能合约的目标操作,则可以向发起所述交易的用户端返回所述目标操作执行失败的结果,例如,可以向用户端报错。
可以理解,前述实施例可以进行适当组合。例如,限制使用模块430可以确定执行所述智能合约要调用的API的版本号区间信息,比较要调用的API的版本号区间信息所指示的版本号区间的上限值和所述交易的区块版本号,并基于比较结果确定要调用的API中是否存在在所述区块版本下需要限制使用的API。响应于要调用的API中存在在所述区块版本下需要限制使用的API,限制使用模块430可以向用户端报错。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图4是根据本说明书一些实施例所示的区块链的API管理方法的示例性模块图。系统400可以在区块链节点上实现。
图4所示,系统400可以包括确定模块410、设置模块420和限制使用模块430。
确定模块410可以确定区块链中需要限制使用的API。
设置模块420可以用于设置开始限制该API的使用的、区块链程序的预定版本。
限制使用模块430可以用于:在区块链程序为所述预定版本或更高版本的情况下,限制该API的使用。
关于系统400及其模块的更多细节,可以参考图2、图3及其相关描述。
应当理解,图4所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,限制使用模块430可以是一个系统中的单独模块,也可以被拆分成用于确定所述交易是否用于实现针对于智能合约的目标操作的子模块和用于确定执行所述智能合约要调用的API是否包括需要限制使用的API的子模块。又如,在一些实施例中,确定模块410、设置模块420和限制使用模块430可以是分立的模块,也可以合并为一个模块。诸如此类的变形,均在本说明书的保护范围之内。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (9)

1.一种区块链的API管理方法,包括:
确定区块链中需要限制使用的API;
设置开始限制该API的使用的、区块链程序的预定版本;
在区块链程序为所述预定版本或更高版本的情况下,限制该API的使用;
其中,所述限制该API的使用包括:
接收区块链交易,所述区块链交易用于实现针对智能合约的操作;
确定执行所述智能合约要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API;
若存在,则拒绝执行针对所述智能合约的目标操作。
2.如权利要求1所述的API管理方法,其中,针对各API设置有版本受限信息,该版本受限信息指示需要限制相应API的使用的区块链程序的版本;
所述设置开始限制该API的使用的、区块链程序的预定版本,包括修改该API的版本受限信息,以指示在区块链程序为所述预定版本或更高版本的情况下需要限制该API的使用。
3.如权利要求2所述的API管理方法,其中,所述版本受限信息包括版本号区间信息,该版本号区间信息指示不需要限制对应的API的使用的、区块链版本的版本号区间;
对于不需要限制使用的API,该API的版本号区间信息指示的版本号区间为从最初版本号到无穷大;
所述设置开始限制该API的使用的、区块链程序的预定版本,包括将该API的版本号区间信息所指示的版本号区间的上限值从无穷大修改为不需要限制该API的使用的区块链程序的最高版本号。
4.如权利要求1所述的API管理方法,其中,针对区块链程序的各版本设置有受限API集合,其中,针对任一版本设置的受限API集合包含在区块链程序为该版本或更高版本的情况下需要限制使用的API;
所述设置开始限制该API的使用的、区块链程序的预定版本,包括将该API加入针对预定版本设置的受限API集合中。
5.根据权利要求1所述的API管理方法,其中,所述确定执行所述智能合约要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API,包括:
确定执行所述智能合约要调用的API中是否存在需要限制使用的一个或多个API;
若存在,则确定与所述一个或多个API中的任一API对应的预定版本;
确定当前区块链程序的版本是否为与所述一个或多个API中的任一API对应的预定版本或更高版本;
若是,则确定为执行所述智能合约要调用的API中存在在当前区块链程序的版本下需要限制使用的API。
6.根据权利要求1所述的API管理方法,其中,针对各API设置有版本号区间信息,该版本号区间信息指示不需要限制对应的API的使用的、区块链程序的版本号区间;
对于不需要限制使用的API,该API的版本号区间信息指示的版本号区间为从最初版本号到无穷大;
所述设置开始限制该API的使用的、区块链程序的预定版本,包括将该API的版本号区间信息所指示的版本号区间的上限值从无穷大修改为不需要限制该API的使用的区块链程序的最高版本号;
所述确定执行所述智能合约要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API,包括:
确定执行所述智能合约要调用的API的版本号区间信息;
比较执行所述智能合约要调用的API的版本号区间信息所指示的版本号区间的上限值和当前区块链程序的版本号;
基于比较结果确定执行所述智能合约要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API。
7.根据权利要求1所述的API管理方法,其中,针对区块链程序的各版本设置有受限API集合,其中,针对任一版本设置的受限API集合包含在区块链程序为该版本或更高版本的情况下需要限制使用的API;
所述确定执行所述智能合约要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API包括:
确定当前区块链程序的版本以及针对该版本和更低版本设置的受限API集合;
确定执行所述智能合约要调用的API中是否存在确定的受限API集合中的API;
若是,则确定为执行所述智能合约要调用的API中存在在当前区块链程序的版本下需要限制使用的API。
8.根据权利要求1所述的API管理方法,其中,所述针对所述智能合约的目标操作包括创建所述智能合约、更新所述智能合约和调用所述智能合约,或者创建所述智能合约和更新所述智能合约。
9.一种区块链的API管理系统,其中,包括:
确定模块,用于确定区块链中需要限制使用的API;
设置模块,用于设置开始限制该API的使用的、区块链程序的预定版本;
限制使用模块,用于在区块链程序为所述预定版本或更高版本的情况下,限制该API的使用;
其中,所述限制该API的使用包括:
接收区块链交易,所述区块链交易用于实现针对智能合约的操作;
确定执行所述智能合约要调用的API中是否存在在当前区块链程序的版本下需要限制使用的API;
若存在,则拒绝执行针对所述智能合约的目标操作。
CN202110757683.5A 2021-07-05 2021-07-05 一种区块链的api管理方法和系统 Active CN113254064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110757683.5A CN113254064B (zh) 2021-07-05 2021-07-05 一种区块链的api管理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110757683.5A CN113254064B (zh) 2021-07-05 2021-07-05 一种区块链的api管理方法和系统

Publications (2)

Publication Number Publication Date
CN113254064A CN113254064A (zh) 2021-08-13
CN113254064B true CN113254064B (zh) 2021-11-02

Family

ID=77190840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110757683.5A Active CN113254064B (zh) 2021-07-05 2021-07-05 一种区块链的api管理方法和系统

Country Status (1)

Country Link
CN (1) CN113254064B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262237B2 (en) * 2013-12-17 2016-02-16 International Business Machines Corporation Automating software availability management based on API versioning
US10635504B2 (en) * 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
CN111651467B (zh) * 2020-05-25 2023-09-12 杭州溪塔科技有限公司 一种区块链节点接口发布调用方法和装置
CN111381866A (zh) * 2020-05-29 2020-07-07 支付宝(杭州)信息技术有限公司 区块链系统的版本升级方法、系统、及装置

Also Published As

Publication number Publication date
CN113254064A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
US10642599B1 (en) Preemptive deployment in software deployment pipelines
US11611445B2 (en) Changing smart contracts recorded in block chains
WO2019024674A1 (zh) 智能合约处理方法及装置
CN107979508A (zh) 微服务测试方法及装置
US8181166B2 (en) System and method for determining when an EJB compiler needs to be executed
CN102971711A (zh) 用于处理批工作单元的设备
CN111369350B (zh) 冲正交易处理方法及装置
US9690564B2 (en) Runtime detection of software configurations and upgrades
JP4931343B2 (ja) ネットワークサービスを実行するための自己インストールソフトウェアコンポーネントを提供するシステム、方法、プログラム、装置
CN108664343B (zh) 一种微服务的有状态调用方法及装置
CN113448862B (zh) 软件版本测试方法、装置及计算机设备
CN113256296B (zh) 智能合约执行方法、系统、装置和存储介质
CN110163572B (zh) 一种链码函数处理方法、装置及设备
CN112162768A (zh) 一种区块链升级方法和系统
CN114780173B (zh) 一种在应用中加载插件的方法、计算设备及存储介质
CN108536429B (zh) 一种开发软件的方法、装置、存储介质及电子设备
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
CN111813379A (zh) 应用部署方法及装置、电子设备、计算机可读存储介质
CN112134922B (zh) 一种基于微服务的服务调用方法、装置及存储介质
CN113254064B (zh) 一种区块链的api管理方法和系统
CN114490103A (zh) 一种操作系统接口调用方法、装置以及电子设备
CN113485930B (zh) 业务流程验证方法、装置、计算机系统和可读存储介质
CN116225617A (zh) 容器实例的管理迁移方法、装置和电子设备及存储介质
CN115277857A (zh) 用于接口验证的方法、装置、电子设备及存储介质
CN114253599A (zh) 版本部署方法、版本部署装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240920

Address after: Room 803, floor 8, No. 618 Wai Road, Huangpu District, Shanghai 200010

Patentee after: Ant blockchain Technology (Shanghai) Co.,Ltd.

Country or region after: China

Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right