CN110537182A - 为区块链云服务提供代表性状态转移代理服务的系统和方法 - Google Patents
为区块链云服务提供代表性状态转移代理服务的系统和方法 Download PDFInfo
- Publication number
- CN110537182A CN110537182A CN201880007466.0A CN201880007466A CN110537182A CN 110537182 A CN110537182 A CN 110537182A CN 201880007466 A CN201880007466 A CN 201880007466A CN 110537182 A CN110537182 A CN 110537182A
- Authority
- CN
- China
- Prior art keywords
- rest
- container
- peer
- service
- account book
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
根据实施例,本文描述的是用于将分布式账簿实现为区块链云服务的系统和方法。区块链云服务能够包括分布式账簿5的节点和管理控制台部件。管理控制台部件可以包括在脚本运行时环境中运行的web应用、用于与区块链云服务的各种节点通信的多个后端API,以及被配置为由客户端应用调用的多个客户端API。该多个客户端API在将分布式账簿供应作为区块链云服务时以及在管理区块链云服务时使用该多个后端API中的一个或多个后端API。
Description
版权声明
本专利文档公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现得那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。
对相关申请的优先权要求和交叉引用:
本申请要求于2017年9月29日提交的标题为“SYSTEM AND METHOD FOR PROVIDINGA BLOCKCHAIN CLOUD SERVICE”申请号为62/565,999的美国临时专利申请、于2018年9月25日提交的标题为“SYSTEM AND METHOD FOR PROVIDING AN INTERFACE FOR A BLOCKCHAINCLOUD SERVICE”申请号为16/141,329的美国专利申请、于2018年9月25日提交的标题为“SYSTEM AND METHOD FOR MANAGING A BLOCKCHAIN CLOUD SERVICE”申请号为16/141,337的美国专利申请以及于2018年9月25日提交的标题为“SYSTEM AND METHOD FOR PROVIDINGA REPRESENTATIONAL STATE TRANSFER PROXY SERVICE FOR A BLOCKCHAIN CLOUDSERVICE”申请号为16/141,339的美国专利申请的优先权权益;并且与于2017年4月12日提交的标题为“MULTI-TENANT IDENTITY AND DATA SECURITY MANAGEMENT CLOUD SERVICE”申请号为15/485,532的随后于2017年10月3日作为美国专利No.9,781,122发布的美国专利申请相关,上述申请中的每个申请通过引用并入本文。
技术领域
本公开一般而言涉及用于提供分布式账簿(ledger)的系统和方法。更具体地,本公开描述了用于管理被实现为区块链云服务的分布式账簿的系统和方法。
背景技术
分布式账簿可以被广义地描述为资产所有权的数字记录。账簿既没有中央管理员,也没有中央数据存储库。而是,账簿在计算环境中的许多参与节点上进行复制,这些参与节点可能在地理上跨多个站点、国家或机构分布。共识协议确保每个节点的账簿副本与每个其它节点的副本相同。同样,可以将副本的集合视为单个共享账簿。资产所有者可以使用密码签名技术来使用分布式账簿,例如,以借记(debit)他们的账户和贷记(credit)他人的账户。
区块链是可以用于实现防篡改分布式账簿的数据架构。多个节点遵循公共协议,其中来自客户端的交易被打包成区块,并且节点使用共识协议来协定下一个区块。区块携带累积的密码散列,从而使得难以篡改账簿。每个区块可以具有对时间上在先一个区块的引用(散列值)。此外,每个区块可以包括其自己的散列。区块链可以向后遍历(例如,沿着链向上遍历)。
区块链可以是免许可(permissionless)区块链或许可(permissioned)区块链。任何人都可以加入免许可区块链并拥有分布式账簿的副本。比特币和以太坊是免许可区块链的示例。免许可区块链允许匿名参与者维护账簿,同时避免受任何单个实体的控制。但是,鉴于匿名性,身份、责任性和可审计性很难。作为对照,许可区块链通过邀请接受成员,并且通过允许明确授权的各方维护账簿来允许信任和责任级别。
超级账簿(hyperledger)架构是许可区块链的示例。超级账簿架构作为企业级开源分布式账簿框架和代码库,是用于运行智能合约的分布式账簿平台的实现方案。它利用容器技术来托管被称为“链式码(chaincode)”的包含系统的应用逻辑的智能合约。
平台即服务(PaaS)是用于应用开发、数据管理、集成、移动和物联网(IOT)的多种云服务。随着云服务需求的增长,期望提供区块链PaaS云服务。区块链PaaS云服务可以提供预先组装的平台,用于构建和运行智能合约并维护防篡改的分布式账簿,同时减少对第三方中介的需要。PaaS区块链云服务还可以使得能够对利用其它PaaS服务的区块链解决方案进行开发。
发明内容
根据实施例,本文描述的是用于将分布式账簿实现为区块链云服务(BCS)的系统和方法。BCS可以包括完整的基础设施服务和嵌入式资源集合:计算、容器、存储、身份管理和事件流,以使得能够设立和执行生产就绪的(production-ready)区块链。响应于管理员指定一个或多个参数,BCS可以供应具有所需的区块链网络部件、接口、代表性状态转移(REST)代理服务部件和管理控制台部件的底层基础设施。
根据实施例,分布式账簿可以是超级账簿架构,即,旨在作为开发区块链应用的基础的区块链技术的实现方案。超级账簿架构可以提供模块化架构,并利用容器技术来托管被称为“链式码”的包括系统的应用逻辑的智能合约。
根据实施例,BCS可以基于PaaS管理器(例如,Oracle PaaS服务管理器(PSM)平台),并且可以在PaaS管理器上的计算空间(例如,外部计算空间)中运行。该系统利用PSM平台的特征,包括使用Oracle身份云服务(IDCS)分层的容器运行时服务环境(诸如Docker(坞)或Oracle的应用容器云服务)、Oracle负载均衡器即服务(LBaaS)、Oracle事件中枢云服务和Oracle云存储。每个客户区块链可以被供应,并且可以作为租户运行。系统支持多个区块链,每个区块链在多租户环境中作为单独的租户被供应和运行。
根据实施例,管理控制台部件和REST代理服务部件二者都可以是BCS中的网络节点。
根据实施例,管理控制台部件促进并自动化BCS的供应、监视和配置。管理控制台部件可以包括在脚本运行时环境(例如Node.js)中运行的web应用。web应用可以构建在图形用户界面框架和web框架上;并且可以包括多个自定义功能或API以与BCS实例中的各种节点或服务通信。web应用可以将来自BCS实例中的各种节点或服务的信息填充到视图对象中,以便在控制台用户界面中显示。管理控制台部件还可以为管理员提供多个功能,以启动、停止和更新BCS实例中的一个或多个节点。脚本运行时环境可以提供一组管理RESTAPI,该组管理REST API可以由脚本运行时环境访问,以支持与由web应用所提供的功能相同的功能。
根据实施例,BCS实例内的REST代理服务部件(即,REST代理服务或REST代理)可以使用用于BCS中的分布式账簿的服务开发工具包(SDK)与分布式账簿通信,并且可以提供REST API供客户端应用使用来通过链式码进行查询、通过链式码同步或异步调用交易、获取交易状态以及获取BCS代理版本。REST代理服务部件可以对REST调用进行认证,并将REST调用转换为远程过程调用,例如Google远程过程调用(gRPC),以用于与分布式账簿对接。REST代理服务部件还可以提供支持与由BCS管理控制台部件提供的功能相同功能的RESTAPI,并为客户端应用提供用于消费BCS实例的用户界面。
附图说明
图1A图示了根据实施例的区块链云服务系统的架构中的交易流。
图1B图示了根据实施例的区块链云服务系统。
图1C图示了根据实施例的BCS系统。
图1D图示了根据实施例的BCS系统。
图1E是根据实施例的用于提供区块链云服务的接口的方法的流程图。
图2图示了根据实施例的用于区块链云服务系统的网关。
图3图示了根据实施例的区块链云服务系统的持久化。
图4图示了架构在BCS上的示例性部署。
图5图示了根据实施例的链式码架构。
图6图示了根据实施例的用于提供管理控制台的系统。
图7A图示了根据实施例的BCS控制台UI中的用户界面的示例。
图7B图示了根据实施例的BCS控制台UI中的用户界面的示例。
图7C图示了根据实施例的用于提供管理控制台的方法。
图8A图示了根据实施例的用于在BCS实例中提供REST代理服务的系统。
图8B图示了根据实施例的用于在BCS实例中提供REST代理服务的系统。
图8C图示了根据实施例的用于在BCS实例中提供REST代理服务的方法。
图9A图示了根据实施例的用于单点登录(single sign-on)的典型IDCS用例。
图9B图示了根据实施例的用于架构客户端认证的IDCS用例。
具体实施方式
根据实施例,本文描述的是用于将分布式账簿实现为云服务的系统和方法。在特定实施例中,可以将许可区块链账簿(例如,超级账簿架构)提供为区块链云服务(BCS)。
在以下描述中,将通过示例而非限制的方式在附图的各图中图示本发明。对本公开中的各种实施例的引用不一定是指同一实施例,并且这些引用意味着至少一个实施例。虽然讨论了具体实现方案,但应理解,这仅是出于说明性目的而提供的。相关领域的技术人员将认识到,在不脱离本发明的范围和精神的情况下,可以使用其它部件和配置。
根据实施例,在某些情况下,将阐述许多具体细节以提供对本发明的详尽描述。但是,对于本领域技术人员将清楚的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,没有详细描述众所周知的特征,以免模糊本发明。
借助于说明特定功能及其关系的性能的功能构建块来描述本发明。为了便于描述,这些功能构建块的边界通常在本文中被任意定义。因此,示出由相同元件执行的功能在替代实施例中可以由不同元件执行。示出在单独元件中执行的功能可以替代地被组合到一个元件中。可以定义替代边界,只要适当地执行指定的功能及其关系即可。因此,任何这样的替代边界都在本发明的范围和精神内。
在整个附图和详细描述中,共同的附图标记用于表示相同的元件;因此,如果元件在别处被描述,则图中使用的附图标记可以或可以不在具体到该图的详细描述中被引用。
区块链技术具有通过跨客户的生态系统中实现近实时的分布式交易以及通过实现安全、防篡改数据共享来显著增强企业业务价值的潜力。超级账簿架构区块链包含模块化架构、水平/跨行业技术支持以及对企业需求的支持。
介绍
根据实施例,超级账簿架构是用于分布式账簿解决方案的平台,其由模块化体系架构支持,提供高度机密性、弹性、灵活性和可缩放性。它被设计为支持不同部件的可插拔实现方案,并适应跨经济生态系统存在的复杂度和复杂性。
根据实施例,超级账簿架构提供弹性和可缩放的体系架构,从而将其与替代的区块链解决方案区分开。
区块链——分布式账簿
根据实施例,区块链网络可以包括分布式账簿,分布式账簿记录在网络上发生的所有交易。
根据实施例,区块链账簿通常被描述为去中心化的,因为它被复制到许多网络参与者,每个网络参与者在维护区块链账簿中协作。去中心化和协作是反映企业在现实世界中交换商品和服务的方式的属性。
除了去中心化和协作之外,记录到区块链的信息是仅追加(append-only)的,使用密码技术,该密码技术保证一旦交易被添加到账簿,它就不能被修改。这种不变性的属性使得确定信息的起源(provenance)变得简单,因为参与者可以确定信息在事后没有被改变。以这种方式,区块链可以被认为是证明系统(systems of proof)。
区块链——智能合约
根据实施例,为了支持信息的一致更新——以及启用某些账簿功能(交易、查询等)——区块链网络使用智能合约来提供对账簿的受控访问。
根据实施例,智能合约不仅是用于封装信息并使其在网络上保持简单的关键机制,它们还可以被编写为允许参与者自动执行交易的某些方面。
根据实施例,智能合约可以例如被编写以规定运送物品的成本,该成本取决于物品到达的时间而变化。根据双方同意并写入账簿的条款,当收到物品时,适当的资金自动转手。
区块链——共识(consensus)
根据实施例,保持账簿交易在网络上同步——以确保账簿仅在交易被适当的参与者批准时才更新,并且当账簿确实更新时,它们以相同的顺序更新相同的交易——的处理可以被称为共识。
根据实施例,区块链可以被认为是共享的、复制的交易系统,该交易系统经由智能合约进行更新并且通过称为共识的协作处理保持一致同步。
区块链的优点
根据实施例,当前可用的交易网络是自从保留业务记录以来已经存在的网络的版本。业务网络的成员彼此进行交易,但每个成员都维护他们的交易的单独记录。同样,交易的对象可以在每次被出售时建立这些对象的起源,以确保销售该项目的企业拥有核实这些企业对该项目的所有权的产权链(chain of title)。
根据实施例,虽然当前的业务网络由计算系统进行现代化,但是不存在用于管理网络参与者的身份的统一系统,建立起源是费力的,因为清算证券交易(其全世界的体量以数万亿美元计)需要花费数天、合同必须手动签署和执行,并且系统中的每个数据库都包含唯一的信息并因此代表单点故障。
根据实施例,区块链通过提供用于在网络上建立身份、执行交易和存储数据的标准方法,提供了对由标准交易系统表示的许多低效率方案的替代方案。
根据实施例,在区块链网络中,其中的每个参与者具有账簿的其自己的复制副本。除了共享账簿信息之外,还共享更新账簿的处理。与在其中参与者的私有程序被用于更新参与者的私有账簿的其它系统不同,区块链系统具有用于更新共享账簿的共享的程序。
根据实施例,利用通过共享账簿协调业务网络的能力,区块链网络可以减少与私人信息和处理相关联的时间、成本和风险,同时改善信任和可见性。
超级账簿架构
根据实施例,与其它区块链技术一样,超级账簿架构具有账簿、使用智能合约,并且是参与者通过其来管理交易的系统。
根据实施例,超级账簿架构与一些其它区块链系统的不同之处在于它是私有的和许可的。超级账簿架构网络的成员通过成员资格服务提供者来登记(enroll),而不是一些区块链网络用于核实身份的“工作证明”(允许符合这些标准的任何人加入网络)。
根据实施例,超级账簿架构还提供了几种可插拔选项。账簿数据可以以多种格式存储,共识机制可以被切换进和切换出,并且支持不同的MSP(成员资格服务提供者)。
根据实施例,超级账簿架构还提供创建通道的能力,从而允许一组参与者创建单独的交易账簿。这允许其中一些参与者可能是竞争者并且不希望他们做出的每一笔交易——例如他们向一些参与者而不是其它参与者提供的特殊价格——对于每个参与者都已知的网络选项。如果两个参与者形成通道,那么这些参与者——而不是其它参与者——拥有该通道的账簿副本。
共享账簿
根据实施例,超级账簿架构具有包括两个部件的账簿子系统:世界状态(worldstate)和交易日志。每个参与者都拥有他们所属的每个超级账簿架构网络的账簿副本。
根据实施例,世界状态部件描述在给定时间点处的账簿的状态。它是账簿的数据库。交易日志部件记录导致了世界状态的当前值的所有交易。它是世界状态的更新历史。然后,账簿是世界状态数据库和交易日志历史的组合。
根据实施例,共享账簿具有世界状态的可替换数据存储库。默认情况下,这是LevelDB键-值存储数据库。交易日志不需要是可插拔的。它仅记录区块链网络使用的账簿数据库的前值和后值。
智能合约
根据实施例,超级账簿架构智能合约以链式码编写,并且当区块链外部的应用需要与账簿交互时由该应用调用。在大多数情况下,链式码只与账簿的数据库部件、世界状态交互(例如,查询它),而不与交易日志交互。
共识
根据实施例,交易按照它们发生的顺序被写入账簿,即使它们可能在网络内的不同参与者集合之间。为此,建立了交易的顺序,并且可以实现用于拒绝已被错误(或恶意)插入到账簿中的坏交易的方法。
根据实施例,超级账簿架构允许网络实体(例如,网络用户、对等体(peer)、起始者)选择最能代表参与者之间存在的关系的共识机制。与隐私一样,存在一系列需求;从在他们的关系中高度结构化的网络到更加点对点的网络。
链式码
根据实施例,链式码可以包括定义(一个或多个)资产的软件,以及用于修改(一个或多个)资产的交易指令——它是业务逻辑。链式码强制执行读取或更改键值对或其它状态数据库信息的规则。链式码函数针对账簿当前状态数据库执行,并通过交易提议发起。链式码执行导致可以提交给网络并应用于所有对等体上的账簿的一组键值写入(写入集)。
账簿特征
根据实施例,账簿是架构中所有状态转换的有序、防篡改记录。状态转换是参与方提交的链式码调用(“交易”)的结果。每个交易都会产生资产键值对集合,这些键值对集合作为创建、更新或删除被提交到账簿。
根据实施例,账簿包括用于以区块的形式存储不可变的顺序记录的区块链,以及用于维护当前架构状态的状态数据库。每个通道可以有一个账簿,每个通道包含对特定的参与者组可见的单独的交易账簿。每个对等体维护其作为成员的每个通道的账簿的副本。
通过通道的隐私
根据实施例,超级账簿架构在每个通道的基础上采用不可变的账簿,以及可以操纵和修改资产的当前状态(即更新键值对)的链式码。账簿存在于通道的范围内——它可以跨整个网络共享(假设每个参与者都在一个公共通道上操作)——或者它可以被私有化为只包括特定的参与者集合。
根据实施例,在后一种场景下,这样的参与者可以创建单独的通道,从而使他们的交易和账簿隔离/分离。为了允许想要弥合总透明度和隐私之间的间隙的场景,可以仅在需要访问资产状态以执行读取和写入的对等体上安装链式码(例如,如果链式码未在对等体上安装,那么它将无法与账簿恰当对接)。为了进一步模糊数据,可以在追加到账簿之前使用常见的密码算法(诸如AES(高级加密标准))对链式码内的值进行加密(部分或全部)。
安全性和成员资格服务
根据实施例,超级账簿架构提供了一种交易网络,其中所有参与者都具有已知身份。公钥基础设施被用于生成与组织、网络部件以及最终用户或客户端应用绑定的密码证书。因此,可以在更广泛的网络和通道级别上操纵和管理数据访问控制。超级账簿架构的这种“许可”概念,加上通道的存在和能力,有助于解决其中隐私和机密性至关重要的场景。
共识
根据实施例,在分布式账簿中,共识可以包含的不仅仅是简单地同意交易的顺序。超级账簿架构通过其在从提议和背书(endorsement)到排序、验证和提交的整个交易流中的基础性角色突出了这种差异化。可以将共识定义为包含区块的交易集合的正确性的全圆核实(full-circle verification)。
根据实施例,当区块的交易的顺序和结果已满足显式策略标准检查时,实现了共识。这些检查和平衡发生在交易的生命周期期间,并包括使用背书策略来指定哪些特定成员必须对某个交易类进行背书,以及系统链式码以确保这些策略被强制执行和支持。在提交之前,对等体可以采用这些系统链式码来确保存在足够的背书,并且它们源自适当的实体。此外,在包含交易的任何区块被追加到账簿之前,可以进行版本控制检查,在版本控制检查期间,对账簿的当前状态达成一致或同意。这种最终检查可以防止可能危及数据完整性的双重花费操作和其它威胁,并允许针对非静态变量执行函数。
根据实施例,除了发生的背书、有效性和版本控制检查之外,还存在在交易流中发生的持续身份核实。访问控制列表在网络的层级上实现(将服务排序到通道),并且当交易提议通过不同的体系架构部件时,有效载荷被重复签署、核实和认证。共识不限于就一批交易的顺序达成一致,而是作为在从提议到提交的交易流程期间发生的持续核实的副产品而实现的处理。
区块链云服务——体系架构
根据实施例,诸如云系统(例如,区块链云服务(BCS))之类的系统可以利用上述超级账簿架构作为起始点。这样的系统提供了高度先进和差异化的企业级分布式账簿云平台,该平台允许构建新的基于区块链的应用和/或扩展现有的SaaS、PaaS、IaaS和本地(on-premises)应用。
根据实施例,该系统可以支持任务关键型企业需求,诸如可伸缩性、安全性、健壮性、集成和性能,以消除生产中采用的障碍并且支持区块链应用。该系统允许用户通过提供BCS作为平台即服务(PaaS)云解决方案来部署、配置、管理和监控区块链并降低在企业中部署区块链的成本。该系统还加速了区块链应用与其它平台的开发和集成。该系统允许SaaS云客户使用区块链云平台实现其采购、支付、贸易金融、会计、HR、CX等企业处理,以与第三方应用和外部分布式账簿技术安全地共享数据和进行分布式交易。
根据实施例,该系统是基于PaaS管理器(例如,Oracle PaaS服务管理器(PSM)平台)的云服务。一般而言,这种系统是在计算空间(例如,外部计算空间)中运行的受管理的云服务。在实施例中,系统利用PSM平台的特征,包括使用Oracle身份云服务(IDCS)、Oracle负载均衡器即服务(LBaaS)、Oracle事件中枢云服务和Oracle云存储进行分层的容器运行时服务环境(诸如Docker或应用容器云服务)。每个客户区块链可以被供应,并且可以作为租户运行。系统支持多个区块链,每个区块链在多租户环境中作为单独的租户被供应和运行。
因而,根据实施例,该系统允许应用或客户应用实现具有智能合约的分布式账簿,这对于应用是必要的或期望的。这种系统的客户端和用户可以在云的内部或外部——区块链信任——一些区块链网络可以包括云环境外部的部件(或者可以被约束到特定的云)。
根据实施例,这种系统对于各种应用功能可以是有用的,特别是在必须解决信任和身份问题的多方交易中。与其它区块链系统不同,所提供的系统服务不是匿名的。实际上,身份和可审计性是基本的和被集成的因素。因而,BCS可以应用于例如资本市场、跨境交易、金融服务、资产交易、法律监管应用、医疗记录、出版、物流、可追溯性和防伪。
根据实施例,如上所述,区块链上的每一方都可以访问整个数据库及其完整历史(除非账簿已经被供应/私有化给某些方)。没有单方控制数据或信息。每一方也可以直接核实其交易伙伴的记录,而无需中介。通信直接发生在对等体之间而不是通过中心节点。每个节点都存储信息并将信息转发给所有其它节点。一旦交易被输入数据库并且账户被更新,记录就不能被更改,因为它们链接到在它们之前到来的每个交易记录(因此称为“链”)。如果交易出错,那么必须使用新交易来撤消错误,然后这两个交易都对被供应的用户是可见的。为了添加新的有效交易,参与者可以经由共识机制就其有效性达成一致。区块链的参与者可以证明资产来自哪里以及资产的所有权随时间如何改变。数字签名可以用于认证文档并且可以被放置在访问控制[不同级别的权限]和可编程性[可执行业务规则]中。
根据实施例,在许多多方交易中,当一方接收到资产或服务时,货币被交换。通常由于交易时间,一方或另一方必须在另一方之前提交货物或金钱。在一些环境中,通过使用中介来解决信任问题,中介将资金保持在托管中直到合约条件完成为止。这解决了原始方之间的信任问题。但是,这种方法增加了必须受信任的另一个中心化的一方,从而增加了复杂性,并且可能增加交易的成本。使用智能合约作为所提供系统的一部分可以消除对中介的需求——各方可以在区块链上进行受信任的交易而无需中介。
根据实施例,所提供的系统(诸如BCS)的优点包括其中包含的信息是分布式的。虽然可审计性是可用的,但访问受到控制并且可以保持一些隐私。而且,区块链账簿基本上是不可变的并且不能被拒绝。账簿包括区块的列表。每个交易区块包含:区块ID、前一个散列、数据散列、时间戳、交易ID列表、动作(1..n)、链式码ID、链式码提议、响应(r/w集合、事件、成功或失败)、背书者(endorser)。由于每个区块包含前一个散列和它自己的散列,因此这些区块一旦被知晓/分布就固有地有序并且不可变(注意:当前区块的散列是前一个区块的散列和当前区块中的其它数据的散列,因此链接链中的区块)。共识可以解决差异。与中心化数据库或中介相比,不需要向中心化授权机构给予过度授权。账簿的分布式性质也增强了区块链记录技术的基本不变性,因为分布式副本的使用——以及共识使得难以修改它(即使在算法上可能的情况下也是如此)。因此,给定交易的排序的情况下——如果有人拥有链中最新区块的副本,对账簿进行攻击也几乎是不可能的。
根据一些实施例,如下所述,所提供的系统可以基于Oracle PaaS服务管理器(PSM)平台,并且利用管理控制台进行扩充,该管理控制台简化/促进/自动化基于架构的区块链的供应、监视和配置。此外,还提供了包括单一REST API的REST代理服务,以简化应用与区块链架构之间的联系。开发人员可以构建智能合约,使用管理控制台部署智能合约,然后让应用异步地(默认情况下)或者同步地(如果期望立即响应)调用区块链上的智能合约。取决于平台的需要,REST代理服务和API提供同步和异步功能二者。
根据实施例,架构-CA服务器可以为架构提供成员资格服务。架构-CA服务器可以包括三个部分:针对用户的认证、访问区块链(一组对等体和次序)的授权,以及可以将证书递送到应用客户端、对等体和次序的CA服务器。架构-CA可以使用证书来实现认证和授权。证书包括两种类型:用于认证的登记证书和用于授权的交易证书。根据实施例,诸如IDCS之类的身份服务也可以提供认证和授权。
超级账簿架构
如上所述,在实施例中,所提供的系统可以实现超级账簿架构,其提供用于运行智能合约的分布式账簿平台。该架构利用容器技术来托管称为“链式码”的包括系统的应用逻辑的智能合约。在替代实施例中,区块链云服务实现替代的分布式账簿平台,包括例如2016年5月31日提交的标题为“Accountability And Trust in Distributed Ledger Systems”的美国专利申请序列No.15/169,622(美国公开No.2017/0236120)中所述的“Tendermint”账簿系统,该申请通过引用并入本文。
根据实施例,超级账簿架构的分布式账簿协议由对等体运行。现有区块链技术的一个缺点是要求所有对等体记录所有交易。这产生大量的I/O和处理器开销,并且无法方便地缩放到企业级系统。超级账簿架构区分两种对等体:验证对等体是网络上负责运行共识、验证交易和维护账簿的节点。另一方面,非验证对等体是用作将(发布交易的)客户端连接到验证对等体的代理的节点。非验证对等体不执行交易,但它可以核实交易。对等体类型/功能的隔离提高了系统的可缩放性。
根据实施例,超级账簿的特征是具有即时终结性(immediate finality)的许可区块链,其运行称为链式码的任意智能合约。用户定义的链式码智能合约封装在容器中,并且系统链式码在与对等体相同的进程中运行。链式码执行与交易排序分开,从而限制了跨节点类型所需的信任和核实级别,并减少了网络开销。
根据实施例,超级账簿架构中的通道使得能够以在公共网络上交换资产的竞争企业和受监管行业所需的高度隐私和机密性来进行多边交易。不可变的共享账簿为每个通道编码整个交易历史记录,并包括用于高效审计和争议解决的查询能力。账簿在通道范围内被提供——它可以在整个网络中共享(假设每个参与者在一个公共通道上操作)——或者它可以私有化为仅包括一组参与者。
根据实施例,超级账簿架构通过支持用于TLS证书、登记证书和交易证书的证书颁发机构(CA)来实现安全性。公钥基础设施被用于生成与组织、网络部件以及最终用户或客户端应用相关联的密码证书。因此,可以在更广泛的网络和通道级别上操纵和管理数据访问控制。超级账簿架构的这种“许可”特征,加上通道的存在和功能,满足了多方企业系统中的隐私和机密性需求。
根据实施例,超级账簿架构提供使用链式码交易修改资产的能力。如上所述,链式码是定义一个或多个资产的软件,并且是用于修改(一个或多个)资产的交易指令。
根据实施例,所集成的共识机制在超级账簿架构中的从提议和背书、到排序、验证和提交的交易流程中具有基础性角色。如上所述,共识是对包括区块的交易集合的有效性的核实。共识在区块的交易的次序和结果满足显式策略标准检查时最终达成。
图1A图示了提供区块链服务的系统的架构中的交易流程。更具体而言,该图图示了根据实施例的区块链云服务(BCS)系统。在1处,客户端160使用架构SDK 162来访问架构证书颁发机构170、172、174以进行登记。在1.1处,架构-CA向客户端160返回登记证书。在2处,客户端160使用架构SDK 162来访问对等体容器180,以请求来自背书者182的背书。在2.1处,背书者182返回经签署的RWset(读写集)。在3处,客户端160处的架构SDK 162向排序容器190处的排序服务提交包括RWset和背书者签名的经背书的TX(交易)。在4处,排序者192将TX批递送到对等体容器180中的提交者184。排序者是所定义的将交易排序成区块的节点集合。排序服务独立于对等体进程而存在,并以先来先服务的方式为网络上的所有通道对交易进行排序。提交者184在5和5.1处对账簿186和世界状态188应用改变。架构证书颁发机构170可以用于为对等体容器180、智能合约容器166和168(智能合约)以及排序者192验证签名和授权。此外,智能合约168可以与背书者182通信。
在实施例中,系统可以使用Kafka集群作为排序服务。Kafka是一种支持发布和订阅语义的分布式流传输服务。Kafka集群在多个服务器上运行,并将记录的流存储在称为话题(topic)的类别中。每个记录包括键值和时间戳。因此,Kafka可以用作排序服务,包括排序服务节点(OSN-n)和Kafka集群。排序服务客户端可以连接到多个OSN。OSN不直接彼此通信。这些排序服务节点(OSN)(1)进行客户端认证,(2)允许客户端使用简单的接口写入链1或从链1中读取,以及(3)它们还对重新配置现有的链或创建新链的配置交易执行交易过滤和验证。Kafka中的消息(记录)被写入话题分区。Kafka集群可以有多个话题,并且每个话题可以有多个分区。每个分区都是不断附加到其的有序的、不可变的记录序列。一旦OSN执行了客户端认证和交易过滤,它们就可以将属于某个链的传入客户端交易中继到链的相应分区。然后,它们可以消费该分区并返回跨所有排序服务节点通用的有序交易列表。
根据实施例,每个对等体具有作为背书者和提交者的能力。存在可以使对等体成为背书者的一个配置项(例如,CORE_PEER_ENDORSER_ENABLED)。当对等体加入通道时,该对等体成为这个通道的提交者。当在对等体上安装链式码时,这个对等体成为这个链式码的候选背书者。当客户端提出交易时,客户端可以(从候选背书者中)选择哪些对等体作为背书者。
根据实施例,用于让排序者将区块递送给对等体的排序机制如下。首先,对等体(例如,领导者对等体)通过发送其版本(最后的区块编号)来递送对来自排序者的新区块的请求。接下来,排序者检查对等体的版本:a)如果它大于排序者,那么向对等体返回错误,它指示排序者中的账簿丢失,并且无法从EventHub(事件中枢)恢复(在这种情况下,排序者无法继续正常工作);b)如果对等体的版本小于排序者,那么排序者从(在RAM中或者本地文件中的)本地账簿中检索区块,然后发送回对等体;或者c)如果它们具有相同的版本,那么排序者会阻塞直到有新的区块可用。当从EventHub中剪切的新区块数据准备就绪时,排序者会将其放入本地区块文件或RAM中,然后递送线程从账簿读取这个区块并将其发送回对等体。对等体获取这个区块,并将其提交到本地账簿,并且然后可以将其最新版本广播给其它对等体。
BCS系统体系架构
图1B图示了提供区块链服务的系统的架构中的交易流程。更具体而言,该图图示了根据实施例的区块链云服务(BCS)系统。如图所示,区块链云服务部件在计算空间120(例如,外部计算空间)中供应,例如在Oracle PaaS服务管理器(PSM)平台上。对系统的访问由PSM API 122和区块链REST API 124调解。外部计算120利用负载均衡即服务LBaaS 126来跨可用的适当资源分发传入的交易。
根据实施例,BCS是在容器运行时服务环境(诸如Docker或应用容器云服务)128上利用PSM平台构建的应用-容器分层服务。BCS实体中的每一个都在单独的容器上运行。BCS实体中的每一个与容器运行时服务一一对应。区块链云服务实现上述超级账簿架构的特征。除了构建基本架构网络的部件之外,还开发了几个部件来将超级账簿架构用于区块链云服务。这些部件需要分开的部署行为和二进制文件来部署这些部件。云堆栈管理器可以用于使用户能够自动将蓝图(blueprint)定义的所有服务作为称为堆栈的单元进行供应。
根据实施例,BCS提供超级账簿架构的实现方案,该实现方案是用于运行智能合约的分布式账簿平台的实现方案。BCS利用容器技术来托管称为“链式码”的包含系统的应用逻辑的智能合约。
根据实施例,架构的分布式账簿协议由对等体运行。架构区分两种对等体:验证对等体是网络上负责运行共识、验证交易和维护账簿的节点。另一方面,非验证对等体是用作将(发布交易的)客户端连接到验证对等体的代理的节点。非验证对等体不执行交易,但它可以核实它们。架构发布的一些关键特征包括具有即时终结性的许可区块链,其运行称为链式码的任意智能合约。用户定义的链式码智能合约封装在容器中,并且系统链式码在与对等体相同的进程中运行。该架构通过支持由于TLS证书、登记证书和交易证书的证书颁发机构(CA)来实现共识协议和安全性。
根据实施例,BCS实体在具有容器运行时服务128的分层容器实例中运行。这些容器是通过PSM的供应操作而创建和/或起动的。架构-CA容器130是在其中提供BCS架构CA(证书和颁发机构)部件的容器。BCS对等体(容器)132是维护账簿并运行链式码容器以便对账簿部件执行读/写操作的BCS对等网络实体在其中运行的容器。BCS排序容器134是提供服务以为所有通道将交易排序到区块链的BCS排序者在其中运行的容器。BCS链式码执行容器139是由对等实体创建和起动的容器。在该容器中,链式码执行单元与父对等实体通信并执行资产和交易指令的编码以修改区块链中的资产。
根据实施例,BCS链式码构建器容器140是由对等实体创建和起动的容器。在该容器中,安装和部署链式码构建环境,并在其中构建链式码执行单元。客户端侧架构SDK 106提供用于访问BCS的功能。区块链云服务还利用事件中枢云服务150、云存储服务152和身份服务154。Oracle存储云服务用作BCS的存储服务。
根据实施例,Docker/Weave(坞/织体)141是容器服务。容器提供了一种以可在共享操作系统上隔离运行的格式来打包软件的方式。与VM不同,容器不捆绑整个操作系统——而是需要使用使软件工作所需的库和设置。这实现高效、轻量、自包含的系统,并保证软件始终同样地运行,无论它在何处部署。
根据实施例,每个BCS实例包括不同类型的节点。BCS实例中可以有少数(例如,0或多个)至多个对等体节点。在BCS实例中可以有少数(例如,0个)至多个排序者节点。BCS实例中有1至多个架构-CA节点,每个VM一个。BCS网关:BCS实例中可以有少数(例如,0个)至多个BCS网关。BCS控制台也是BCS实例的部件。BCS实例中只有一个BCS控制台。
根据实施例,BCS管理服务器(控制台)136是BCS的部件,其向BCS栈实例提供丰富的监视、管理和视图功能,如下面更详细描述的。BCS网关(REST代理)138是BCS的新部件,并且向客户/客户端提供REST API接口,并且用于访问架构以执行交易,如下面更详细描述的。
根据实施例,在公共访问客户端侧100上,PSM控制台UI 102允许管理平台服务管理器。BCS控制台UI 104允许控制BCS管理服务器。各种不同的客户端类型可以访问BCS服务,包括架构SDK客户端106、BCS REST客户端108和架构成员资格客户端110。
根据实施例,可以为上面列出的每种类型的容器定义蓝图,作为单独的服务类型。Oracle云堆栈管理器使用蓝图自动将所有单个服务类型供应到单个堆栈单元中。为每个BCS实体定义服务类型的好处是易于升级和维护各种运行实体。容器运行时服务分层服务支持四种类型的操作:CREATE_SERVICE,DELETE_SERVICE,SCALE_SERVICE和Start/Stop/Restart。这些操作可以按服务来应用。
根据实施例,在超级账簿架构中,排序服务部件使用Apache Kafka以崩溃容错方式提供对多个链的排序服务和支持。因而,在BCS云服务中,排序服务部件将使用OEHCS(Oracle事件中枢云服务,该服务将Kafka的强大功能作为受管理的流传输数据平台提供,并且可以与Oracle云的其余部分集成)。
图1C图示了根据实施例的BCS系统。更具体而言,该图示出了BCS运行时。
根据实施例,诸如基于网关的应用103和/或基于架构的应用105之类的客户端可以经由诸如互联网107之类的网络并且经由可以包括云关(Cloud Gate,下面讨论)的诸如负载均衡器LBaaS 126之类的前端与容器运行时服务实例128通信。传入的调用可以包括REST通信(在图中示为较粗的虚线),或者在某些情况下,传入的gRPC通信(在图中示为较浅的虚线)。传入的REST通信可以被引导到网关138(其可以包括REST API/REST代理)、控制台136或代理架构-CA 130(如上面所讨论的)。现在转换/变换为内部调用(gRPC)的REST通信可以与区块链架构/超级账簿的实例(包括代理/对等体132、代理/排序者134、链式码142和链式码构建器140)对接。同时,传入的gRPC通信可以直接发送到例如代理/对等体132和代理/排序者134,以与区块链/超级账簿对接。
根据实施例,一旦容器运行时服务实例内的交易已经发生,容器运行时服务实例然后就可以例如通过REST通信将账簿持久化在云存储装置中,或者可以同样经由REST通信与事件中枢通信。
根据实施例,虽然图中仅示出了一个容器运行时服务实例,但是本领域技术人员将容易理解,可以存在客户端(诸如基于网关的应用103和/或基于架构的应用105)可以经由所描述的BCS运行时与之通信的一个或多个容器运行时服务实例。
图1D图示了根据实施例的BCS系统。更具体而言,该图图示了BCS系统内的部件基数(cardinality),即,部件相对于每个BCS实例的比率。
根据实施例,对于每个BCS实例100a:可以以1:N的比率提供排序者101a;可以以1:N的比率提供架构-CA成员资格102a;可以以1:N的比率提供BCS REST-代理103a;可以以1:1的比率提供BCS控制台104a,并且对等体容器105a可以以1:N的比率存在。
根据实施例,每个对等体容器可以包括可以模拟交易的背书者和可以应用改变到账簿的提交者,该账簿也在对等体容器处提供。
根据实施例,链式码109a可以相对于对等体容器以1:N的比率提供。此外,存储装置106a可以相对于对等体容器和排序者以N:1的比率提供。同样,事件中枢107a可以相对于对等体容器和排序者以N:1的比率提供。IDCS 108a可以相对于架构-CA成员资格以N:1的比率提供。
图1E是根据实施例的用于提供区块链云服务的接口的方法的流程图。
根据实施例,在步骤175处,方法可以在包括至少一个处理器的计算机处提供容器运行时服务的至少一个实例,以及容器运行时服务的该至少一个实例中的分布式账簿部件,其中分布式账簿被供应为区块链云服务,该区块链云服务包括对等体容器、排序容器和链式码容器。
根据实施例,在步骤176处,该方法可以由对等体容器维护区块链账簿。
根据实施例,在步骤177处,该方法可以由排序容器对区块链账簿内的交易进行排序。
根据实施例,在步骤178,该方法可以由链式码容器的链式码执行单元对账簿中的资产进行编码。
根据实施例,在步骤179处,该方法可以将容器运行时服务的该至少一个实例配置为从客户端应用接收传入的调用,该传入的调用请求条目进入区块链账簿。
区块链云服务(BCS)网关
根据实施例,BCS网关(BCSGW)包括使用架构SDK与架构网络通信的网络节点。BCS网关向客户端侧上的客户提供HTTPS RESTful API,该HTTPS RESTful API允许客户端/客户端应用与BCS的架构的元素进行交互。
图2图示了根据实施例的用于区块链云服务系统的网关。如图2所示,最终用户200使用HTTPS与应用适配器202交互以进行认证和授权。应用适配器202使用到诸如云关212(即,LBaaS)之类的LBaaS的HTTPS来访问公共云210。对传入的交易执行负载均衡即服务(LBaaS)。云关212使用HTTPS将交易传递到BCS网关222。BCS网关提供到BCS架构220的接口,其中通信利用gRPC远程过程调用协议。
根据实施例,云关212是反向代理“访问强制执行模块”或“策略强制执行点”,其使用例如OAuth2和OpenID Connect标准来保护web浏览器和REST API资源。IDCS在内部使用云关来保护自己的管理UI和REST API(称为“IDCS web层”)。对于其它应用,云关:OTD作为附加实例部署在称为Non-IDCS(非IDCS)或Standalone(独立)的半支持/临时设置中。
根据实施例,(对于UI客户端)基于OAuth/OpenID的认证支持用户浏览器流,如果HTTP请求包含“用户-代理”报头(这意味着该请求来自如浏览器或移动应用的UI),那么该用户浏览器流被触发。云关提示用户输入凭证(用户名/密码)、核实凭证,然后创建并返回OAuth会话cookie,该cookie可以被来自浏览器的后续HTTP请求使用。(对于编程客户端)基于OAuth/OpenID的认证还支持资源服务器流。如果HTTP请求包含认证“承载者(bearer)”令牌报头,那么会触发这个流。云关验证令牌以进行认证。
根据实施例,对于HTTP基本认证,对于每个HTTP请求,凭证(用户名/密码)必须被包括在HTTP授权“基本”报头中。云关为每个HTTP请求验证凭证。此方法适用于UI客户端和编程客户端二者。
根据实施例,多令牌流是一种覆盖某些HTTP请求的自适应方法。如果HTTP请求包含授权“基本”报头,那么云关将执行HTTP基本行为。如果HTTP请求包含授权“承载者”报头,那么云关的行为与资源服务器流相同。
在实施例中,BCS控制台浏览器客户端利用用户浏览器流。在实施例中,对于BCS控制台和网关编程客户端,系统可以使用云关多令牌认证方法。编程客户端可以经由HTTP基本认证来调用BCS REST API。
根据实施例,BCS网关222与对等体224通信,对等体224是维护账簿和运行链式码容器以便对账簿执行读/写操作的网络实体。对等体由成员拥有和维护。BCS网关222和对等体224与(一个或多个)排序者226通信。排序者提供排序服务。排序者是将交易排序到区块中的所定义的节点集合。排序服务独立于对等体进程而存在,并以先来先服务的方式针对网络上的所有通道对交易进行排序。对等体224和(一个或多个)排序者226与架构证书颁发机构228通信。BCS网关222还提供对BCS管理服务器/控制台230的访问。
根据实施例,BCS部署在诸如Oracle云之类的云系统上。网关可以在容器运行时服务容器中运行。网关是无状态的。可以通过杀死旧网关并起动新网关来更新网关。BCS网关可以通过RESTful协议允许客户查询或调用架构链式码。BCS网关允许客户端通过HTTPS/RESTful服务访问Oracle云中的架构网络。BCS网关是使用架构SDK与架构网络通信的网络节点。架构内的通信使用gRPC作为通信协议。在客户端侧,BCS网关向客户提供HTTPS/RESTful API。REST API允许客户端使用架构SDK调用架构内的功能。
根据实施例,可以与架构用户以一对一的关系提供网关。所有网关用户都属于一个组织,所有网关用户在一个网关中映射到一个架构用户。一个网关仅配置一个架构用户。
根据实施例,IDCS发布网关证书和网关用户(“应用适配器”)证书。这些证书是用组织CA签署的。网关和网关用户可以与组织CA一起部署,因此它们可以使用HTTPS进行相互验证。
根据实施例,每个最终用户通过“应用适配器”访问BCSGW。有3层认证。最终用户200可以由应用适配器202进行认证。应用适配器202可以由BCS网关222用客户端证书进行认证。BCS网关可以由架构网络220中的对等体224和排序者226认证。
根据实施例,一个容器运行一个tomcat服务器,部署一个BCS网关,映射到一个架构用户。多个应用适配器可以连接到一个网关。
根据实施例,不同的网关可以与不同的架构用户相关联。连接到一个网关的应用适配器的最终用户可以映射到一个架构用户。
根据实施例,BCSGW在Oracle云中运行,配置由BCS控制台使用JSON文件设置。管理员(admin)用户可以将部分对等体、通道和链式码发布到网关。管理员用户通过控制台起动网关。网关在引导之后不刷新配置。管理员用户可以为链式码设置背书者。该策略对最终用户不透明,网关不检查链式码策略。
根据实施例,BCSGW由BCS控制台起动。BCS控制台创建BCSGW配置文件,并使用BCSGW包起动新网关。在起动后,起动脚本检查BCSGW配置文件,修改Tomcat的配置文件(例如,Tomcat配置文件),然后起动Tomcat。Tomcat为每个通道起动用于BCSGW的线程(线程读取配置文件),它可以起动通道对象,并创建与排序、对等体、事件中枢的连接。不同的通道将与排序/对等体/事件中枢具有不同的连接。这里的事件中枢是对等体的第二端口。网关连接到这个端口以获取交易的结果。Tomcat servlet(小程序)容器可以侦听并等待客户端请求。对于链式码查询方法,BCSGW将请求发送给该通道的所有对等体,并仅使用第一个结果。对于链式码调用方法,BCSGW将请求发送给该通道的所有背书者,如果其中一个返回成功,那么BCSGW将交易发送给该通道的所有排序者。
根据实施例,异步API被支持。对等体可以打开两个端口,一个端口用于事件交换。网关可以连接到对等体的事件端口。对于一个通道,网关只需连接到一个事件端口。普通客户端API是同步的。交易可以花费几秒钟,客户端需要等待响应。向客户端发送异步事件不在V1计划中。除了同步交易API之外,网关还提供异步交易API“asyncinvoke”。
在实施例中,异步API可以以这种方式工作。在检查客户端请求的参数之后,网关将交易ID返回给客户端。客户端可以知道交易已起动但尚未完成。网关将起动后台线程以继续交易中的处理。客户端可以跟踪未完成的交易。网关可以为客户端提供用于使用交易ID查询交易状态的“交易”API。
根据实施例,可以支持客户端登录。BCSGW可以支持HTTPS协议,并且不允许不安全的HTTP访问。BCSGW使用证书来信任应用适配器或SALT。应用适配器可以认证最终用户。Tomcat需要设置为使用HTTPS客户端证书认证。密钥库文件包括BCSGW证书和CA证书以验证客户端由BCS控制台提供。BCS网关为客户端访问提供BCS REST接口。
持久化——存储云
根据实施例,超级账簿架构将账簿的区块存储在本地文件系统中,并且其它运行时数据(如区块索引、世界状态、历史和账簿提供器)存储在LevelDB中,LevelDB也存储在本地文件系统中。在容器运行时服务中,容器文件系统是临时(ephemeral)的,这意味着当由于某些硬件故障容器停止并且在新VM上重新起动新容器时——文件系统内容可能会丢失。考虑所有容器丢失的情况,那么无法恢复账簿。因此,账簿数据必须存储在容器运行时服务容器之外。因此,以对象存储服务的形式提供持久化解决方案,以供上述超级账簿架构的部件使用。
根据实施例,相应地在BCS中,持久化解决方案利用存储云服务(例如,Oracle存储云服务)。账簿被备份到对象存储库。账簿区块写入容器文件系统,但也备份到对象存储装置。索引和世界状态使用容器文件系统记录,但如果重新起动容器,那么可以从存储云服务恢复。Oracle存储云是一种基础设施即服务(IaaS)产品,为文件和非结构化数据提供企业级大规模对象存储解决方案。
图3图示了根据实施例的区块链云服务系统的持久化。如图3中所示,容器运行时服务实例300包括多个容器。容器包括例如排序容器302、304,其具有账簿/区块链312、314。账簿/区块链312和314通过REST接口备份到对象存储装置320。对象存储装置320可以是例如云存储服务。
根据实施例,对象存储装置用于持久化每个排序者的账簿。排序者向对等体递送区块的当前机制如下。首先,对等体通过发送其版本(最后的区块编号)递送对来自排序者的新区块的请求。接下来,排序者检查对等体的版本,a)如果它大于排序者,那么向对等体返回错误,它指示排序者中的账簿丢失,并且无法从EventHub中恢复。在这种情况下,排序者无法继续恰当地工作。b)如果对等体的版本小于排序者,那么排序者从RAM中或者本地文件中的本地账簿中检索区块,然后发送回对等体。c)如果它们具有相同的版本,那么排序者会阻塞,直到有新的区块可用。当从EventHub中剪切的新区块数据准备就绪时,排序者会将其放入本地区块文件或RAM中,然后递送线程从账簿读取这个区块并将其发送回对等体。最后,对等体获取这个区块,并将其提交到本地账簿。接下来,账簿的最新版本可以被广播给其它对等体。
根据实施例,根据上述处理,排序者或者EventHub可以持久化整个区块。如上所述,EventHub具有时间受限的保留(retention)。如果EventHub可以这样做,那么排序者可以将账簿类型设置为RAM或文件,一旦排序者重新起动并且账簿丢失,它就可以重放来自EventHub的记录并将批处理消息剪切成区块,然后可以重新构建账簿。如果EventHub仅支持有限的保留期,那么,一旦排序者重新起动并且账簿丢失,它就无法正确重新构建账簿,因为EventHub中的第一条记录不是账簿中的真实的记录。在这种情况下,排序者无法起动旧通道,因为带有通道信息的第一个区块丢失,并且版本号(最后的区块编号)也不正确。
然后,根据实施例,每个排序者可以将每个区块持久化到Oracle存储装置,同时将所有通道ID也保存到存储装置中的对象。在对等体上,只持久化起源(genesis)区块,因为它具有通道信息。对于其它区块数据,对等体可以在其丢失后从排序者中检索它。
根据实施例,容器运行时服务实例300还可以包括对等体容器306、308,对等体容器306、308包括账簿316、318和索引326、328。存在由对等体生成的五种类型的运行时数据:交易日志(区块文件);区块文件索引(LevelDB);账簿提供者(LevelDB);状态数据库(LevelDB或couchdb);历史(LevelDB)。所有交易数据都作为本地文件中的链接区块存储在交易日志中,它必须被持久化到Oracle存储云服务。账簿提供者DB(数据库)在LevelDB中保留所有账簿ID和恢复状态。账簿ID是识别对等体所属通道的唯一ID。它必须被持久化到Oracle存储云服务。对于其他方,对等体可以在运行时自动恢复它,因此将它们保持在本地文件系统中。
根据实施例,Oracle存储云服务提供用于向对象上传/从对象下载文件的RESTAPI。当生成新区块时,首先,它将像以前一样写入本地区块文件,区别是每个文件一个区块。接下来,这个区块文件将作为对象上传到Oracle存储装置。如果失败,那么本地文件中的改变将回滚,并且将向调用者返回错误。
根据实施例,对于区块文件索引,当排序者更新最新检查点时,可以首先将该信息持久化到Oracle存储装置,然后更新本地LevelDB。如果操作的事件失败,那么可以将错误返回给调用者。这个信息将用于区块文件索引的恢复。在Oracle存储装置中,每个对等体和排序者都有唯一的容器名称,该唯一的容器名称是msp id和节点id的组合。对象名称是以通道名称为前缀的区块文件的名称。有关更多详细信息,请参见Oracle存储装置中的名称约定部分。
根据实施例,可以提供保存账簿提供者DB到Oracle存储装置的选项。对于账簿提供者DB,整个LevelDB可以一被更新就被复制到Oracle存储云服务。这个文件非常小,并且更新不频繁,因此可以忽略关于复制的开销。当容器重新起动时,可以从Oracle存储云服务下载它(如果存在)。如果排序者是从新容器重新起动的,那么它将首先从存储装置对象下载通道ID,然后通过通道ID从存储装置获取最新检查点。接下来,从第一个区块到最后一个区块起动恢复区块索引。在此期间,将逐个下载区块文件。之后,排序者开始恢复状态DB和历史DB。如果对等体从新容器重新起动,那么它将首先下载账簿提供者DB,然后它可以获得所有账簿ID。接下来,通过账簿ID从存储装置获取相关的起源区块。对等体以起源区块中的配置启动,并且向排序者发送获取其它区块数据的请求。在对等体获取这些区块之后,它开始恢复区块索引、状态和历史DB。
根据实施例,本地区块文件充当读取高速缓存。查询将首先从本地读取数据,如果它不存在,那么从对象存储装置下载。除了账簿之外,还需要将链式码的源代码持久化到Oracle存储装置。在当前架构中,编码的源代码将在安装链式码之后存储在对等体上。对等体将针对每个调用或实例化检查链式码容器,如果容器不存在,那么对等体将从源代码重建它。因此,可以将其上传到Oracle存储装置以进行每个链式码安装,并在对等体从盘故障重新起动时下载它。
BCS:基于SDK的配置文件操作和供应后(post-provision)部署
根据实施例,配置文件和部署函数在部署或更新应用时部署、发起生成、更新和获得关于应用的配置,包括对等体、排序者、CA服务器和链式码。这些函数驻留在BCS控制台(Node.js)和架构容器(对等体/排序者/链式码容器)中。这些函数将根据UI的请求获取/更新配置,并在需要时调用SDK API以激活配置更改。作为BCS控制台后端的一部分的部件与BCS控制台UI、IDCS后端SDK和所有BCS应用交互,以根据请求为UI操作获取/更新配置提供SDK。该部件还有助于供应BCS应用。BCS供应部件将BCS应用部署到使用PSM创建的VM的Docker容器中。这个特征将实现用于让BCS控制台UI和BCS供应部件在供应后阶段获取或更新BCS应用配置和部署的SDK API。在供应后阶段,供应系统将在Docker/Swarm下部署BCS应用,诸如CA服务器、排序者、对等体。当VM起动时,它将调用启动脚本来执行供应后和VM初始工作。
根据实施例,为包括对等体、排序者、架构CA和BCS网关的架构部件提供配置文件。BCS应用包、配置和链式码存储在客户的存储云服务中。
根据实施例,供应系统应当完成所有资源分配。资源包括VM、网络和存储装置。
根据实施例,供应系统应当将所有资源分配信息保存到存储服务。该信息包括VM编号及其网络地址/账户凭证、每个VM中的BCS应用编号及其类型、公共和内部IP。并且还应当有用于容器的足够的内部IP地址(可在VM之间访问)。
根据实施例,当BCS供应部件已完成供应工作时,VM启动脚本将起动,然后调用swarm部署容器运行时服务,并且在容器内部,容器startup.sh脚本执行发起操作。
根据实施例,BCS控制台将在其起动时从存储服务获得配置,并且将用户操作的输入从UI保存回存储服务,然后将重新起动命令发送到swarm。
根据实施例,所需的安全证书可以保存在IDCS中。可替代地,可以从IDCS检索安全证书。
根据实施例,BCS控制台后端可以利用swarm与BCS应用通信。
根据实施例,当BCS容器运行时服务启动时,BCS应用可以搜集配置细节以决定其应用类型(对等体或链式码容器或其它),然后加载所需的配置。
根据实施例,这个部件更新配置并提供BCS应用启动shell代码。BCS获取/更新配置文件操作可以分为几个部分。首先,BCS控制台在起动时将从存储装置中获取配置,并在需要更新时将配置从BCS控制台保存到存储装置中(shell和Node.js)。当BCS容器运行时服务启动时,启动脚本(在每个Docker容器中)将首先起动,然后获取其应用类型的配置,并从IDCS(shell)获取应用证书。当BCS控制台UI重新起动BCS应用时,它向Docker/Swarm发送消息以重新起动容器中的应用。
根据实施例,BCS控制台是无状态的,并且当被起动时,可以搜集所有BCS实例配置并连接到BCS应用并监视它们。配置将经由后端API从存储服务获得。当任何配置改变时,BCS控制台将调用后端API以将配置保存回存储服务并重新起动相关的应用。当客户经由BCS控制台UI更改配置项时,UI将配置编码为键/值数据,后端代码将其变换为文件并保存到存储服务中。BCS控制台可以监视、起动和停止BCS应用。起动和停止命令使用Docker/Swarm API来实现这个功能。
架构网络的部署
根据实施例,架构网络包括以下实体:对等体、客户端、排序服务和促进这些实体之间的通信的协议集合。组织是构成架构网络的利益相关者的逻辑实体或公司。架构网络有多个参与组织。成员:拥有用于网络的唯一根证书的法律上独立的实体。诸如对等体节点和应用客户端之类的网络部件将链接到成员。每个组织可以具有一个或多个成员。一个组织可以同时贡献于排序者和对等体,或仅贡献于排序者,或仅贡献于对等体。
根据实施例,部署架构网络的第一步是定义参与者。这一步在架构网络的带外完成。架构网络的所有参与组织协商并完成网络的组成,包括,例如,哪些组织贡献于排序者节点,以及哪些组织贡献于对等体节点。贡献于排序者节点的每个组织都会发布其排序者服务器的根证书。贡献于对等体节点的每个组织都会发布其对等体服务器的根证书。具有客户端的每个组织都会发布其客户的根证书。客户端可以在一个组织中与对等体分离到不同的成员。
根据实施例,作为示例,四个银行(银行1、银行2、银行3和银行4)已经决定使用排序服务来部署区块链网络,该排序服务将包括由银行1和银行2拥有的排序者节点。并且银行1在这个网络中仅贡献于排序者。每个银行都是架构网络的组织:银行1有1个成员:排序者(root_cert_1);银行2有3个成员:客户端(root_cert_21)、对等体(root_cert22)、排序者(root_cert23);银行3有2个成员:客户端(root_cert31)、对等体(root_cert32);银行4有2个成员:客户端(root_cert41)、对等体(root_cert42)。
根据实施例,在定义参与者之后,为排序者和对等体生成证书。每个排序者或对等体需要(私钥,签署的证书)对来标识它自己。每个成员可以利用其根证书来配置和起动其自己的架构CA服务器,并使用CLI或SDK请求CA服务器为这个成员的每个排序者/对等体服务器生成(私钥,签署的证书)。BCS提供可以提供证书的架构CA服务器。但是,架构CA服务器不是生成证书的唯一方法。用户可以使用其它CA系统来执行相同的操作。因此,架构CA服务器不是架构网络中的强制性部件。
根据实施例,在为排序者和对等体生成证书之后,通过创建系统通道来引导架构网络。排序服务只有一个系统通道(对于一个架构网络也是如此),并且它是要被创建(或更准确地说是被引导)的第一个通道。系统通道定义架构网络的组成:
·一个排序服务
o一个或多个排序者组织。每个组织的
·MSPID
·证书
·排序服务属性(例如类型-solo或Kafka、排序者地址、批的尺寸/超时)
·策略(其可以创建通道等)
·一个或多个联盟(consortium)。每个联盟包含
o一个或多个对等体组织。任何想要参与这个架构网络的对等体组织必须在其中一个联盟中定义。每个组织的
·MSP ID
·证书
·锚对等体
根据实施例,在架构网络系统通道被引导之后,为系统通道创建起源区块(链中的第一个区块)。排序者服务管理员为系统通道生成起源区块。起源区块可以通过工具configtxgen(genesismethod=file)生成,或者在排序者启动期间(genesismethod=provisional)生成。当使用configtxgen工具生成起源区块时,配置文件configtx.yaml可以组成为输入。这个文件包含以下信息:架构网络中所有排序者组织的根证书;所有对等体组织的根证书;排序服务属性:排序者类型、地址、批超时、批尺寸、kafka;策略;通道读取器:认证和验证通道递送请求;通道写入者:认证和验证通道广播请求;链创建者:评估链创建请求;管理员:认证和验证通道重新配置请求;
根据实施例,排序者服务管理员使用配置文件和起源区块来起动排序者服务器。这使用起源区块创建系统通道。起动排序者服务器需要配置文件orderer.yaml:监听地址/端口、账簿类型等;LocalMSP(私钥,签署的证书)。提供排序服务的每个组织都会起动其排序者服务器(不应当指定起源区块)。
根据实施例,贡献于对等体节点的每个组织为每个对等体准备配置文件(默认位置/etc/hyperledger/fabric/core.yaml)以指定:LocalMSP(私钥,签署的证书)以标识对等体;以及对等体属性:监听地址/端口、引导对等体、闲聊(gossip)属性等。然后起动对等服务器。
根据实施例,在起动排序者和对等体之后,通道管理员(其具有创建通道的特权)使用架构CLI或SDK来请求排序者创建具有以下输入的通道:一个联盟(必须已在系统通道中定义);以及联盟中的一个或多个对等体组织。每个参与组织使用架构CLI或SDK将其对等体中的一些连接到新创建的通道。
示例:在BCS上部署架构网络
图4图示了BCS上的架构的示例性部署。
根据实施例,更具体地,该图和描述描述了在BCS上部署架构网络的步骤。在这个示例中,四个实体A、B、C和D想要创建和加入架构网络。这四个实体离线讨论并决定各个实体的责任。每个实体在OPC上创建一个或多个BCS实例。
根据实施例,实体A提供排序者和对等体两者。实体A创建两个实例:用于排序者的Orderer_Org1(排序者_组织1)401和用于对等体的Peer_Org1(对等体_组织1)421。实体A还负责创建架构网络(注意:只有排序者才能创建架构网络)。排序服务400包括Orderer_Org1(排序者_组织1)401和Orderer_Org2(排序者_组织2)402以及Kafka集群410。
根据实施例,实体B提供排序者和对等体两者。实体B创建两个实例:用于排序者的Orderer_Org2 402和用于对等体的Peer_Org2(对等体_组织2)422。
根据实施例,实体C仅提供对等体。实体C创建实例Peer_Org3(对等体_组织3)423。
根据实施例,实体D仅提供对等体。实体D创建实例Peer_Org4(对等体_组织4)424。
根据实施例,每个BCS实例的管理员从BCS控制台收集当前组织的CA证书和管理员证书。每个对等体组织的管理员识别当前组织的锚对等体并收集锚对等体的IP/端口。这四个实体离线地互相交换所有收集到的信息。
根据实施例,从BCS控制台,Orderer_Org1的管理员通过使用在前一步骤中收集的以下信息创建系统通道来创建架构网络:每个组织的CA证书和管理员证书;以及每个对等体组织的锚对等体。后端工作可以包括调用架构工具来创建起源区块以及配置排序者,从而使用起源区块创建系统通道。
根据实施例,从BCS控制台,每个对等体组织的管理员通过更新所有对等体节点的配置以添加所收集的其它组织的CA/管理员证书并重新起动所有对等体节点来加入架构网络。
根据实施例,在系统中,提供了一种允许新组织加入现有架构网络的方法。此外,可以提供用户友好的方法来促进参与者之间的通信以便创建/加入架构网络,例如,覆盖初步形成架构的离线动作。
链式码(智能合约)容器
根据实施例,并且如上面所讨论的,链式码是定义一个或多个资产的软件,以及用于修改(一个或多个)资产的交易指令。链式码强制执行读取或更改键值对或其它状态数据库信息的规则。链式码函数针对账簿当前状态数据库执行,并通过交易提议被发起。链式码执行导致键值写入的集合(写入集),其可以提交给网络并应用于所有对等体上的账簿。
根据实施例,为了支持信息的一致更新——以及启用多个账簿功能(交易、查询等)——区块链网络使用智能合约来提供对账簿的受控访问。智能合约可以封装信息、跨架构自动复制信息,并且它们也被编写为允许参与者自动执行交易的某些方面。
根据实施例,超级账簿架构智能合约以链式码编写,并且当区块链外部的应用需要与账簿交互时由该应用调用。在大多数情况下,链式码只与账簿的数据库部件、世界状态交互(例如,查询它),而不与交易日志交互。
根据实施例,超级账簿架构利用Docker引擎来构建链式码、部署它并使其保持运行。本节描述架构体系架构以及如何将其集成到BCS的容器运行时服务分层模型中。
根据实施例,架构如下所述部署和管理用户链式码:第一,在临时的CC env容器中构建链式码。第二,将链式码作为源代码传送到构建器容器中,使用静态链接的所需库进行编译(“Java构建”),然后将二进制文件发送回对等体。静态链接允许实际的链式码容器尽可能小。第三,构建链式码映像和容器并起动它。然后,链式码容器保持运行,直到对等体关闭或通道终止。如果链式码容器崩溃或被杀死,那么,如果映象存在,那么在下次调用时重新起动它。设计是每个对等体和通道有一个链式码Docker容器。链式码明确安装在对等体上。即:并非所有加入通道的对等体都必须安装链式码。
根据实施例,用户可以在容器运行时服务分层容器中部署架构网络,容器运行时服务分层容器具有透明地分发诸如对等体、排序者和链式码之类的部件的能力。链式码运行时环境容器(ccenv)将作为ACLS容器动态起动。链式码二进制文件将保存在云存储装置中,因为本地区块存储装置不被视为可靠的恢复方式。一旦构建,链式码二进制文件就将被上传到云存储装置,以用于在容器崩溃时的恢复目的。
根据实施例,每个链式码交互可以与链式码的各种功能对应。唯一的限制是在它被实例化之前不能调用或查询链式码。此外,在任何调用时,如果链式码容器不能被发现为正在运行,那么重新起动该链式码容器。
图5图示了根据实施例的链式码体系架构。更具体而言,该图图示了根据实施例的链式码体系架构,其允许客户端530在容器运行时服务环境500中安装链式码并运行交易。步骤1,客户端530将链式码源代码安装到对等体1,510。首先在临时的CC env容器中构建链式码。当客户端530执行“安装”时,它将:起动构建器容器(该容器将自动起动构建器代理),等待构建器容器完成初始化,经由对等体将链式码源代码发送到构建器容器(步骤2)。构建器代理将构建链式码(Java构建)。链式码作为源代码被传送到构建器容器中,使用静态链接的所需库进行编译(“Java构建”),然后将二进制文件发送回对等体。静态链接允许实际的链式码容器尽可能小。一旦构建,链式码包(tgz文件)就将被上传到云存储装置560(步骤3)。构建器代理将云存储位置发送给对等体以供稍后引用(步骤4.2)。
根据实施例,对等体510然后将使用PSM REST API将CC env作为ACLS(访问控制列表)容器520起动。构建链式码映像和容器并起动它。然后,链式码容器保持运行,直到对等体关闭或通道终止。对等体510将链式码ID、自身IP(用于链式码注册)和云存储位置传递到ACLS容器起动(步骤4.1)。对等体将等待链式码起动,或者在设定的时间段后超时。ccenv将起动链式码。在启动后,链式码将自身向对等体注册(步骤4.3)。链式码将准备好在交易中调用(步骤5),这些交易将使用在注册时建立的连接来执行。
根据实施例,构建器容器550包括简单的REST型服务器。构建器容器550包括构建器代理553。构建器容器550启动并侦听链式码构建请求。当构建器容器550接收到构建请求(例如:具有base64编码的源代码作为主体的POST调用)时,它对源代码进行base64解码并将链式码源代码保存在本地文件系统中。然后,构建器代理553对源代码执行“Java构建”。如果“Java构建”成功,那么构建器代理553打包二进制文件并上传到云存储装置560。构建器代理还将链式码位置返回给对等体。如果“Java构建”失败,那么代理将错误和原因返回给对等体。
BCS管理控制台
根据实施例,如上所述,BCS的每个实例可以包括管理控制台,管理控制台可以用于管理和监视BCS实例,包括BCS网关、BCS节点和BCS通道。
根据实施例,管理控制台部件促进并自动化BCS的供应、监视和配置。管理控制台部件可以包括在脚本运行时环境(例如Node.js)中运行的web应用。该web应用可以构建在图形用户界面框架和web框架上;并且可以包括多个自定义功能或API,以与BCS实例中的各种节点或服务通信。该web应用可以将来自BCS实例中的各种节点或服务的信息填充到视图对象中,以便在控制台用户界面中显示。管理控制台部件还可以为管理员提供多个功能,以起动、停止和更新BCS实例中的一个或多个节点。一组管理REST API可以由脚本运行时环境提供,或者可以由脚本运行时环境访问,以支持与web应用提供的功能相同的功能。
根据实施例,系统可以通过由web应用提供的web界面或通过使用一组管理RESTAPI编写的自定义REST客户端应用来促进对相关联的BCS实例的监视和管理。
根据实施例,管理控制台可以使BCS管理员能够管理BCS实例的多个部件,包括一个或多个对等体节点、一个或多个排序者节点、一个或多个架构-CA节点、一个或更多BCS网关节点、通道和一个或多个链式码。
根据实施例,管理BCS部件可以包括执行以下操作中的一个或多个:起动部件、停止部件、添加部件、移除部件、查看/编辑部件的属性、查看部件的性能度量,以及查看部件的日志。
图6图示了根据实施例的用于提供管理控制台的系统。
根据实施例,如图所示,BCS管理控制台136可以作为容器运行时服务128中的BCS实例的部件提供。BCS管理控制台可以是在脚本运行时环境605中运行的web应用,其可以表示由Node.js提供的运行时环境。
根据实施例,管理控制台可以包括多个后端API 610,例如,架构节点服务开发工具包(SDK)611、多个架构自定义功能/API 613,以及多个容器运行时服务API 615。SDK、自定义功能/API和容器运行时服务API可以用于与架构网络601通信,架构网络601可以包括分布式流传输服务(例如,Kafka)603。管理控制台还可以包括视图对象623,视图对象623可以包含需要在BCS控制台UI 104或REST客户端604中显示的信息,或者包含需要从BCS控制台UI或REST客户端传递到管理控制台的信息。架构节点SDK 621可以操作,以映射来自架构网络的信息与BCS控制台UI或REST客户端的信息。
根据实施例,BCS管理控制台可以包括多个客户端API 622,多个客户端API 622可以由BCS控制台UI或REST客户端使用来供应BCS云服务以及管理所供应的BCS云服务。管理所供应的BCS云服务可以包括起动和停止对等体节点、排序者节点、架构-CA节点和BCS网关节点;以及添加和移除对等体节点、排序者节点和BCS网关节点。
根据实施例,BCS管理控制台还可以包括GUI框架(例如,JET)617和web框架(例如,Express)619。GUI框架可以提供可以在管理控制台web应用中使用的各种用户界面(UI)部件和元素。例如,这些UI部件和元素可以用于创建表单、收集数据和可视化数据。web框架可以用JavaScript编写,并且可以提供web应用框架,该web应用框架包括开发web和移动应用的健壮的特征集合。
图7A-7B图示了根据实施例的BCS控制台UI中的用户界面的示例。
根据实施例,如图7A中所示,BCS摘要711可以显示在控制板(dashboard)中。该摘要可以包括组织的数量、对等体的数量、排序者的数量、通道的数量和链式码的数量。
根据实施例,可以显示BCS实例的健康信息713。可以可视地显示和数字地显示该健康信息。样本UI还可以显示交易执行情况714和账簿摘要715。
根据实施例,图7B图示了用于BCS实例中的所有节点的信息。例如,样本UI示出了总共5个节点,包括2个对等体、1个排序者、1个架构-CA和1个REST代理(在BCS网关节点内)。对于每个节点,摘要UI 717显示节点的名称723、节点的路由信息725、节点的类型729以及节点的状态信息731。样本UI包括用于让管理员添加节点的按钮721,以及用于过滤节点的一个或多个下拉列表719。
节点管理
根据实施例,可以存在两个可以使用管理控制台来管理BCS实例的实体:BCS管理员和BCS用户。每个BCS实例只有一个BCS管理员账户。该BCS管理员账户可以在创建BCS实例时被创建。BCS管理员可以与架构-CA管理员捆绑在一起(即,BCS管理员从BCS控制台或通过BCS管理REST API执行的所有操作都使用架构-CA管理员身份)。可以有多个BCS用户账户,BCS用户账户可以由BCS管理员通过注册架构-CA身份来创建。
根据实施例,BCS实例中的节点可以显示在一个web页面中。管理控制台可以支持两种模式。在第一种模式下,每个节点的名称、类型、访问URL和状态可以被呈现为列表。在第二种模式下,每个对等体参与的通道可以在图中呈现。
另外,根据实施例,管理控制台可以使BCS管理员能够起动和停止对等体节点、排序者节点、架构-CA节点和BCS网关节点;以及添加和移除对等体节点、排序者节点和BCS网关节点。架构CA节点无法被添加或移除。
根据实施例,当添加节点时,BCS管理员可以设置节点的属性。新添加的节点可以作为添加操作的一部分而自动起动。当节点被移除时,该节点将被停止并从BCS实例中移除。
根据实施例,BCS控制台UI可以列出活动对等体节点参与的所有通道,以及安装在活动对等体节点上的所有链式码。
根据实施例,当管理对等体节点时,BCS管理员可以将活动对等体节点加入现有通道,并查看和编辑活动排序者节点的属性。BCS用户可以查看活动对等体节点的属性中的一些属性。
另外,根据实施例,可以在BCS控制台UI中显示活动对等体节点的快照性能度量,诸如:存储器使用情况、所使用的CPU百分比、网络I/O和盘I/O。
根据实施例,当管理排序者节点时,BCS管理员可以查看活动排序者节点的日志、查看和编辑活动排序者节点的属性。BCS用户可以查看活动对等体节点的属性中的一些属性。与管理对等体节点类似,BCS管理员可以查看活动排序者节点的以下快照性能度量:存储器使用情况、所使用的CPU百分比、网络I/O和盘I/O。
根据实施例,当管理架构CA节点时,BCS管理员可以查看和编辑活动架构CA节点的属性、从活动架构CA节点获取CA证书,以及查看活动架构CA节点的日志。另外,BCS管理员可以查看活动架构节点的以下性能度量:存储器使用情况、所使用的CPU百分比、网络I/O和盘I/O。
根据实施例,如上所述,管理BCS网关节点可以包括添加或更多地移除BCS网关节点。由于所允许的BCS网关节点的最大数量是在实例化特定BCS实例时指定的,所以可以被添加到BCS实例的BCS网关节点的数量受所配置的BCS网关的最大允许数量的限制。
根据实施例,每个BCS网关节点可以具有名称,该名称是该网关节点的全局唯一身份。将来配置BCS网关节点时可以引用该名称。也可以在创建BCS网关节点时确定并显示网络地址。
根据实施例,当配置BCS网关节点时,BCS管理员可以定义BCS网关配置文件,并引导BCS网关节点。在供应BCS实例时,可能没有创建任何通道或部署任何链式码。照此,直到在部署一个或多个链式码并且通过管理控制台定义有效的BCS网关配置时,BCS网关节点才起作用。
根据实施例,对于每个BCS网关节点,可以存在配置页面。在某些实施例中,可以在配置页面中配置以下项:
1)通道:选择通过当前网关节点暴露哪些通道。
2)链式码:从每个通道中所有实例化的链式码的列表中选择哪个实例化的链式码以暴露。
3)背书者:对于每个链式码,定义背书对等体。
4)根据如上所述的设置生成BCS网关配置。一旦为BCS网关生成了有效的配置文件,就可以起动该网关。
根据实施例,BCS控制台允许使用列表视图功能来查看BCS网关属性。在列表视图中,为每个BCS网关提供以下信息:
1)名称:当创建网关时指定的全局唯一名称。
2)架构身份名称:每个BCS网关可以与架构客户端身份关联,该身份在创建BCS网关时被注册和登记。BCS网关采取的所有动作(例如,调用、查询)可以被授予此架构客户端的权限。
3)网络地址:具有公共互联网网络地址的接入点。
4)状态:开启或关闭
根据实施例,管理控制台还允许BCS管理员查看活动BCS网关节点的日志,并查看以下BCS网关度量:
1)已连接的客户端:客户端名称、地址、登录时间等。
2)当前交易信息:当前交易信息可以与状态信息(即,这个交易所处的状态)一起可用。当前交易信息可以在调试挂起的交易时有用。
3)交易统计信息:交易统计信息通过管理控制台UI可以是可用的。例如,交易统计信息可以包括已完成的交易的数量、接收的事件通知的数量以及递送的事件通知的数量。
4)存储器使用情况。
5)CPU百分比。
6)网络I/O。
7)盘I/O。
通道管理
根据实施例,BCS用户可以列出当前BCS实例参与的所有通道。BCS管理员可以利用作为输入的通道名称、联盟名称和一个或多个组织名称来创建通道。还可以显示输出以指示通道创建的成功或失败。
根据实施例,BCS用户可以查看通道的参与节点和组织。管理控制台可以支持两种视图模式:列表模式和拓扑模式。在列表模式下,参与的本地节点和外部组织(由其锚对等体表示)可以被列出为列表。在拓扑模式下,参与的本地节点和外部组织(由其对等体表示)可以被表示在拓扑图中。
根据实施例,BCS管理员可以查询通道中的对等体的账簿。账簿可以由交易区块的列表组成,每个区块可以包含区块ID、先前的散列、数据散列、时间戳、交易ID列表、动作(1..n)、链式码ID、链式码提议、响应(r/w集合、事件、成功或失败),以及一个或多个背书者。还可以显示以下统计数据:区块的数量以及调用的数量。
根据实施例,BCS管理员可以列出在通道中实例化的所有链式码。列出的项可以包括链式码ID和版本。BCS管理员还可以查看实例化的链式码的以下信息:Path(路径),它是由实例化的交易指定的路径;以及实例化自变量。
根据实施例,BCS管理员可以升级通道中的实例化的链式码。升级操作可以采用以下输入:目标背书对等体,具有安装的新版本的链式码;一个或多个排序者;链式码版本;以及自变量,这些自变量可选地可以是特定于链式码的String(字符串)数组自变量。升级操作的输出可以是成功或带有错误消息的失败。
链式码管理
根据实施例,BCS管理员可以列出安装在当前BCS实例的任何对等体上的所有链式码。列出的项包括链式码ID和版本。此外,BCS管理员还可以查看已安装链式码的以下信息:具有安装的链式码的本地对等体节点,以及已经实例化链式码的通道。
根据实施例,通过管理控制台,BCS管理员可以将链式码安装到一个或多个本地对等体节点。安装操作的输入可以包括:目标对等体;链式码类型,例如golang/Java;链式码ID,其可以是链式码的名称;链式码版本;链式码路径,其可以是链式码的源代码的位置;以及链式码包,这是可选的。安装操作的输出可能是成功,或者带有错误消息的失败。
根据实施例,BCS管理员可以将安装的链式码实例化到通道,其中以下信息作为输入:通道名称;其上安装有链式码的目标背书对等体;排序者;自变量,这些自变量可以是可选的并且可以是特定于链式码的String数组自变量;以及背书策略,该背书策略具有定义的格式或者在没有定义的格式的情况下具有默认格式。
成员资格管理
根据实施例,BCS管理员可以列出当前BCS实例中的所有身份、为当前BCS实例注册新用户/身份、注销身份,以及从当前BCS实例中移除用户。另外,BCS管理员可以查看/编辑身份的以下属性,如表1所示:
表1
根据实施例,管理控制台使BCS用户能够登记或重新登记该用户自身,这可以为用户生成私钥和证书。管理控制台还使BCS管理员能够撤消之前登记的身份,并使得BCS用户能够改变它的密码。
根据实施例,BCS管理控制台可以与相关联的BCS实例的起动或停止一起起动或停止。
根据实施例,可以有两种方式来设置BCS管理控制台的日志级别:从BCS管理控制台本身,以及使用管理REST API来改变运行时的日志级别。
图7C图示了根据实施例的用于提供管理控制台的方法。
根据实施例,如图7C中所示,在步骤781处,提供容器运行时服务。
根据实施例,在步骤783处,在容器运行时服务中提供分布式账簿和管理控制台部件。
根据实施例,在步骤785处,在管理控制台部件中提供多个客户端应用编程接口(API)和多个后端API,其中多个客户端API被配置为由客户端应用调用,其中多个后端API被配置为与分布式账簿的多个节点通信,并且其中多个客户端API在将分布式账簿供应作为区块链云服务时以及在管理区块链云服务时使用多个后端API中的一个或多个后端API。
REST代理服务
根据实施例,如上所述,架构网络内的不同部件之间的通信基于gRPC协议。照此,基于架构网络的BCS实例将要求客户端应用使用架构SDK来调用BCS实例中的链式码。
根据实施例,要求客户端应用使用架构SDK与区块链云服务通信可以部分地抵消将分布式账簿提供作为云服务的益处。例如,益处之一是应当利用互联网连接从任何地方访问云服务。
根据实施例,BCS实例内的REST代理服务部件可以使用用于BCS中的分布式账簿的服务开发工具包(SDK)来与分布式账簿进行通信,并且可以提供REST API供客户端使用来通过链式码进行查询、通过链式码同步或异步调用交易、获取交易状态以及获取BCS代理版本。REST代理服务部件可以对REST调用进行认证,并将REST调用变换成远程过程调用(例如Google远程过程调用(gRPC))以用于与分布式账簿对接。REST代理服务部件还可以提供REST API(其支持与由BCS管理控制台部件提供的功能相同的功能),并为客户端应用提供用户界面以消费BCS实例。
根据实施例,REST代理服务部件可以是分布式账簿中的网络节点,该分布式账簿被实现为BCS、在云环境(例如,Oracle云)中的容器运行时服务容器中运行,并且可以由PaaS管理器(例如,Oracle PaaS服务管理器(PSM)平台)管理。
根据实施例,由REST代理服务部件提供的REST API可以包括使得客户端应用能够访问安装在BCS上的智能合约的REST API,以及用于管理控制台部件的管理性REST API。
图8A图示了根据实施例的用于在BCS实例中提供REST代理服务的系统。
根据实施例,如图8中所示,REST代理138可以包括REST认证器827和协议转换器829。当BCS REST API客户端808向REST代理发送REST调用815时,连接到云关811的LBaaS126可以认证该调用,以确定REST调用是否包括有效用户名称和有效密码以允许REST访问BCS实例。
根据实施例,如果REST调用被LBaaS认证,那么LBaaS可以将REST调用引导到REST代理,REST代理可以将REST调用835转发到IDCS 813以确定客户端应用是否已经被授予相对于BCS的适当的授权。
根据实施例,如果客户端应用被适当授权,那么REST代理可以将REST调用变换/转换成gRPC调用825,并将该GRPC调用发送到架构网络601。REST调用一旦被变换/转换成内部调用(gRPC),就可以与区块链架构/超级账簿的实例对接。
根据实施例,REST调用可以由协议转换器变换,协议转换器可以是基于具有GRPC库833的架构Java SDK 831的Java应用。
根据实施例,如图8中进一步所示,REST代理可以使用REST821如上所述与管理控制台通信,以将由REST API 823提供的一个或多个功能暴露给管理控制台。
图8B图示了根据实施例的用于在BCS实例中提供REST代理服务的系统。
根据实施例,如图8B中所示,REST代理服务部件841可以在容器运行时服务容器838中的web服务器840(例如,tomcat服务器)中运行,并且可以被映射到单个架构用户。另外,REST代理服务部件可以通过由管理控制台部件使用JavaScript对象表示法(JSON)文件提供的用户界面进行配置,并且可以通过管理控制台部件提供的用户界面起动。管理用户可以将对等体、通道和链式码的部分发布到REST代理服务部件。可以自动重新加载对REST代理服务部件的配置的任何更新。
根据实施例,REST代理服务部件(节点)可以由BCS网关起动。启动脚本可以检查BCS网关的配置文件,可以修改托管REST代理服务部件的web服务器的配置文件,然后起动web服务器。web服务器可以为BCS网关起动线程来读取配置文件并为每个通道创建通道对象。对于每个通道,web服务器还可以与排序者、对等体、事件中枢创建连接。不同通道可以与排序者/对等体/事件中枢具有不同的连接。事件中枢可以是对等体的第二端口。BCS网关可以连接到这个端口以获取交易的结果。
根据实施例,web服务器中的servlet容器可以监听并等待客户端请求。对于链式码的查询方法,BCS网关可以随机向链式码的两个背书者发送请求,并且仅使用第一个结果。对于链式码的调用方法,BCS网关可以向通道的所有背书者发送请求,并且如果其中一个返回成功,那么BCS网关可以向该通道的所有排序者发送交易。对等体可以打开两个端口,一个端口用于事件交换。BCS网关可以连接到用于一个通道的对等体的事件端口。
在实施例中,REST代理服务部件可以支持异步API和同步API两者。
根据实施例,对于异步API,REST代理服务部件可以检查来自客户端的请求的参数,并将交易ID返回给客户端,该客户端可以接收指示交易已经开始但是尚未完成的信息。REST代理服务部件可以起动后台线程以继续处理交易。客户端可以跟踪未完成的交易。REST代理服务部件为客户端提供交易API以使用交易ID查询交易状态。
图8C图示了根据实施例的用于在BCS实例中提供REST代理服务的方法。
根据实施例,如图8C中所示,在步骤881处,提供容器运行时服务。
根据实施例,在步骤883处,在容器运行时服务中提供分布式账簿,其中分布式账簿被供应为容器运行时服务中的区块链云服务。
根据实施例,在步骤885处,REST代理服务在容器运行时服务的容器中执行,其中REST代理服务包括多个REST API,该多个REST API被配置为将来自客户端应用的REST调用变换成远程过程调用,以供客户端应用在与分布式账簿通信时使用。
示例REST API
根据实施例,REST代理服务部件可以使用BCS和安装在BCS上的智能合约(链式码)为客户端应用之间的交互提供REST API。提供以下REST API作为示例,以说明区块链云服务的REST代理服务部件的功能。
根据实施例,在调用REST API之前,REST代理服务部件需要启动并运行。可以通过管理控制台检查REST代理服务部件的状态。如果REST代理服务部件未启动和运行,那么可以从管理控制台起动它。
根据实施例,可以调用REST API以与部署在BCS实例中的对等体节点上的智能合约(链式码)进行交互。部署处理可以通过管理控制台的链式码页面完成。部署包括两个步骤:安装(复制到对等体)和实例化(编译、绑定到通道和初始化)。
根据实施例,下面提供的示例REST API假设以下示例链式码被部署到BCS。
表2
通道 | 链式码 | 链式码版本 |
ChannelXYZ | MyChaincode | 1.0 |
表3
根据实施例,如上所示,表2图示了链式码的示例函数,并且表3图示了链式码的示例安装。
根据实施例,REST代理服务部件可以提供REST API以用于通过链式码进行查询、通过链式码调用交易、通过链式码异步调用交易、获得交易状态,以及获取BCS网关的版本。
根据实施例,用于通过链式码进行查询的API可以调用链式码来执行查询动作,其中用于查询的链式码和参数是通过REST API指定的。用于获得交易状态的API可以查询通道以获得交易状态,其中通道和交易ID是通过REST API指定的。用于获取BCS网关版本的API可以返回BCS网关的版本信息。用于通过链式码调用交易的API可以调用链式码来执行交易动作,其中用于调用的链式码和自变量是通过REST API指定的。此REST API可以在同步模式下执行交易,这意味着在以下三种情况中的任何一种情况下都会发回响应:交易成功完成;交易未能完成;交易超时。
根据实施例,用于通过链式码异步调用交易的API可以调用链式码来执行交易动作,其中用于调用的链式码和自变量是通过REST API指定的。这个REST API以异步模式执行交易,这意味着在提交交易后立即发回响应/确认而不等待交易的完成或超时。结果可以然后被后续地提供。
根据实施例,可以在REST代理服务部件上提供一组管理REST API,用于由管理控制台调用以供应和/或管理BCS。
调用查询
根据实施例,链式码可以包含用于查询信息的越来越多的函数。可以通过使用cURL提交对REST资源的POST请求来通过以下REST API调用这些函数:
curl-H Content-type:application/json-X POST
http://localhost:8080/bcsgw/rest/v1/transaction/query
根据实施例,调用查询的JSON形式的请求主体可以被示出如下:
{
″channel":″ChannelXYZ",
″chaincode":″MyChaincode",
″chaincodeVer":″1.0″,
″method":″funcquery",″args":[″a″]
}
在这个示例中,名为funcquery的函数具有输入参数Args[0]:账户A。这个函数可以查询账户A的信息并返回账户信息,包括链式码名称、链式码版本、链式码中定义的用于调用查询的方法,以及包含要被传递给链式码中的指定方法的自变量的数组。
针对调用查询的示例响应报头可以被示出如下:
HTTP/1.1 200
Content-Type:application/json Content-Length:53
Date:Mon,10 Jul 2017 01:26:25 GMT
用于调用查询的示例响应主体可以被示出如下:
{
″returnCode″:″Success″,
″result″:″100″,
″info″:null
}
在上面的示例响应主体中,“returnCode”的“Success”表示查询成功完成,而“Failure”将表示查询失败。对于“result”,当returnCode为“Success”时,可以返回带有查询结果的字符串。对于“info”,当returnCode为“Failure”时,可以返回带有失败的附加细节的字符串。
调用交易(同步)
根据实施例,链式码可以包含用于交易的一个或多个函数。这个REST API用于调用这些交易。当满足以下条件中的任何条件时,可以发回响应:操作超时,交易成功和交易失败。
根据实施例,可以使用以下cURL命令来调用该REST API:“curl-H Content-type:application/json-X POST-d http://localhost:8080/bcsgw/rest/v1/transaction/invocation”
JSON形式的示例请求主体可以被示出如下:
{
″channel":″ChannelXYZ",
"chaincode":″MyChaincode″,
″chaincodeVer":″1.0″,
″method":″funcinvoke",|
″args":[″a″,″b″,″3″]
}
在这个示例中,名为funcinvoke的函数具有输入参数Args[0]:账户A,Args[1]:账户B和Args[2]:金额C。这个函数将3从账户a移动到账户b。
示例响应报头可以被示出如下:
HTTP/1.1 200
Content-Type:application/json Content-Length:119
Date:Mon,10 Jul 2017 01:26:25 GMT
示例响应主体可以被示出如下:
{
″returnCode":″Success",
″info":null
″transactionlD”:
″e82a8a0969c38292f273278d5a6bfe4a257630538df2ebc28ca9b9cc17077″
}
调用交易(异步)
根据实施例,链式码可以包含用于交易的一个或多个函数。这个REST API或操作可以用于在异步模式下调用这些函数,即使操作尚未完成、失败或超时,也会立即返回交易ID。当使用这个操作时,
操作的状态被单独地查询。
可以使用命令“curl-H Content type:application/json-X POST-d http://localhost:8080/bcsgw/rest/v1/transaction/asyncInvocation”来调用该API。
JSON形式的示例请求主体可以被示出如下:
{
″channel″:″ChannelXYZ″,
″chaincode″:″MyChaincode″,
″chaincodeVer″:″1.0″,
″method″:″funcinvoke″,
″args″:[″b″,″a″,″5″]
}
在这个示例中,名为funcinvoke的函数具有输入参数Args[0]:账户A,Args[1]:账户B和Args[2]:金额C。这个函数将5从账户b移动到账户a。这个REST API操作始终在提交交易后立即返回交易ID。可以通过另一个REST API操作来查询交易的状态。
示例响应报头可以被示出如下:
HTTP/1.1 200
Content-Type:application/json Content-Length:119
Date:Mon,10 Jul 2017 01:26:25 GMT
示例响应主体可以被示出如下:
{
″returnCode″:Success",
″info″:null
″transactionlD":
bf8536c89ae44f65ac3f9fd64871ed76be0e9cb986213cfa75f9e54fb2f1af″
}
在上述响应主体中,“returnCode”的“Success”表示成功调用了交易,“Failure”表示交易未能被调用。当returnCode为“Failure”时,“info”可以包含关于失败的附加信息。
查看指定交易的状态
根据实施例,利用这个REST API,用户可以通过指定的通道信息和交易ID来检查交易的当前状态。这个REST API可以立即返回交易的当前状态。
可以使用cURL命令“curl-H Content-type:application/json-XPOST-d http://localhost:8080/bcsgw/rest/v1/transaction”来调用该API。
以下是用于调用API的JSON形式的示例请求的报头。在报头中,“txid”是交易ID。
/bcsgw/rest/v1/channel/transaction?channel=ChannelXYZ&txid=42bdbc5917593da3bcd658969 5a24f6bb786ebd3dd264a0b52a243348defa954 HTTP/1.1
User-Agent:curl/7.29.0Host:localhost:8080Accept:*/*
以下是示例响应的报头:
HTTP/1.1 200
Content-Type:application/json Content-Length:53
Date:Mon,10 Jul 2017 01:26:25 GMT
以下是示例响应的主体:
{
″returnCode":″Success",
″result″:″100",
″info":null
}
查看交易列表的状态
根据实施例,这个REST API可以用于检查一组指定交易的状态。当以下两个条件中的任一条件为真时,这个REST API将返回:1)没有交易具有InProgress状态。即,列出的所有交易都已成功完成或失败;2)对于这个请求已达到超时。
命令“curl-H Content-type:application/json-X POST-d http://localhost:8080/bcsgw/rest/v1/transaction/waitStatus”可以用于调用该REST API。
以下是JSON形式的示例请求主体:
上述请求检查由列出的通道和交易ID指定的交易的状态。“timeout”指定这个操作的超时(以毫秒为单位),并且“array”用于列出要查询的交易。对于每个交易,可以创建具有通道名称和交易ID的元素。
示例响应报头可以被示出如下:
HTTP/1.1 200
Content-Type:application/json Content-Length:221
Date:Mon,10 Jul 2017 01:26:25 GMT
示例响应主体可以被示出如下:
查看版本
根据实施例,这个REST API可以用于检索BCS网关的版本信息,并且可以使用命令“curl-H Content-type:application/json-X POST-d http://localhost:8080/bcsgw/rest/version”来调用。
用于调用该REST API的JSON形式的示例请求报头可以被示出如下:
GET/bcsgw/version HTTP/1.1
User-Agent:curl/7.29.0
Host:10.182.53.195:8080
Accept:*/*
从REST的调用返回的示例响应的报头可以被示出如下:
HTTP/1.1 200
Content-Type:application/json
Content-Length:18
Date:Mon,10 Jul 2017 01:26:25 GMT
从REST的调用返回的示例响应的主体可以被示出如下:
{
″version″:″v1.0″
}
与身份云服务(IDCS)集成的架构证书颁发机构(架构CA)
根据实施例,架构-CA服务器为架构提供成员资格服务。它包括三个部分:针对用户的认证、针对访问区块链(一组对等体和次序)的授权、以及可以向应用客户端、对等体和排序者提供证书的CA服务器。架构-CA使用证书来实现认证和授权。证书包括两种类型:用于认证的登记证书和用于授权的交易证书。IDCS也提供认证和授权。但其授权由OAuth实现。这意味着如果对等体想要访问次序,那么对等体应当从IDCS获取用户的访问令牌并使用这个令牌来访问次序。
根据实施例,架构CA使用数据库或LDAP来存储架构CA的注册用户的信息,例如用户的名称/密码、用户的证书和用户的从属关系。公共云(OPC)的最终用户将应用一个中心化IDCS实例来管理其员工以访问其所有应用的公共云(OPC)实例。区块链云服务BCS优选地与用于其它云服务的IDCS集成。因此,最终用户能够应用一个中心化IDCS实例来管理其员工以访问其所有应用的公共云(OPC)实例,包括BCS。
在一个实施例中,区块链云服务(BCS)使用Oracle身份云服务(IDCS)以中心化方式存储用户信息。BCS将架构CA用户的信息存储到IDCS中,从而允许Oracle BCS使用IDCS来管理跨多个公共云服务实例中心化的BCS用户信息。因此,在实施例中,BCS架构CA用户的信息、证书存储在Oracle IDCS中。架构证书授权框架是架构成员资格提供者(MSP),它包括PKI私钥、签署的证书、CA证书链,并由架构CA客户端/服务器设置。
根据实施例,BCS充分利用OPC的用户管理。任何BCS用户必须首先是OPC用户(因此是IDCS身份)。当创建BCS实例时,创建几种类型的应用:BCS控制台、CA和REST代理。对于控制台,有两个应用角色:控制台管理员和控制台用户。对于CA,有四个应用角色:架构管理员、架构客户端、架构对等体、架构排序者。对于REST代理,有两个应用角色:网关管理员和网关用户。
根据实施例,为了成为BCS用户,OPC用户需要被授予OPC用户管理控制台中的某些BCS应用角色。
根据实施例,当创建BCS实例时,创建者需要提供现有的OPC用户/密码,并且这个用户将被自动授予BCS控制台管理员和架构管理员角色,以使这个用户成为BCS管理员。
认证:对于BCS控制台/CA/REST代理,认证在云关完成。对于对等体/排序者,认证是基于签名的。对于BCS控制台,在认证之后,控制台将获取当前用户的应用角色(通过调用IDCS)。如果用户未被授予控制台管理员或控制台用户角色,那么连接被拒绝。否则,控制台基于预定义的规则进行访问控制,例如,普通用户一般只能读取信息而管理员可以做任何事情。
根据实施例,对于CA,在认证之后,CA获得当前用户的应用角色。如果用户未被授予任何架构角色,那么登记请求被拒绝。
根据实施例,对于REST代理,在认证之后,REST代理获得当前用户的应用角色。如果用户未被授予网关管理员或网关用户角色,那么该请求被拒绝。否则,REST代理基于预定义的规则进行访问控制,例如,普通用户可以调用/查询,管理员可以改变配置、获取度量。
根据实施例,架构-CA服务器为架构提供成员资格服务。它包括三个部分:针对用户的认证、针对访问区块链(一组对等体和次序)的授权,以及可以向应用客户端、对等体和次序提供证书的CA服务器。
根据实施例,架构-CA使用证书来实现认证和授权。证书包括两种类型:用于认证的登记证书和用于授权的交易证书。
根据实施例,IDCS也提供认证和授权。但其授权由OAuth实现。这意味着如果对等体想要访问次序,那么对等体应当从IDCS获取用户的访问令牌并使用这个令牌来访问次序。
图9A图示了根据实施例的用于单点登录的典型IDCS用例。
根据实施例,可以在初始步骤将web应用901添加到IDCS902。然后,诸如web浏览器900之类的客户端可以请求来自web应用的认证(例如,用户名和密码)。因为web应用已经被添加到IDCS,所以web应用可以指示web浏览器向IDCS发出认证请求。在从web应用接收到响应之后,web浏览器然后可以请求来自IDCS的认证(例如,用户名和密码)。
根据实施例,IDCS然后可以认证该请求,并且在成功认证后,将令牌发送回web浏览器。已经经过认证并接收到其令牌的web浏览器可以从web应用发出请求。web应用可以核实令牌,并向web浏览器发出认证成功的信号。
在图9A中描绘的情况下,IDCS充当身份提供者(IdP)以便为应用提供身份服务。所有各方之间的所有通信都是基于HTTP的。这个用例是配置驱动的,但仅适用于基于HTTP的应用。
图9B示出了根据实施例的用于架构客户端认证的IDCS用例。
根据实施例,与已经注册和登记的架构用户(这个用户的私钥和证书已经存储在客户端侧的状态存储库中)相关联的架构客户端904可以请求新客户端()(new Client()),以及获取客户端(用户名)的用户上下文。架构SDK 905可以从状态存储库加载用户,并将用户对象返回到架构客户端。客户端在接收到用户对象后可以向架构SDK发送交易提议,架构SDK可以使用相同的私钥对该提议进行签署。然后,经签署的提议可以转到对等体(或多个对等体)906,对等体(或多个对等体)906将在成员资格服务907处核实签名。成员资格服务可以从IDCS 902获得用户的证书,并且可以使用来自IDCS的证书来核实用户的签名。然后,成员资格服务可以向对等体返回签名被核实的核实。
虽然上面已经描述了本发明的各种实施例,但是应当理解的是,它们是作为示例而非限制来呈现的。选择和描述实施例是为了解释本发明的特征和原理及其实际应用。实施例说明了通过提供新的和/或改进的功能和/或提供包括但不限于减少的资源利用、增加的容量、增加的吞吐量、提高的效率、减少的等待时间、增强的安全性和/或改进的易用性的性能优势来利用本发明的各种特征改进系统和方法的性能的系统和方法。
本文参考图示体系架构、功能、处理和/或操作的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的一些实施例。流程图或框图中的每个方框表示元素、功能、处理、模块、片段或指令的一部分,其包括用于实现指定功能的一个或多个可执行指令。在一些替代实施例中,框图或流程图中提到的功能不按图中所示的顺序发生。例如,取决于所涉及的功能,连续示出的两个方框可以基本上同时执行,或者以相反的顺序执行。流程图和/或框图的每个方框以及流程图和/或框图中的方框的组合可以由执行指定功能的计算机程序指令和/或专用硬件和/或硬件和计算机程序指令的组合来实现。
在一些实施例中,本发明的特征在包括处理器、计算机可读存储介质和用于与其它计算机通信的网卡/接口的计算机中实现。在一些实施例中,本发明的特征在包括计算系统的网络计算环境中实现,该计算系统包括各种类型的计算机配置,包括个人计算机、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大型计算机,以及通过网络互连的链路。网络可以是局域网(LAN)、交换架构网络(例如InfiniBand)、广域网(WAN)和/或互联网。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
在一些实施例中,本发明的特征在包括后端部件(例如,作为数据服务器)、或包括中间件部件(例如,应用服务器)、或包括前端部件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过该浏览器与本文描述的主题的实现进行交互)或包括这种后端、中间件或前端部件的任何组合的计算系统中实现。通过网络互连的。计算系统可以包括彼此具有客户端-服务器关系的客户端和服务器。在一些实施例中,本发明的特征在包括分布式计算环境的计算系统中实现,其中计算机的一个或多个集群通过网络连接。分布式计算环境可以使所有计算机位于单个位置,或者具有通过网络连接的不同远程地理位置处的计算机的集群。
在一些实施例中,本发明的特征在云中实现,作为云计算系统的一部分或作为云计算系统的服务,基于使用web技术以自助服务、计量方式递送给用户的共享弹性资源。云的特点可以包括例如:按需自助服务;广泛的网络访问;资源汇集;快速弹性;以及测得的服务。云部署模型包括:公共、私有和混合。云服务模型包括软件即服务(SaaS)、平台即服务(PaaS)、数据库即服务(DBaaS)和基础设施即服务(IaaS)。云一般是指硬件、软件、网络和web技术的组合,起为用户递送共享的弹性资源。如本文所使用的,云可以包括公共云、私有云和/或混合云实施例,并且可以包括云SaaS、云DBaaS、云PaaS和/或云IaaS部署模型。
在一些实施例中,使用硬件、软件、固件或其组合来帮助实现本发明的特征。在一些实施例中,使用被配置或编程为执行本发明的一个或多个功能的处理器来实现本发明的特征。在一些实施例中,处理器是单芯片或多芯片处理器、数字信号处理器(DSP)、片上系统(SOC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、状态机、离散门或晶体管逻辑、分立硬件部件或其任何组合,被设计为执行本文所述的功能。在一些实现中,本发明的特征由特定于给定功能的电路系统实现。在其它实现中,特征在计算机、计算系统、处理器和/或网络中实现,被配置为使用例如存储在计算机可读存储介质上的指令来执行特定功能。
在一些实施例中,本发明的特征结合在软件和/或固件中,用于控制处理和/或网络系统的硬件,并且用于使处理器和/或网络能够利用本发明的这些特征与其它系统交互。这种软件或固件可以包括但不限于应用代码、设备驱动程序、操作系统、虚拟机、管理程序、应用编程接口、编程语言和执行环境/容器。基于本公开的教导,熟练的程序员可以容易地准备适当的软件编码。
在一些实施例中,本发明包括计算机程序产品,该计算机程序产品是机器可读或计算机可读存储介质(多种介质),其具有包括存储在其上/其中的软件和/或固件的指令,指令可以用于编程或以其它方式配置诸如计算机之类的系统以执行本发明的任何处理或功能。存储介质或计算机可读介质可以包括适用于存储指令和/或数据的任何类型的介质或设备,包括但不限于软盘、硬盘驱动器、固态驱动器、光盘、DVD、CD-ROM、微驱动器,以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、分子存储器、纳米系统或其变体和组合。在特定实施例中,存储介质或计算机可读介质是非瞬态机器可读存储介质或非瞬态计算机可读存储介质。
前面的描述并非旨在是详尽的或将本发明限制于所公开的精确形式。此外,在已经使用特定系列的交易和步骤描述了本发明的实施例的情况下,本领域技术人员应当清楚的是,除非另有说明,否则该实施例不排除附加交易和步骤的执行。另外,虽然各种实施例描述了本发明的特征的特定组合,但是应当理解的是,对于相关领域的技术人员来说,在本发明的范围内,这些特征的不同组合将是清楚的。具体地,在给定实施例、变体或图中示出的特征(类似设备或类似方法)可以在另一个实施例、变体或附图中与另一个特征组合或用其替换,而不脱离本发明的范围。而且,对于相关领域的技术人员清楚的是,可以在其中进行形式、细节、实现和应用的各种添加、减少、删除、变化、用等同物的元件的替换,以及其它修改和改变,而不脱离本发明的精神和范围。本发明的更广泛的精神和范围旨在由以下权利要求及其等同物限定。
Claims (24)
1.一种用于在区块链云服务中提供代表性状态转移(REST)代理服务的系统,所述系统包括:
容器运行时服务;
所述容器运行时服务中的分布式账簿,其中,所述分布式账簿在所述容器运行时服务中被供应作为区块链云服务;以及
REST代理服务,在所述容器运行时服务的容器中执行;
其中,所述REST代理服务包括多个REST应用编程接口(API),所述多个REST应用编程接口被配置为将来自客户端应用的REST调用变换为远程过程调用,以供所述客户端应用在与所述分布式账簿通信时使用。
2.如权利要求1所述的系统,其中,所述多个REST API还被配置为使所述客户端应用能够执行以下各项中的一个或多个:
通过链式码查询,
通过所述链式码同步或异步调用交易,
获取交易状态,或
获取所述REST代理服务的版本信息。
3.如权利要求1或2所述的系统,其中,所述REST代理服务还被配置为认证来自所述客户端应用的所述REST调用。
4.如任一前述权利要求所述的系统,其中,所述REST代理服务还提供附加的REST API以支持由管理控制台提供的功能,其中,所述功能由所述管理控制台用来管理所述区块链云服务。
5.如任一前述权利要求所述的系统,其中,所述REST代理服务在所述容器运行时服务的所述容器中的web服务器中执行。
6.如任一前述权利要求所述的系统,其中,所述分布式账簿是超级账簿架构。
7.如任一前述权利要求所述的系统,其中,所述REST代理服务使用用于所述分布式账簿的服务开发工具包(SDK)来与所述分布式账簿进行通信。
8.如任一前述权利要求所述的系统,
其中,所述区块链云服务包括对等体容器、排序容器和链式码容器,其中,所述对等体容器包括背书者和提交者,并且其中,所述背书者对所述区块链云服务内的交易进行背书,并且所述提交者将改变应用于由所述对等体容器维护的区块链账簿。
9.一种用于在区块链云服务中提供代表性状态转移(REST)代理服务的方法,所述方法包括:
提供容器运行时服务;
在所述容器运行时服务中提供分布式账簿,其中,所述分布式账簿在所述容器运行时中被供应作为区块链云服务;以及
提供在所述容器运行时服务的容器中执行的REST代理服务;
其中,所述REST代理服务包括多个REST应用编程接口(API),所述多个REST应用编程接口被配置为将来自客户端应用的REST调用变换为远程过程调用,以供所述客户端应用在与所述分布式账簿通信时使用。
10.如权利要求9所述的方法,其中,所述多个REST API还被配置为使所述客户端应用能够执行以下各项中的一个或多个:
通过链式码查询,
通过所述链式码同步或异步调用交易,
获取交易状态,或
获取所述REST代理服务的版本信息。
11.如权利要求9或10所述的方法,其中,所述REST代理服务还被配置为认证来自所述客户端应用的所述REST调用。
12.如权利要求9至11中任一项所述的方法,其中,所述REST代理服务还提供附加的REST API以支持由管理控制台提供的功能,其中,所述功能由所述管理控制台用来管理所述区块链云服务。
13.如权利要求9至12中任一项所述的方法,其中,所述REST代理服务在所述容器运行时服务的所述容器中的web服务器中执行。
14.如权利要求9至13中任一项所述的方法,其中,所述分布式账簿是超级账簿架构。
15.如权利要求9至14中任一项所述的方法,其中,所述REST代理服务使用用于所述分布式账簿的服务开发工具包(SDK)来与所述分布式账簿进行通信。
16.如权利要求9至15中任一项所述的方法,
其中,所述区块链云服务包括对等体容器、排序容器和链式码容器,其中,所述对等体容器包括背书者和提交者,并且其中,所述背书者对所述区块链云服务内的交易进行背书,并且所述提交者将改变应用于由所述对等体容器维护的区块链账簿。
17.一种非瞬态计算机可读存储介质,包括存储在其上的指令,所述指令当由一个或多个计算机读取和执行时,使得所述一个或多个计算机执行包括以下各项的步骤:
提供容器运行时服务;
在所述容器运行时服务中提供分布式账簿,其中,所述分布式账簿在所述容器运行时服务中被供应作为区块链云服务;以及
提供在所述容器运行时服务的容器中执行的REST代理服务;
其中,所述REST代理服务包括多个REST应用编程接口(API),所述多个REST应用编程接口被配置为将来自客户端应用的REST调用变换为远程过程调用,以供所述客户端应用在与所述分布式账簿通信时使用。
18.如权利要求17所述的非瞬态计算机可读存储介质,其中,所述多个REST API还被配置为使所述客户端应用能够执行以下各项中的一个或多个:
通过链式码查询,
通过所述链式码同步或异步调用交易,
获取交易状态,或
获取所述REST代理服务的版本信息。
19.如权利要求17或18所述的非瞬态计算机可读存储介质,其中,所述REST代理服务还被配置为认证来自所述客户端应用的所述REST调用。
20.如权利要求17至19中任一项所述的非瞬态计算机可读存储介质,其中,所述REST代理服务还提供附加的REST API以支持由管理控制台提供的功能,其中,所述功能由所述管理控制台用来管理所述区块链云服务。
21.如权利要求17至20中任一项所述的非瞬态计算机可读存储介质,其中,所述REST代理服务在所述容器运行时服务的所述容器中的web服务器中执行。
22.如权利要求17至21中任一项所述的非瞬态计算机可读存储介质,其中,所述分布式账簿是超级账簿架构,和/或其中,所述REST代理服务使用用于所述分布式账簿的服务开发工具包(SDK)来与所述分布式账簿进行通信。
23.如权利要求17至22中任一项所述的非瞬态计算机可读存储介质,
其中,所述区块链云服务包括对等体容器、排序容器和链式码容器,其中,所述对等体容器包括背书者和提交者,并且其中,所述背书者对所述区块链云服务内的交易进行背书,并且所述提交者将改变应用于由所述对等体容器维护的区块链账簿。
24.一种用于在区块链云服务中提供代表性状态转移(REST)代理服务的系统,所述系统包括:
容器运行时服务;
所述容器运行时服务中的分布式账簿,其中,所述分布式账簿在所述容器运行时服务中被供应作为区块链云服务,所述区块链云服务包括对等体容器、排序容器和链式码容器,并且其中,所述对等体容器包括背书者和提交者,其中,所述背书者对所述区块链云服务内的交易进行背书,并且所述提交者将改变应用于由所述对等体容器维护的区块链账簿;以及
REST代理服务,在所述容器运行时服务的容器中执行;
其中,所述REST代理服务包括多个REST应用编程接口(API),所述多个REST应用编程接口被配置为将来自客户端应用的REST调用变换为远程过程调用,以供所述客户端应用在与所述分布式账簿通信时使用。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762565999P | 2017-09-29 | 2017-09-29 | |
US62/565,999 | 2017-09-29 | ||
US16/141,337 | 2018-09-25 | ||
US16/141,339 US10528551B2 (en) | 2017-09-29 | 2018-09-25 | System and method for providing a representational state transfer proxy service for a blockchain cloud service |
US16/141,329 US11556521B2 (en) | 2017-09-29 | 2018-09-25 | System and method for providing an interface for a blockchain cloud service |
US16/141,337 US10762079B2 (en) | 2017-09-29 | 2018-09-25 | System and method for managing a blockchain cloud service |
US16/141,329 | 2018-09-25 | ||
US16/141,339 | 2018-09-25 | ||
PCT/US2018/053556 WO2019067989A1 (en) | 2017-09-29 | 2018-09-28 | SYSTEM AND METHOD FOR PROVIDING REPRESENTATIONAL STATE TRANSFER REPRESENTATIVE SERVICE FOR BLOCK CHAIN INFONUAGIC SERVICE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110537182A true CN110537182A (zh) | 2019-12-03 |
CN110537182B CN110537182B (zh) | 2023-04-18 |
Family
ID=65896735
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880007466.0A Active CN110537182B (zh) | 2017-09-29 | 2018-09-28 | 为区块链云服务提供代表性状态转移代理服务的系统和方法 |
CN201880007452.9A Active CN110226168B (zh) | 2017-09-29 | 2018-09-28 | 用于提供区块链云服务的接口的系统和方法 |
CN201880007469.4A Active CN110192380B (zh) | 2017-09-29 | 2018-09-28 | 用于管理区块链云服务的系统和方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880007452.9A Active CN110226168B (zh) | 2017-09-29 | 2018-09-28 | 用于提供区块链云服务的接口的系统和方法 |
CN201880007469.4A Active CN110192380B (zh) | 2017-09-29 | 2018-09-28 | 用于管理区块链云服务的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (6) | US11556521B2 (zh) |
EP (3) | EP3688957B1 (zh) |
JP (5) | JP6872035B2 (zh) |
CN (3) | CN110537182B (zh) |
CA (1) | CA3071430C (zh) |
MX (1) | MX2020003790A (zh) |
WO (3) | WO2019067988A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112565215A (zh) * | 2020-11-25 | 2021-03-26 | 电信科学技术第十研究所有限公司 | 基于分布式服务代理的rest应用架构及构架方法 |
CN112905190A (zh) * | 2021-03-30 | 2021-06-04 | 飞豹链(深圳)信息科技有限公司 | 一种基于服务的差异化链码部署方法 |
TWI820360B (zh) * | 2020-11-26 | 2023-11-01 | 陳哲斌 | 社群風險互助系統、及其伺服器 |
Families Citing this family (245)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US10644937B2 (en) * | 2016-09-13 | 2020-05-05 | Oracle International Corporation | Techniques for managing SCIM-compliant systems |
US10396997B2 (en) * | 2016-12-14 | 2019-08-27 | International Business Machines Corporation | Container-based operating system and method |
US11509486B2 (en) | 2017-05-24 | 2022-11-22 | Nxm Labs, Inc. | Identity attestation system and method |
US11429960B2 (en) | 2017-05-24 | 2022-08-30 | Nxm Labs, Inc. | Network configuration management for networked client devices using a distributed ledger service |
US10817195B2 (en) * | 2017-07-07 | 2020-10-27 | Sap Se | Key-value based message oriented middleware |
US11556521B2 (en) | 2017-09-29 | 2023-01-17 | Oracle International Corporation | System and method for providing an interface for a blockchain cloud service |
US10922304B1 (en) * | 2017-10-20 | 2021-02-16 | EMC IP Holding Company LLC | Distributed data protection management in multi-cloud computing environment |
US20200278959A1 (en) * | 2017-10-27 | 2020-09-03 | Tata Consultancy Services Limited | System and method for blockchain coexistence |
US11823178B2 (en) * | 2017-11-17 | 2023-11-21 | International Business Machines Corporation | Optimization of high volume transaction performance on a blockchain |
US10958628B2 (en) * | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy |
US10958417B2 (en) * | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using blockchain hierarchies |
US10630769B2 (en) * | 2017-12-26 | 2020-04-21 | Akamai Technologies, Inc. | Distributed system of record transaction receipt handling in an overlay network |
US10715323B2 (en) | 2017-12-29 | 2020-07-14 | Ebay Inc. | Traceable key block-chain ledger |
US11544708B2 (en) | 2017-12-29 | 2023-01-03 | Ebay Inc. | User controlled storage and sharing of personal user information on a blockchain |
US11218315B2 (en) * | 2018-01-24 | 2022-01-04 | Safeshare, Inc. | System and method establishing a trust model for shared content on the internet |
US10701054B2 (en) | 2018-01-31 | 2020-06-30 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment |
US11257073B2 (en) | 2018-01-31 | 2022-02-22 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment |
US20190236606A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment |
US11063745B1 (en) * | 2018-02-13 | 2021-07-13 | EMC IP Holding Company LLC | Distributed ledger for multi-cloud service automation |
US11625783B1 (en) | 2018-02-14 | 2023-04-11 | Equity Shift, Inc. | Blockchain instrument for transferable equity |
US10699340B2 (en) | 2018-02-14 | 2020-06-30 | Equity Shift, Inc. | Blockchain instrument for transferable equity |
US12008649B1 (en) | 2018-02-14 | 2024-06-11 | Equity Shift, Inc. | Blockchain instrument for transferable equity |
US11164254B1 (en) | 2018-02-14 | 2021-11-02 | Equity Shift, Inc. | Blockchain instrument for transferable equity |
US10713722B2 (en) | 2018-02-14 | 2020-07-14 | Equity Shift, Inc. | Blockchain instrument for transferable equity |
CA3034098A1 (en) * | 2018-02-20 | 2019-08-20 | Intercontinental Exchange Holdings, Inc. | Offline crypto asset custodian |
US10873625B2 (en) * | 2018-02-26 | 2020-12-22 | International Business Machines Corpora ! Ion | Service management for the infrastructure of blockchain networks |
US10841237B2 (en) * | 2018-04-23 | 2020-11-17 | EMC IP Holding Company LLC | Decentralized data management across highly distributed systems |
US11055675B2 (en) * | 2018-05-08 | 2021-07-06 | Xspero U.S. | Systems and methods for e-certificate exchange and validation |
US11341818B2 (en) | 2018-05-08 | 2022-05-24 | Xspero U.S. | Systems and methods for authenticated blockchain data distribution |
GB2609872B (en) * | 2018-05-10 | 2023-05-17 | Nxm Labs Inc | Security management for networked client devices using a distributed ledger service |
CN108667618B (zh) | 2018-05-10 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 区块链成员管理的数据处理方法、装置、服务器及系统 |
US11695735B2 (en) | 2018-05-10 | 2023-07-04 | Nxm Labs, Inc. | Security management for net worked client devices using a distributed ledger service |
US10579424B2 (en) | 2018-05-15 | 2020-03-03 | International Business Machines Corporation | Prioritization in a permissioned blockchain |
US10985907B2 (en) | 2018-05-16 | 2021-04-20 | International Business Machines Corporation | Identifying faults in a blockchain ordering service |
US11296864B2 (en) * | 2018-05-16 | 2022-04-05 | International Business Machines Corporation | Identifying faults in a blockchain ordering service |
US11188920B2 (en) * | 2018-05-23 | 2021-11-30 | International Business Machines Corporation | Autocommit transaction management in a blockchain network |
US10929352B2 (en) | 2018-05-29 | 2021-02-23 | Oracle International Corporation | Securing access to confidential data using a blockchain ledger |
US10880072B2 (en) * | 2018-06-20 | 2020-12-29 | Verizon Patent And Licensing Inc. | Systems and methods for controlled random endorsement in a blockchain network |
US11169985B2 (en) | 2018-07-27 | 2021-11-09 | Oracle International Corporation | System and method for supporting SQL-based rich queries in hyperledger fabric blockchains |
US11424910B2 (en) * | 2018-07-31 | 2022-08-23 | EMC IP Holding Company LLC | Enterprise storage of customer transaction data using a blockchain |
US10671308B2 (en) * | 2018-08-07 | 2020-06-02 | International Business Machines Corporation | Private and fault-tolerant storage of segmented data |
US10915521B2 (en) * | 2018-08-21 | 2021-02-09 | Syniverse Technologies, Llc | Blockchain gateway device and associated method of use |
US11182379B2 (en) | 2018-08-24 | 2021-11-23 | Oracle International Corporation | DAG based methods and systems of transaction processing in a distributed ledger |
US10901957B2 (en) * | 2018-08-29 | 2021-01-26 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11196542B2 (en) | 2018-08-29 | 2021-12-07 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11334439B2 (en) * | 2018-08-29 | 2022-05-17 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11368446B2 (en) * | 2018-10-02 | 2022-06-21 | International Business Machines Corporation | Trusted account revocation in federated identity management |
US10997159B2 (en) * | 2018-10-09 | 2021-05-04 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
US11303442B2 (en) | 2018-10-09 | 2022-04-12 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
US11301452B2 (en) | 2018-10-09 | 2022-04-12 | Ebay, Inc. | Storing and verification of derivative work data on blockchain with original work data |
US11520773B2 (en) * | 2018-10-09 | 2022-12-06 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
CN111045690B (zh) | 2018-10-12 | 2023-04-28 | 阿里巴巴集团控股有限公司 | 区块链节点服务部署方法、装置、系统、计算设备及介质 |
SG11202103850WA (en) | 2018-10-16 | 2021-05-28 | Eluvio Inc | Decentralized content fabric |
US11288280B2 (en) | 2018-10-31 | 2022-03-29 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing consumer data validation, matching, and merging across tenants with optional verification prompts utilizing blockchain |
US11568437B2 (en) | 2018-10-31 | 2023-01-31 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing commerce rewards across tenants for commerce cloud customers utilizing blockchain |
US10855778B2 (en) * | 2018-10-31 | 2020-12-01 | EMC IP Holding Company LLC | Distributed ledger for edge server management |
US11138188B2 (en) * | 2018-11-07 | 2021-10-05 | International Business Machines Corporation | Performance optimization |
BR112021008817A2 (pt) * | 2018-11-13 | 2021-08-10 | Banqu, Inc. | formas de definição e gerenciamento em uma rede confiável de registros distribuídos |
WO2020112029A1 (en) * | 2018-11-30 | 2020-06-04 | Purple Ds Private Ltd. | System and method for facilitating participation in a blockchain environment |
US11070449B2 (en) * | 2018-12-04 | 2021-07-20 | Bank Of America Corporation | Intelligent application deployment to distributed ledger technology nodes |
US10841153B2 (en) * | 2018-12-04 | 2020-11-17 | Bank Of America Corporation | Distributed ledger technology network provisioner |
US20200184470A1 (en) * | 2018-12-08 | 2020-06-11 | International Business Machines Corporation | Identity ecosystem |
US11348101B2 (en) * | 2018-12-19 | 2022-05-31 | International Business Machines Corporation | Post-settlement processes |
US11720545B2 (en) | 2018-12-19 | 2023-08-08 | International Business Machines Corporation | Optimization of chaincode statements |
US11018852B2 (en) * | 2018-12-21 | 2021-05-25 | International Business Machines Corporation | Blockchain trust anchor |
US11663348B2 (en) | 2018-12-21 | 2023-05-30 | International Business Machines Corporation | Dynamic entitlement for blockchain data |
US10725744B2 (en) * | 2018-12-27 | 2020-07-28 | Silver Rocket Data Technology (Shanghai) Co., Ltd | Method for adapting to blockchain and device, terminal and medium performing the same |
US11159945B2 (en) | 2018-12-31 | 2021-10-26 | T-Mobile Usa, Inc. | Protecting a telecommunications network using network components as blockchain nodes |
US11329982B2 (en) * | 2018-12-31 | 2022-05-10 | T-Mobile Usa, Inc. | Managing internet of things devices using blockchain operations |
US11601787B2 (en) | 2018-12-31 | 2023-03-07 | T-Mobile Usa, Inc. | Using a blockchain to determine trustworthiness of messages between vehicles over a telecommunications network |
US11341121B2 (en) * | 2019-01-22 | 2022-05-24 | International Business Machines Corporation | Peer partitioning |
US10839377B2 (en) | 2019-01-25 | 2020-11-17 | Coinbase, Inc. | Syncing blockchain nodes with snapshots |
US11080144B2 (en) | 2019-01-25 | 2021-08-03 | Coinbase, Inc. | System and method for managing blockchain nodes |
US11488176B2 (en) | 2019-01-31 | 2022-11-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing certificates of authenticity of digital twins transacted onto a blockchain using distributed ledger technology (DLT) |
US11824864B2 (en) | 2019-01-31 | 2023-11-21 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing a declarative and metadata driven blockchain platform using distributed ledger technology (DLT) |
US11783024B2 (en) | 2019-01-31 | 2023-10-10 | Salesforce, Inc. | Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration |
US11811769B2 (en) | 2019-01-31 | 2023-11-07 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing a declarative, metadata driven, cryptographically verifiable multi-network (multi-tenant) shared ledger |
US11886421B2 (en) | 2019-01-31 | 2024-01-30 | Salesforce, Inc. | Systems, methods, and apparatuses for distributing a metadata driven application to customers and non-customers of a host organization using distributed ledger technology (DLT) |
US11244313B2 (en) * | 2019-01-31 | 2022-02-08 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing declarative smart actions for coins and assets transacted onto a blockchain using distributed ledger technology (DLT) |
US11875400B2 (en) | 2019-01-31 | 2024-01-16 | Salesforce, Inc. | Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT) |
US11803537B2 (en) | 2019-01-31 | 2023-10-31 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT) |
US11876910B2 (en) | 2019-01-31 | 2024-01-16 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT) |
US11899817B2 (en) | 2019-01-31 | 2024-02-13 | Salesforce, Inc. | Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information |
US11971874B2 (en) | 2019-01-31 | 2024-04-30 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (DLT) |
WO2019101236A2 (en) * | 2019-03-04 | 2019-05-31 | Alibaba Group Holding Limited | Software interface for smart contracts |
JP6975250B2 (ja) | 2019-03-04 | 2021-12-01 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | 処理用に取引データをブロックチェーンシステムに提供するための方法及び装置 |
US11275801B1 (en) * | 2019-03-05 | 2022-03-15 | Sprint Communications Company L.P. | Performance metrics collection and promulgation from within a mobile application |
US11579949B2 (en) * | 2019-03-14 | 2023-02-14 | Nokia Solutions And Networks Oy | Device application support |
US11579998B2 (en) | 2019-03-14 | 2023-02-14 | Nokia Solutions And Networks Oy | Device telemetry control |
KR102243754B1 (ko) | 2019-03-21 | 2021-04-26 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 블록체인 네트워크에서의 데이터 격리 |
CN110622488B (zh) | 2019-03-27 | 2021-02-09 | 创新先进技术有限公司 | 用于管理用户与区块链的交互的系统和方法 |
US10884725B2 (en) * | 2019-03-27 | 2021-01-05 | Wipro Limited | Accessing container images in a distributed ledger network environment |
CN110098954B (zh) * | 2019-03-29 | 2022-06-28 | 北京百度网讯科技有限公司 | Hyperledger Fabric网络的创建方法、控制器及存储介质 |
US11108553B2 (en) * | 2019-04-05 | 2021-08-31 | International Business Machines Corporation | Database transaction guaranteed commitment |
CN110069921B (zh) * | 2019-04-12 | 2021-01-01 | 中国科学院信息工程研究所 | 一种面向容器平台的可信软件授权验证系统及方法 |
CN110162559B (zh) * | 2019-04-13 | 2020-07-10 | 山东公链信息科技有限公司 | 一种基于通用json同步和异步数据api接口调用的区块链处理方法 |
CN111835533A (zh) * | 2019-04-15 | 2020-10-27 | 富士通株式会社 | 检查区块链网络的装置 |
WO2020211078A1 (en) * | 2019-04-19 | 2020-10-22 | Nokia Technologies Oy | Distributed storage of blocks in blockchains |
CN110071920B (zh) * | 2019-04-22 | 2022-01-28 | 新华三技术有限公司 | 成员服务提供者实现方法及装置 |
RU2705772C1 (ru) * | 2019-04-23 | 2019-11-11 | Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) | Способ и система исполнения сделки репо в распределенном реестре |
US11568397B2 (en) | 2019-04-24 | 2023-01-31 | Cerner Innovation, Inc. | Providing a financial/clinical data interchange |
CN110069475B (zh) * | 2019-04-25 | 2021-04-20 | 中国科学院信息工程研究所 | 一种基于区块链多方自我维持的制造业跨数据实体溯源方法 |
US11038771B2 (en) | 2019-04-26 | 2021-06-15 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT) |
US11880349B2 (en) | 2019-04-30 | 2024-01-23 | Salesforce, Inc. | System or method to query or search a metadata driven distributed ledger or blockchain |
CN110149376B (zh) * | 2019-04-30 | 2021-01-05 | 广州科创空间信息科技有限公司 | 提高hyperledger composer链码部署效率的方法 |
US11995647B2 (en) | 2019-04-30 | 2024-05-28 | Salesforce, Inc. | System and method of providing interoperable distributed and decentralized ledgers using consensus on consensus and delegated consensus |
CN110324424A (zh) * | 2019-05-13 | 2019-10-11 | 上海分布信息科技有限公司 | 一种基于区块链的可信云服务架构 |
GB202002285D0 (en) | 2020-02-19 | 2020-04-01 | Nchain Holdings Ltd | Computer-implemented system and method |
CN110262777B (zh) * | 2019-05-21 | 2023-12-01 | 创新先进技术有限公司 | 一种区块链应用框架 |
CN110163572B (zh) * | 2019-05-21 | 2022-04-15 | 东软集团股份有限公司 | 一种链码函数处理方法、装置及设备 |
CN111984378B (zh) * | 2019-05-24 | 2024-06-25 | 国际商业机器公司 | 数据库异常事务提交预防 |
US11579919B2 (en) | 2019-05-24 | 2023-02-14 | International Business Machines Corporation | Anomalous transaction detection for database |
US11809896B2 (en) * | 2019-05-24 | 2023-11-07 | International Business Machines Corporation | Anomalous transaction commitment prevention for database |
US11222333B2 (en) * | 2019-05-31 | 2022-01-11 | Panasonic Avionics Corporation | In-flight fiat payment authorization and capture settlement |
US11777738B2 (en) * | 2019-06-04 | 2023-10-03 | International Business Machines Corporation | Metadata-based endorsement |
US11050822B2 (en) * | 2019-06-05 | 2021-06-29 | International Business Machines Corporation | Secure data dissemination |
EP3983922A1 (en) * | 2019-06-14 | 2022-04-20 | Ailia SA | Method for the execution of an instance of a smart contract by means of a blockchain |
US10503905B1 (en) | 2019-06-26 | 2019-12-10 | Capital One Services, Llc | Data lineage management |
US11650886B2 (en) * | 2019-06-27 | 2023-05-16 | Netapp, Inc. | Orchestrator for orchestrating operations between a computing environment hosting virtual machines and a storage environment |
CN110430161B (zh) * | 2019-06-27 | 2021-08-17 | 布比(北京)网络技术有限公司 | 一种基于区块链的可监管数据匿名分享方法及系统 |
CN110336813B (zh) * | 2019-07-02 | 2021-08-17 | 北京启迪区块链科技发展有限公司 | 一种访问控制方法、装置、设备及存储介质 |
CN110308903B (zh) * | 2019-07-04 | 2023-07-25 | 明链科技(深圳)有限公司 | 创建区块链网络的方法、电子设备及介质 |
CN110471928B (zh) * | 2019-07-08 | 2022-06-21 | 上海数据交易中心有限公司 | 数据流通系统 |
CN110414268B (zh) * | 2019-07-23 | 2022-05-10 | 北京启迪区块链科技发展有限公司 | 访问控制方法、装置、设备及存储介质 |
CN110430248B (zh) * | 2019-07-23 | 2022-03-25 | 平安科技(深圳)有限公司 | 基于云服务的区块链构建方法、装置、介质及电子设备 |
US20210029163A1 (en) * | 2019-07-24 | 2021-01-28 | International Business Machines Corporation | Security layer for configuring blockchain |
CN112311735B (zh) * | 2019-07-30 | 2021-11-19 | 华为技术有限公司 | 可信认证方法,网络设备、系统及存储介质 |
EP3772205A1 (en) | 2019-07-31 | 2021-02-03 | Nokia Technologies Oy | User-controlled access to data in a communication network |
US11695543B2 (en) * | 2019-08-22 | 2023-07-04 | Myndshft Technologies, Inc. | Blockchain network control system and methods |
CN110490588A (zh) * | 2019-08-23 | 2019-11-22 | 深圳前海环融联易信息科技服务有限公司 | 身份证书管理方法、装置、计算机设备及存储介质 |
CN110489129B (zh) * | 2019-08-27 | 2023-09-05 | 中国工商银行股份有限公司 | 区块链混合云中的公有云产品包生成方法及服务器 |
CN110581887B (zh) * | 2019-09-02 | 2021-03-30 | 北京海益同展信息科技有限公司 | 数据处理方法、装置、区块链节点及存储介质 |
SG11202002467TA (en) | 2019-09-02 | 2020-04-29 | Alibaba Group Holding Ltd | Managing blockchain-based centralized ledger systems |
EP3808030B1 (en) * | 2019-09-02 | 2022-05-04 | Advanced New Technologies Co., Ltd. | Managing blockchain-based centralized ledger systems |
SG11202002911UA (en) | 2019-09-02 | 2021-04-29 | Advanced New Technologies Co Ltd | Managing blockchain-based centralized ledger systems |
CN110544095A (zh) * | 2019-09-03 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 区块链网络的交易处理方法及区块链网络 |
CN110532115B (zh) * | 2019-09-04 | 2021-03-05 | 北京海益同展信息科技有限公司 | 用于开发智能合约的系统、方法和装置 |
CN110730204B (zh) * | 2019-09-05 | 2022-09-02 | 创新先进技术有限公司 | 区块链网络中删除节点的方法和区块链系统 |
CN114401150B (zh) | 2019-09-05 | 2023-10-20 | 创新先进技术有限公司 | 区块链网络中加入节点的方法和区块链系统 |
US11528194B2 (en) * | 2019-09-06 | 2022-12-13 | Jpmorgan Chase Bank, N.A. | Enterprise control plane for data streaming service |
CN110543525B (zh) * | 2019-09-10 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 区块链网络的管控方法、装置、设备及存储介质 |
US11436032B2 (en) | 2019-09-10 | 2022-09-06 | Red Hat, Inc. | Blockchain-based container image registry |
EP4031990A4 (en) | 2019-09-17 | 2023-10-11 | Coinbase, Inc. | SYSTEM AND METHOD FOR MANAGING BLOCKCHAIN NODES |
CN110727644B (zh) * | 2019-09-29 | 2022-06-24 | 南京金宁汇科技有限公司 | 一种区块链数据裁剪的方法、系统及存储介质 |
WO2021064565A1 (en) * | 2019-09-30 | 2021-04-08 | nChain Holdings Limited | Call-back mechanisms for blockchain transactions |
US11516147B2 (en) | 2019-10-02 | 2022-11-29 | Red Hat, Inc. | Blockchain-based dynamic storage provisioner |
CN110716719B (zh) * | 2019-10-09 | 2023-05-09 | 民生科技有限责任公司 | 一种金融区块链联盟平台交易动态背书策略实现方法 |
US11941021B2 (en) * | 2019-10-25 | 2024-03-26 | Accenture Global Solutions Limited | Automatic creation of blockchain network infrastructures |
US11405394B2 (en) * | 2019-10-30 | 2022-08-02 | Pulse Secure, Llc | Trust broker system for managing and sharing trust levels |
US11349637B2 (en) | 2019-11-04 | 2022-05-31 | International Business Machines Corporation | Random node selection for permissioned blockchain |
CN110795765B (zh) * | 2019-11-04 | 2021-09-10 | 厦门无链之链科技有限公司 | 一种基于u盾的个人移动区块链操作系统 |
CN111386523B (zh) | 2019-11-08 | 2023-10-17 | 支付宝(杭州)信息技术有限公司 | 用于基于区块链的去中心化应用开发的系统和方法 |
CN111373402B (zh) * | 2019-11-08 | 2022-03-25 | 支付宝(杭州)信息技术有限公司 | 轻量去中心化应用平台 |
CN111222885B (zh) * | 2019-11-13 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 数据处理请求背书方法、装置、计算机设备及存储介质 |
CN110688261A (zh) * | 2019-11-13 | 2020-01-14 | 杭州新链科技有限公司 | 一种基于区块链的数字档案异构电子文件云灾备系统 |
CN110855791B (zh) * | 2019-11-18 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 一种区块链节点部署方法及相关设备 |
TWI728571B (zh) * | 2019-11-26 | 2021-05-21 | 中華電信股份有限公司 | 區塊鏈服務的資源管理方法及系統 |
US11693979B2 (en) * | 2019-11-27 | 2023-07-04 | International Business Machines Corporation | Dynamic permission assignment and enforcement for transport process |
CN111083223B (zh) * | 2019-12-18 | 2020-09-01 | 安徽兆尹信息科技股份有限公司 | 一种用于资产证券化处理子平台的区块链互联系统及其互联数据通信方法 |
WO2021125997A1 (ru) * | 2019-12-19 | 2021-06-24 | Общество С Ограниченной Ответственностью "Глобус Медиа" | Способ и система для осуществления поиска предложений билетов |
CN111211938B (zh) * | 2019-12-30 | 2021-10-15 | 北京百迈客生物科技有限公司 | 生物信息软件监控系统及方法 |
US11461361B2 (en) * | 2019-12-31 | 2022-10-04 | Cerner Innovation, Inc. | Rapid hyperledger onboarding platform |
CN111221568B (zh) * | 2020-01-10 | 2023-05-26 | 杭州趣链科技有限公司 | 一种基于物理机部署的Fabric链码生命周期管理系统 |
CN111245624B (zh) * | 2020-01-14 | 2023-02-28 | 杭州趣链科技有限公司 | 一种多类型区块链部署管理系统和方法 |
CN110852887B (zh) * | 2020-01-14 | 2020-06-12 | 支付宝(杭州)信息技术有限公司 | 获取去中心化应用集群中的交易处理状态的方法及装置 |
CN111259298B (zh) * | 2020-01-16 | 2023-06-27 | 深圳市华海同创科技有限公司 | 基于区块链的话题生成方法、节点服务器及存储介质 |
CN111258725B (zh) * | 2020-01-17 | 2023-07-25 | 北京百度网讯科技有限公司 | 一种基于区块链的数据处理方法、装置、设备和介质 |
CN111324599B (zh) * | 2020-01-20 | 2023-04-07 | 中国科学院计算技术研究所 | 一种区块链实验系统及管理方法 |
US11824970B2 (en) | 2020-01-20 | 2023-11-21 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing user access controls in a metadata driven blockchain operating via distributed ledger technology (DLT) using granular access objects and ALFA/XACML visibility rules |
US20210234666A1 (en) * | 2020-01-27 | 2021-07-29 | Project Verte Inc. | Enhanced blockchain master node computing stack |
US11144335B2 (en) | 2020-01-30 | 2021-10-12 | Salesforce.Com, Inc. | System or method to display blockchain information with centralized information in a tenant interface on a multi-tenant platform |
US11611560B2 (en) | 2020-01-31 | 2023-03-21 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform |
US11874804B2 (en) | 2020-02-05 | 2024-01-16 | International Business Machines Corporation | Load balancing based blockchain transaction submission |
US11868338B2 (en) * | 2020-02-21 | 2024-01-09 | International Business Machines Corporation | Tracking and fault determination in complex service environment |
CN111340470B (zh) * | 2020-02-24 | 2023-04-18 | 中国工商银行股份有限公司 | 区块链交易处理方法、节点及合约容器 |
US11682095B2 (en) | 2020-02-25 | 2023-06-20 | Mark Coast | Methods and apparatus for performing agricultural transactions |
CN113382030A (zh) * | 2020-03-10 | 2021-09-10 | 本无链科技(深圳)有限公司 | 一种用于区块链的安全微型服务器的设计方法及系统 |
US11233855B2 (en) | 2020-03-10 | 2022-01-25 | Bank Of America Corporation | System for application control using distributed servers |
US11323538B1 (en) * | 2020-03-12 | 2022-05-03 | PubNub, Inc. | Distributed transmission of messages in a communication network with selective multi-region replication |
US11362826B2 (en) | 2020-03-18 | 2022-06-14 | International Business Machines Corporation | Endorsement process for non-deterministic application |
CN111404757A (zh) * | 2020-03-26 | 2020-07-10 | 成都云巢智联科技有限公司 | 基于云的跨网络应用集成系统 |
US11856057B2 (en) * | 2020-04-02 | 2023-12-26 | International Business Machines Corporation | Preservation of channel metadata |
US11489799B2 (en) * | 2020-04-02 | 2022-11-01 | Jpmorgan Chase Bank, N.A. | Systems and methods for communication routing and optimization among multiple distributed ledgers |
CN113535188A (zh) * | 2020-04-15 | 2021-10-22 | 北京沃东天骏信息技术有限公司 | 私有化部署的方法和装置 |
CN111563089B (zh) * | 2020-04-20 | 2023-10-27 | 杭州云象网络技术有限公司 | 一种区块链证书更换自动更新通道配置的方法和装置 |
WO2020143854A2 (en) | 2020-04-22 | 2020-07-16 | Alipay (Hangzhou) Information Technology Co., Ltd. | Managing transaction requests in ledger systems |
WO2020143856A2 (en) | 2020-04-22 | 2020-07-16 | Alipay (Hangzhou) Information Technology Co., Ltd. | Managing transaction requests in ledger systems |
WO2020143855A2 (en) | 2020-04-22 | 2020-07-16 | Alipay (Hangzhou) Information Technology Co., Ltd. | Managing transaction requests in ledger systems |
US11546425B2 (en) * | 2020-04-23 | 2023-01-03 | Oracle International Corporation | Systems and methods of providing ledger as a service |
KR102211937B1 (ko) * | 2020-04-29 | 2021-02-04 | 에스지에이비엘씨 주식회사 | 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템 |
US11893002B2 (en) * | 2020-05-04 | 2024-02-06 | Salesforce, Inc. | System or method to run distributed validation of workflows across a network in a shared distributed ledger in multi-tenant cloud environment |
CN111669267B (zh) * | 2020-05-15 | 2024-02-20 | 西安纸贵互联网科技有限公司 | 区块链的共识机制配置及背书策略配置方法 |
US11556517B2 (en) * | 2020-05-17 | 2023-01-17 | International Business Machines Corporation | Blockchain maintenance |
CN111444495B (zh) * | 2020-05-20 | 2020-11-24 | 江苏易安联网络技术有限公司 | 一种基于容器实现单点登录的系统及方法 |
CN111669377B (zh) * | 2020-05-27 | 2023-02-03 | 国家广播电视总局广播电视规划院 | 一种区块链上链信息的安全管控方法 |
US11741075B2 (en) * | 2020-06-04 | 2023-08-29 | Oracle International Corporation | Methods and system of tracking transactions for distributed ledger |
KR102201679B1 (ko) * | 2020-06-12 | 2021-01-12 | 박성갑 | 마이데이터 공유 서비스 방법 |
US11356383B2 (en) | 2020-06-19 | 2022-06-07 | Hewlett Packard Enterprise Development Lp | Cloud translation mechanism |
CN111858089B (zh) * | 2020-06-29 | 2024-01-23 | 北京百度网讯科技有限公司 | 以太坊节点的调用方法以及装置 |
JP7408499B2 (ja) * | 2020-07-06 | 2024-01-05 | 株式会社日立製作所 | 分散台帳管理システム、分散台帳管理方法、およびノード |
CN111541552B (zh) | 2020-07-08 | 2021-06-22 | 支付宝(杭州)信息技术有限公司 | 区块链一体机及其节点自动加入方法、装置 |
CN111541724B (zh) | 2020-07-08 | 2021-06-29 | 支付宝(杭州)信息技术有限公司 | 区块链一体机及其节点自动加入方法、装置 |
US11470158B2 (en) * | 2020-07-14 | 2022-10-11 | The Travelers Indemnity Company | Systems and methods for asynchronous API-driven external application services for a blockchain |
CN111782305B (zh) * | 2020-07-21 | 2021-01-19 | 江苏荣泽信息科技股份有限公司 | 一种高效安全智能合约运行环境的方法 |
CA3094539A1 (en) | 2020-07-23 | 2022-01-23 | The Toronto-Dominion Bank | Multidirectional synchronization of confidential data using distributed ledgers |
CN111600967B (zh) * | 2020-07-24 | 2020-11-06 | 江苏荣泽信息科技股份有限公司 | 一种基于访问压力的区块链节点间负载均衡系统 |
CN111866162B (zh) * | 2020-07-28 | 2022-02-18 | 中国联合网络通信集团有限公司 | 一种业务分配方法及装置 |
US11481268B2 (en) * | 2020-08-03 | 2022-10-25 | International Business Machines Corporation | Blockchain management of provisioning failures |
CN111930541B (zh) * | 2020-08-17 | 2024-08-09 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种grpc服务动态调用方法及系统 |
US11113241B1 (en) * | 2020-08-22 | 2021-09-07 | Tyson York Winarski | Computer application for blockchaining files through a graphical user interface |
CN114116883A (zh) * | 2020-08-28 | 2022-03-01 | 京东方科技集团股份有限公司 | 数据管理方法、数据管理装置、区块链网络和系统 |
US11943269B2 (en) * | 2020-08-31 | 2024-03-26 | Intuit Inc. | Transactions over live media |
CN111930852B (zh) * | 2020-09-29 | 2022-03-25 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
US11736456B2 (en) * | 2020-09-29 | 2023-08-22 | International Business Machines Corporation | Consensus service for blockchain networks |
US11700125B2 (en) | 2020-10-05 | 2023-07-11 | Redcom Laboratories, Inc. | zkMFA: zero-knowledge based multi-factor authentication system |
JP2022070579A (ja) * | 2020-10-27 | 2022-05-13 | 株式会社日立製作所 | 分散台帳管理方法、分散台帳システム、およびノード |
US11720547B2 (en) * | 2020-11-03 | 2023-08-08 | Sap Se | Blockchain service based application generator |
US11822538B2 (en) | 2020-11-05 | 2023-11-21 | Oracle International Corporation | Systems and methods of transaction identification generation for transaction-based environment |
CN112527331A (zh) * | 2020-12-16 | 2021-03-19 | 平安国际智慧城市科技股份有限公司 | 基于fabric链码的线上管理方法、系统及存储介质 |
CN112637318B (zh) * | 2020-12-17 | 2022-09-30 | 哈尔滨工业大学(威海) | 一种面向存储完整性的智能网关系统、装置及其控制方法 |
CN112732830B (zh) * | 2020-12-29 | 2022-03-01 | 江阴华西化工码头有限公司 | 一种基于区块链的码头物流供应链数据保护方法 |
US20220294788A1 (en) * | 2021-03-09 | 2022-09-15 | Oracle International Corporation | Customizing authentication and handling pre and post authentication in identity cloud service |
CN112968908B (zh) * | 2021-03-26 | 2022-02-08 | 中国电子科技集团公司第三十研究所 | 具有数据汇聚和单向传输的物联网安全网关及实现方法 |
EP4315747A1 (en) * | 2021-03-31 | 2024-02-07 | Microsoft Technology Licensing, LLC | Token management for asynchronous request-reply |
CN113111325B (zh) * | 2021-04-21 | 2022-04-19 | 中国电子科技网络信息安全有限公司 | 一种身份链的构建方法 |
CN113239359A (zh) * | 2021-04-26 | 2021-08-10 | 中央财经大学 | 一种区块链可信容器安全加固系统及方法 |
KR20220153815A (ko) * | 2021-05-12 | 2022-11-21 | (주)모니터랩 | 멀티 노드 환경에서 컨테이너 관리 운영 방법과 시스템 |
CN113612809B (zh) * | 2021-05-13 | 2023-11-14 | 南京欣网互联网络科技有限公司 | 一种基于PaaS平台的BaaS架构下fabric链码外部调用方法 |
US20220374398A1 (en) * | 2021-05-24 | 2022-11-24 | Red Hat, Inc. | Object Creation from Schema for Event Streaming Platform |
CN113312427B (zh) * | 2021-05-24 | 2023-04-28 | 网易(杭州)网络有限公司 | 区块链调用方法、装置、管理服务平台及存储介质 |
CN113435786B (zh) * | 2021-07-21 | 2022-11-11 | 杭州云象网络技术有限公司 | 用于节点管理的区块链运维监管方法 |
CN113393313B (zh) * | 2021-08-17 | 2021-11-09 | 环球数科集团有限公司 | 面向电信增值业务的记账工具进行可信存证的写入机制 |
US11620364B2 (en) * | 2021-08-23 | 2023-04-04 | Dell Products, L.P. | Layered-infrastructure blockchain-based system for software license distribution |
KR102347568B1 (ko) * | 2021-09-23 | 2022-01-06 | 동국대학교 경주캠퍼스 산학협력단 | 블록체인 시스템에서 블록 전송 방법 |
US20240152637A1 (en) * | 2021-12-31 | 2024-05-09 | Schlumberger Technology Corporation | Data system |
CN114499877B (zh) * | 2022-01-13 | 2023-10-03 | 熵链科技(福建)有限公司 | 区块链BaaS中组织对多条链的统一管理接口的方法 |
US11706155B1 (en) | 2022-02-04 | 2023-07-18 | Red Hat, Inc. | Managing cloud acquisitions using distributed ledgers |
CN114531454B (zh) * | 2022-02-25 | 2024-01-16 | 中发国研信息技术研究院(北京)有限公司 | 基于区块链的无人驾驶数据集可信测评系统 |
CN114579175A (zh) * | 2022-03-02 | 2022-06-03 | 北京百度网讯科技有限公司 | 一种公有云算子转私有化的方法、装置、电子设备及介质 |
CN114338242B (zh) * | 2022-03-10 | 2022-06-14 | 广东省科技基础条件平台中心 | 一种基于区块链技术的跨域单点登录访问方法及系统 |
CN114531305B (zh) * | 2022-04-23 | 2022-07-19 | 东南大学 | 一种面向以链治链的区块链跨链监管方法 |
US12014226B2 (en) | 2022-06-30 | 2024-06-18 | Mastercard International Incorporated | Microservice platform message management system |
WO2024016049A1 (en) * | 2022-07-18 | 2024-01-25 | Nansen Pty Ltd | A system and method for implementing responsive, cost-effective immutability and data integrity validation in cloud and distributed storage systems using distributed ledger and smart contract technology |
US20240126759A1 (en) * | 2022-10-14 | 2024-04-18 | Sap Se | Converting an api into a graph api |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011530260A (ja) * | 2008-09-10 | 2011-12-15 | エルジー エレクトロニクス インコーポレイティド | 選択的な制御信号暗号化方法 |
CN106101242A (zh) * | 2016-06-24 | 2016-11-09 | 深圳前海微众银行股份有限公司 | 区块链云服务平台的构建方法和装置 |
CN106228446A (zh) * | 2016-05-12 | 2016-12-14 | 北京众享比特科技有限公司 | 基于私有区块链的资产交易平台系统及方法 |
CN106897933A (zh) * | 2017-04-18 | 2017-06-27 | 杜伯仁 | 一种面向多区块链平台的区块链网络节点服务装置 |
CN106991612A (zh) * | 2017-03-31 | 2017-07-28 | 北京京东金融科技控股有限公司 | 用于金融数据共享的方法、装置及电子设备 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011215827A (ja) | 2010-03-31 | 2011-10-27 | Canon Inc | 文書生成装置 |
US9253016B2 (en) | 2010-11-02 | 2016-02-02 | International Business Machines Corporation | Management of a data network of a computing environment |
US20120227098A1 (en) | 2011-03-03 | 2012-09-06 | Microsoft Corporation | Sharing user id between operating system and application |
US20130046894A1 (en) | 2011-08-18 | 2013-02-21 | Sap Ag | Model-driven rest consumption framework |
US10310824B2 (en) | 2011-09-07 | 2019-06-04 | Imagine Communications Corp. | Distributed ledger platform for computing applications |
JP6460798B2 (ja) | 2012-02-10 | 2019-01-30 | オラクル・インターナショナル・コーポレイション | クラウドコンピューティングサービスフレームワーク |
US9705965B2 (en) | 2013-08-14 | 2017-07-11 | Vmware, Inc. | Systems and methods for PaaS level app motion |
US9332018B2 (en) * | 2014-04-03 | 2016-05-03 | Prote. Us Converged Systems Corporation | Method and system for secure authentication |
US10362059B2 (en) * | 2014-09-24 | 2019-07-23 | Oracle International Corporation | Proxy servers within computer subnetworks |
JP6309442B2 (ja) | 2014-12-18 | 2018-04-11 | 株式会社日立製作所 | システムテンプレート保守システム及びシステムテンプレート保守方法 |
US20160260095A1 (en) | 2015-03-02 | 2016-09-08 | Dell Products, Lp | Containerized Computational Task Execution Management Using a Secure Distributed Transaction Ledger |
US9652269B2 (en) * | 2015-04-03 | 2017-05-16 | Oracle International Corporation | System and method for supporting representational state transfer services natively in a service bus runtime |
AU2016246428B2 (en) | 2015-04-05 | 2017-11-09 | Digital Asset (Switzerland) GmbH | Digital asset intermediary electronic settlement platform |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
CN108027867A (zh) | 2015-07-14 | 2018-05-11 | Fmr有限责任公司 | 计算高效的转账处理、审计以及搜索装置、方法和系统 |
US9912494B2 (en) | 2015-08-12 | 2018-03-06 | Cisco Technology, Inc. | Distributed application hosting environment to mask heterogeneity |
US10496837B2 (en) * | 2015-10-23 | 2019-12-03 | Oracle International Corporation | Support sharing the same table for protected and non-protected data columns |
US20170116693A1 (en) | 2015-10-27 | 2017-04-27 | Verimatrix, Inc. | Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger |
EP3394779B1 (en) | 2015-12-22 | 2021-11-03 | Financial & Risk Organisation Limited | Methods and systems for identity creation, verification and management |
US20170236120A1 (en) | 2016-02-11 | 2017-08-17 | Oracle International Corporation | Accountability and Trust in Distributed Ledger Systems |
CA3014392C (en) | 2016-02-12 | 2024-04-16 | Royal Bank Of Canada | Methods and systems for digital reward processing |
US20170243193A1 (en) | 2016-02-18 | 2017-08-24 | Skuchain, Inc. | Hybrid blockchain |
WO2017147696A1 (en) | 2016-02-29 | 2017-09-08 | Troy Jacob Ronda | Systems and methods for distributed identity verification |
US10067810B2 (en) * | 2016-07-28 | 2018-09-04 | Cisco Technology, Inc. | Performing transactions between application containers |
US10282558B2 (en) * | 2016-09-02 | 2019-05-07 | The Toronto-Dominion Bank | System and method for maintaining a segregated database in a multiple distributed ledger system |
US20180130034A1 (en) | 2016-11-07 | 2018-05-10 | LedgerDomain, LLC | Extended blockchains for event tracking and management |
US10691763B2 (en) * | 2016-11-11 | 2020-06-23 | International Business Machines Corporation | Trustable web searching verification in a blockchain |
US10169614B2 (en) * | 2016-11-17 | 2019-01-01 | International Business Machines Corporation | Container update system |
US10396997B2 (en) | 2016-12-14 | 2019-08-27 | International Business Machines Corporation | Container-based operating system and method |
US10229270B2 (en) | 2016-12-23 | 2019-03-12 | Amazon Technologies, Inc. | Host attestation |
EP3563545B1 (en) | 2016-12-30 | 2024-07-17 | INTEL Corporation | Blockchains for securing iot devices |
CN106850611B (zh) | 2017-01-25 | 2020-04-10 | 辽宁中科信科技有限公司 | 一种跨系统物联网安全通讯技术服务平台方法 |
CN106790265A (zh) | 2017-02-10 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 采用协同加密的方式进行云计算的安全管理的实现方法 |
CN106982205B (zh) | 2017-03-01 | 2020-05-19 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 基于区块链的数字资产处理方法和装置 |
US10375105B2 (en) | 2017-03-03 | 2019-08-06 | International Business Machines Corporation | Blockchain web browser interface |
CN106952124A (zh) | 2017-03-16 | 2017-07-14 | 北京牛链科技有限公司 | 基于分布式记账的电子发票管理系统和方法 |
US10452998B2 (en) * | 2017-03-19 | 2019-10-22 | International Business Machines Corporation | Cognitive blockchain automation and management |
US11128437B1 (en) * | 2017-03-30 | 2021-09-21 | EMC IP Holding Company LLC | Distributed ledger for peer-to-peer cloud resource sharing |
US10757103B2 (en) | 2017-04-11 | 2020-08-25 | Xage Security, Inc. | Single authentication portal for diverse industrial network protocols across multiple OSI layers |
US11157876B1 (en) | 2017-04-12 | 2021-10-26 | Massachusetts Mutual Life Insurance Company | Intelligent employment-based blockchain |
US10469460B2 (en) * | 2017-04-17 | 2019-11-05 | Cisco Technology, Inc. | Data sharing in a blockchain-enabled trust domain |
US12026685B2 (en) * | 2017-04-21 | 2024-07-02 | Blockdaemon Inc. | Method and apparatus for blockchain management |
US10833858B2 (en) * | 2017-05-11 | 2020-11-10 | Microsoft Technology Licensing, Llc | Secure cryptlet tunnel |
US10601900B2 (en) * | 2017-05-24 | 2020-03-24 | Red Hat, Inc. | Supporting distributed ledgers in a micro-services environment |
US9870508B1 (en) | 2017-06-01 | 2018-01-16 | Unveiled Labs, Inc. | Securely authenticating a recording file from initial collection through post-production and distribution |
US10789104B2 (en) | 2017-06-30 | 2020-09-29 | Vmware, Inc. | Methods and apparatus for deploying a distributed system using operating system virtualization |
US10581873B2 (en) * | 2017-07-11 | 2020-03-03 | Cisco Technology, Inc. | Securing micro-services |
US10123202B1 (en) | 2017-07-11 | 2018-11-06 | Verizon Patent And Licensing Inc. | System and method for virtual SIM card |
US11343095B2 (en) * | 2017-09-19 | 2022-05-24 | Microsoft Technology Licensing, Llc | Cryplet binding key graph |
US10756990B1 (en) | 2017-09-22 | 2020-08-25 | Equinix, Inc. | Monitoring and performance improvement of enterprise applications using correlated data associated with a plurality of service layers |
US11556521B2 (en) | 2017-09-29 | 2023-01-17 | Oracle International Corporation | System and method for providing an interface for a blockchain cloud service |
-
2018
- 2018-09-25 US US16/141,329 patent/US11556521B2/en active Active
- 2018-09-25 US US16/141,339 patent/US10528551B2/en active Active
- 2018-09-25 US US16/141,337 patent/US10762079B2/en active Active
- 2018-09-28 WO PCT/US2018/053555 patent/WO2019067988A1/en unknown
- 2018-09-28 CN CN201880007466.0A patent/CN110537182B/zh active Active
- 2018-09-28 EP EP18793321.3A patent/EP3688957B1/en active Active
- 2018-09-28 EP EP18789552.9A patent/EP3676744B1/en active Active
- 2018-09-28 MX MX2020003790A patent/MX2020003790A/es unknown
- 2018-09-28 WO PCT/US2018/053553 patent/WO2019067986A1/en unknown
- 2018-09-28 CN CN201880007452.9A patent/CN110226168B/zh active Active
- 2018-09-28 JP JP2019552193A patent/JP6872035B2/ja active Active
- 2018-09-28 CA CA3071430A patent/CA3071430C/en active Active
- 2018-09-28 CN CN201880007469.4A patent/CN110192380B/zh active Active
- 2018-09-28 WO PCT/US2018/053556 patent/WO2019067989A1/en unknown
- 2018-09-28 JP JP2019546842A patent/JP7000442B2/ja active Active
- 2018-09-28 EP EP18789749.1A patent/EP3688650B1/en active Active
- 2018-09-28 JP JP2019554330A patent/JP6823732B2/ja active Active
-
2019
- 2019-12-05 US US16/704,976 patent/US11636095B2/en active Active
-
2020
- 2020-08-31 US US17/008,274 patent/US11544254B2/en active Active
-
2021
- 2021-11-11 US US17/524,234 patent/US20220067035A1/en active Pending
- 2021-12-23 JP JP2021209477A patent/JP7316347B2/ja active Active
-
2023
- 2023-07-14 JP JP2023116072A patent/JP2023134679A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011530260A (ja) * | 2008-09-10 | 2011-12-15 | エルジー エレクトロニクス インコーポレイティド | 選択的な制御信号暗号化方法 |
CN106228446A (zh) * | 2016-05-12 | 2016-12-14 | 北京众享比特科技有限公司 | 基于私有区块链的资产交易平台系统及方法 |
CN106101242A (zh) * | 2016-06-24 | 2016-11-09 | 深圳前海微众银行股份有限公司 | 区块链云服务平台的构建方法和装置 |
CN106991612A (zh) * | 2017-03-31 | 2017-07-28 | 北京京东金融科技控股有限公司 | 用于金融数据共享的方法、装置及电子设备 |
CN106897933A (zh) * | 2017-04-18 | 2017-06-27 | 杜伯仁 | 一种面向多区块链平台的区块链网络节点服务装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112565215A (zh) * | 2020-11-25 | 2021-03-26 | 电信科学技术第十研究所有限公司 | 基于分布式服务代理的rest应用架构及构架方法 |
TWI820360B (zh) * | 2020-11-26 | 2023-11-01 | 陳哲斌 | 社群風險互助系統、及其伺服器 |
CN112905190A (zh) * | 2021-03-30 | 2021-06-04 | 飞豹链(深圳)信息科技有限公司 | 一种基于服务的差异化链码部署方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110537182A (zh) | 为区块链云服务提供代表性状态转移代理服务的系统和方法 | |
US11169985B2 (en) | System and method for supporting SQL-based rich queries in hyperledger fabric blockchains | |
CN113711536B (zh) | 从区块链网络中提取数据 | |
Pasdar et al. | Connect API with blockchain: A survey on blockchain oracle implementation | |
JP2022174127A (ja) | 分散型元帳におけるdagベースのトランザクション処理方法およびシステム | |
US11546425B2 (en) | Systems and methods of providing ledger as a service | |
US11853291B2 (en) | Privacy preserving architecture for permissioned blockchains | |
US11822538B2 (en) | Systems and methods of transaction identification generation for transaction-based environment | |
Shivers | Toward a secure and decentralized blockchain-based ride-hailing platform for autonomous vehicles | |
Manevich et al. | Endorsement in Hyperledger Fabric via service discovery | |
WO2024099023A1 (zh) | 多区块链数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品 | |
CN117917681A (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 |