CN111213128A - 实现基于区块链的web服务 - Google Patents

实现基于区块链的web服务 Download PDF

Info

Publication number
CN111213128A
CN111213128A CN201980004906.1A CN201980004906A CN111213128A CN 111213128 A CN111213128 A CN 111213128A CN 201980004906 A CN201980004906 A CN 201980004906A CN 111213128 A CN111213128 A CN 111213128A
Authority
CN
China
Prior art keywords
blockchain network
web
network node
data
web service
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
Application number
CN201980004906.1A
Other languages
English (en)
Other versions
CN111213128B (zh
Inventor
冯志远
李艳鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Publication of CN111213128A publication Critical patent/CN111213128A/zh
Application granted granted Critical
Publication of CN111213128B publication Critical patent/CN111213128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3297Cryptographic 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 involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

本文公开了用于实现基于区块链的web服务的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:区块链网络的区块链网络节点从客户端设备接收针对web数据的web服务请求。所述web服务请求被存储在所述区块链网络节点上。所述区块链网络节点将所述web服务请求转发到部署在所述区块链网络节点上的软件容器中的智能合约。所述区块链网络节点从智能合约获得响应于web服务请求的执行结果,并将执行结果发送至客户端设备。

Description

实现基于区块链的web服务
技术领域
本文涉及实现基于区块链的web服务。
背景技术
分布式账本系统(DLS),也可以被称为共识网络和/或区块链网络,使得参与的实体能够安全地并且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的类型的示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并且联盟区块链网络包括访问控制层。
在区块链应用开发中,通常提供集成了区块链软件开发套件(SDK)的中间站服务(前端服务和后端服务之间的中间层服务)以调用区块链方法。中间站服务充当用户与区块链网络/系统之间的链接。但是,这种中间站服务通常是黑匣子,并且需要用户信任中间站服务,这可能带来安全问题。此外,中间站服务被实现为中心化系统,这破坏了区块链网络/系统的去中心化特质。因此,期望实现基于区块链的web服务的解决方案。
发明内容
本文描述用于实现基于区块链的web服务的技术。这些技术通常涉及实现基于区块链网络的web服务。在一些实施例中,通过在区块链网络的区块链网络节点上执行的智能合约将web服务提供给客户端(例如,提供静态web页面、修改web数据)。在一些实施例中,智能合约在部署在区块链网络节点中的软件容器中执行。
本文还提供了一个或多个非暂态计算机可读存储介质,其耦接到一个或多个处理器并且具有存储在其上的指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器根据本文提供的方法的实施例执行操作。
本文还提供了用于实现本文提供的方法的系统。该系统包括一个或多个处理器,以及耦接到一个或多个处理器的计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器根据这里提供的方法的实施例执行操作。
应当理解的是,根据本文的方法可以包括本文描述的方面和特征的任何组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任何组合。
在附图和以下描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求书,本文的其他特征和优点将显现。
附图说明
图1是示出可以用于执行本文实施例的环境的示例的示图。
图2是示出根据本文实施例的架构的示例的示图。
图3是示出根据本文实施例的用于实现web服务的系统的示例示图。
图4是示出根据本文实施例的区块链网络节点的示例的示图。
图5是示出根据本文实施例的用于实现web服务的系统的示例示图。
图6是示出可以根据本文实施例执行的处理的示例的信号流。
图7是示出可以根据本文实施例执行的处理的流程图。
图8描绘了根据本文实施例的装置的模块的示例。
各附图中的相同附图标记和名称表示相同的元件。
具体实施方式
本文描述了用于实现基于区块链的web服务的技术。这些技术一般涉及基于区块链网络实现web服务。在一些实施例中,通过在区块链网络的区块链网络节点上执行的智能合约将web服务提供给客户端(例如,提供静态web页面、修改web数据)。在一些实施例中,智能合约在部署在区块链网络节点中的软件容器中执行。
本文中描述的技术产生若干技术效果。在一些实施例中,所描述的技术增强了数据安全性。例如,当请求web服务时,客户端可以使用浏览器直接访问区块链网络的区块链网络节点,而无需使用中间代理(例如中间站服务)。这有助于避免使用中间代理导致的对数据安全性的损害。在一些实施例中,所描述的技术提供了提高的系统灵活性和可扩展性。在一些实施例中,由区块链网络的区块链网络节点将web服务提供给客户端设备而无需中间代理,并且客户端可以具有与区块链网络节点的已定义的接口,用于从区块链网络的每个区块链网络节点获得web服务。在一些实施例中,每个区块链网络节点可以包括一个或多个软件容器,以独立地执行基于web服务的请求和逻辑,而无需依赖外部服务器来执行web服务请求和逻辑。在一些实施例中,可以在不使用区块链网络的软件开发套件(SDK)的情况下访问存储在区块链网络的区块链网络节点上的web数据。这降低了实现基于区块链的web服务的系统的复杂性,从而提高了系统的效率。
为了提供本文的实施例的进一步上下文,如上所述,分布式账本系统(DLS),其也可以称为共识网络(例如,由点对点节点组成)和区块链网络,使得参与的实体能够安全地且不可篡改地进行交易和存储数据。尽管术语“区块链”通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文使用“区块链”来一般地指代DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并被编码到默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenate)。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。可通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可以作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。本文参考联盟区块链网络更详细地描述了本文的实施例。然而,可以预期,本文的实施例可以在任何适当类型的区块链网络中实现。
通常,联盟区块链网络在参与实体间是私有的。在联盟区块链网络中,共识处理由可以被称为共识节点的授权的节点集控制,一个或多个共识节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络内,全局区块链作为跨所有节点复制的区块链被提供。也就是说,相对于全局区块链,所有的共识节点处于完全共识状态。为了实现共识(例如,同意将区块添加到区块链),在联盟区块链网络内实现共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(PBFT)共识,下面将进一步详细描述。
图1是示出了可以用于执行本文实施例的环境100的示例的示图。在一些示例中,环境100使得实体能够参与至联盟区块链网络102中。环境100包括计算系统106、108和网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路访问网络110。在一些示例中,网络110使得能够与联盟区块链网络102通信或在联盟区块链网络102内通信。通常,网络110表示一个或多个通信网络。在一些情况下,计算系统106、108可以是云计算系统(未示出)的节点,或者每个计算系统106、108可以是单独的云计算系统,其包括通过网络互连的并且用作分布式处理系统的多个计算机。
在所描绘的示例中,计算系统106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算设备。示例计算设备包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算系统106、108承载一个或多个由计算机实施的服务,用于与联盟区块链网络102进行交互。例如,计算系统106可以承载第一实体(例如,用户A)的计算机实施的服务,例如,第一实体使用其管理与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。计算系统108可以承载第二实体(例如,用户B)的由计算机实施的服务,例如,第二实体使用其管理与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),并且计算系统106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2是示出根据本文实施例的架构200的示例的示图。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使得相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206存储区块链216的相应的完整副本216'、216”、216”'。
区块链(例如,图2的区块链216)由区块的链组成,每个区块存储数据。数据的示例包括表示两个或更多参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括但不限于交换有价物(例如,资产、产品、服务、货币)。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度的哈希值(也作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。示例性哈希函数包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此过程,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并执行将区块添加到区块链中的工作。这样的节点被称为共识节点。上文介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
更详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)为止。将此哈希值添加到区块头中。共识节点还确定区块链中最新的区块(即添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数(nonce)值和时间戳。
通常,PBFT提供容忍拜占庭错误(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的经操纵的消息)在PBFT中实现。在PBFT中,在包括主共识节点和备份共识节点的序列中提供共识节点。主共识节点周期性地改变,通过区块链网络内的所有共识节点就区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点接收的,并验证在交易期间消息未被修改。
在PBFT中,共识协议是在所有共识节点始于相同的状态的情况下分多个阶段提供的。首先,客户端向主共识节点发送请求以调用服务操作(例如,在区块链网络内执行交易)。响应于接收到该请求,主共识节点将该请求组播到备共识节点。备份共识节点执行请求,并且每个节点都向客户端发送回复。客户端等待直到接收到阈值数量的恢复。在一些示例中,客户端等待接收f+1个回复,其中f是区块链网络内可以容忍的故障共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序达成一致,该记录被接受或者被拒绝。
在一些区块链网络中,实现密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括(但不限于)对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥对数据进行加密,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥对数据进行加密,并将加密数据发送给参与者B。参与者B可以使用其私钥来对该加密数据(密文)进行解密并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥进行解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以基于参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥对该哈希值进行加密以提供作为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥对该数字签名进行解密,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,则参与者B可以确认该消息确实来自参与者A,且未被篡改。
图3是示出根据本文实施例的系统300的示例的示图。系统300基于区块链网络实现了web服务。一般来说,web服务是通过网络在电子设备之间进行通信的系统和方法。在一些实施例中,web服务包括被设计为支持通过网络(例如互联网或专用网络)进行互操作的机器对机器交互的系统。在一些实施例中,web服务通过使用诸如超文本传输协议(HTTP)、Java、超文本标记语言(HTML)、可扩展标记语言(XML)、web服务描述语言(WSDL)以及简单对象访问协议(SOAP)等的开放标准来促进web应用或系统之间的通信。以各种编程语言(例如Java和Python)编写并在各种平台(例如Windows和Linux系统)上运行的软件应用可以使用web服务在计算机网络上交换数据。这种互操作性(例如,在Java和Python或Windows和Linux应用之间)是由于在web服务中使用了开放标准。在一些实施例中,web服务提供用于在实现web服务的系统的组件之间进行通信的web接口(例如,web应用编程接口(API))。在一些实施例中,web服务包括向客户端设备提供web数据(例如,静态web页面或动态web数据),或响应于客户端请求而修改存储在网络(例如,区块链网络)上的web数据等。
作为示例,系统300包括客户端302、客户端设备304、web接口310和区块链网络312。通常,客户端302可以使用客户端设备304将web服务请求发送到区块链网络312。区块链网络312的区块链网络节点314可以处理web服务请求,并通过客户端设备304向客户端302返回请求结果。在一些实施例中,系统300被配置为使得客户端设备304可以使用web接口310与区块链网络312的区块链网络节点314通信。web接口310可以包括促进系统300的组件之间的通信的任何合适的接口。在一些实施例中,web接口310可以包括诸如以下的webAPI:基于HTTP方法(例如GET,POST,PUT等)的代表性国家转移(REST)web API(或RESTfulAPI)。RESTful web API提供互联网上的计算机系统之间的互操作性,并允许请求系统通过使用统一且预定义的无状态操作集来访问和操纵web资源的文本表示。在一些实施例中,web接口310可以替代地包括使用XML作为有效载荷格式的基于SOAP的webAPI。
客户端设备304可以包括例如被编程以执行本文所述方法的任何合适的计算机、模块、服务器或计算元件。如图所示,客户端设备304包括web浏览器306和用于提供客户端设备304的各种功能的软件应用308。在一些实施例中,web浏览器306可以包括用于访问互联网上的信息的任何合适的web浏览器,例如,Google
Figure BDA0002439500810000101
Mozilla
Figure BDA0002439500810000102
Internet
Figure BDA0002439500810000103
等。
在一些实施例中,区块链网络312可以是联盟区块链网络。如图所示,区块链网络312包括多个区块链网络节点314。注意到示出的区块链网络312包括四个区块链网络节点314仅为说明目的。区块链网络312可以包括任何合适数量的区块链网络节点314。每个区块链网络节点314可以部署一个或多个智能合约316以独立地提供网络服务,而无需依赖中间节点或服务器(例如,由一些或所有区块链网络节点314共享的中心化服务器)。注意到智能合约316被示出位于表示区块链网络节点314的区块的外部仅为说明目的。智能合约316可以在区块链网络节点314中部署和执行。
图4是示出根据本文实施例的区块链网络节点的示例(例如,区块链网络节点314)的示图。在一些实施例中,例如通过使用部署在区块链网络节点314中的智能合约316,区块链网络节点314在提供web服务方面是自包含的。在一些实施例中,智能合约316可以包括定义的功能或操作以检索、生成、存储或以其他方式操纵或管理web服务数据。区块链网络节点314可以包括代理服务402和软件容器404。在一些实施例中,代理服务402可以是区块链网络节点314中的子系统或应用,其充当用于处理来自客户端设备304的请求的中介,该请求从区块链网络312或其他服务器寻求网络资源。软件容器404可以用于执行智能合约316。如图所示,代理服务402经由web接口310通信地连接到智能合约316。
在一些实施例中,代理服务402被配置为与web接口310兼容,这样,区块链网络节点314可以通过web接口310(例如,RESTful API)与客户端设备304(例如,客户端设备304的web浏览器)通信。例如,代理服务402可以被配置为RESTful API代理以包括诸如接收、读取和转发根据RESTful API格式化的指令之类的功能。在一些实施例中,代理服务402可以将根据RESTful API格式化的web服务请求转发至智能合约316。这样,不需要中间web服务器来在客户端节点304与区块链网络节点314之间转换或桥接web服务。在一些实施例中,这样的配置允许来自客户端设备304的web服务请求以及区块链网络节点314和智能合约之间通过诸如RESTful API格式的web接口的通信。
在一些实施例中,代理服务402可以通过代理服务402提供对在一个或两个方向上中继的内容的管理控制。例如,代理服务402可以过滤通过代理服务402中继的内容,以确保web的使用符合可接受的使用策略。在一些实施例中,代理服务402提供客户端认证以控制web访问。例如,代理服务402可以使用认证处理来确定客户端302是否被授权访问存储在区块链网络312上的web数据。
在一些实施例中,软件容器404可以部署并执行智能合约316。在一些实施例中,智能合约316可以被配置为包括诸如接收、读取和处理根据RESTful API格式化的指令的功能。例如,智能合约316可以接收并处理由代理服务402转发的web服务请求,所述请求根据RESTful API被格式化。
在一些实施例中,智能合约316可以接收并处理以通常用于web服务的诸如Java、Go或C/C++等的编程语言编写的指令。在一些实施例中,与由区块链网络中的虚拟机中执行的典型智能合约不同,智能合约316被设计为提供独立于另一个中间或外部节点或服务器的web服务。这样,部署在区块链网络节点314中的智能合约316可以与适当的服务器相关联,以执行以用于web服务的编程语言编写的web服务请求。在一些实施例中,软件容器404包括一个或多个web服务器,其使用网络协议(例如,HTTP等)来响应于客户端请求而将web数据(例如,静态HTMLweb页面等)提供给客户端。例如,web服务器可以包括Java服务器、Go服务器、C/C++服务器或任何其他适当的服务器中的一个或多个。在一些实施例中,智能合约316由每个区块链网络节点314独立地通过web服务器执行或以其他方式访问。
在一些实施例中,软件容器404包括用于执行软件容器404中的智能合约316的独立的可执行软件包。通常,软件容器404是将代码及其所有附属打包的软件单元,因此软件容器404中的容器化的应用(例如,智能合约316)从一个计算环境快速可靠地运行到另一计算环境。在一些实施例中,软件容器404包括运行诸如智能合约316的应用所需的任何代码、运行时间、系统工具、系统库和/或设置。软件容器404可以支持各种平台,例如基于Linux和Windows的应用。在一些实施例中,软件容器404将容器化的应用与其环境隔离,并且确保尽管在例如开发和上线(staging)之间存在差异,但是软件容器404仍能够一致地工作。不管基础结构如何,软件容器404中的容器化应用都可以运行相同的内容。在一些实施例中,软件容器404可以是任何合适的软件容器,例如
Figure BDA0002439500810000121
容器等。
软件容器具有许多特征。在一些实施例中,软件容器可以是标准的,使得它们可以在任何地方都是便携式的。在一些实施例中,软件容器可以共享底层设备的操作系统(OS)内核,因此无需每个应用都请求OS,从而提高了服务器效率并降低了服务器成本。在一些实施例中,由于软件容器的隔离能力,应用在软件容器中更安全或更有保障。注意到本文所述的软件容器与虚拟机不同,尽管它们具有相似的资源隔离和分配优势。软件容器的功能与虚拟机的不同之处在于,软件容器对操作系统(而不是硬件)进行虚拟化,从而提供了比虚拟机更高的便携性和效率。
在一些实施例中,每个区块链网络节点314可以包括用于提供web服务的智能合约316。在一些实施例中,例如,因为区块链网络312的每个区块链网络节点314可以部署相同的智能合约316并存储web数据的副本以在区块链网络312的区块链网络节点314之间达成共识之后提供web服务,所以客户端302可以从区块链网络312的每个区块链网络节点314获得相同的web服务。在一些实施例中,区块链网络节点314可以包括多个智能合约316。每个智能合约316可以单独部署在软件容器404中。例如,区块链网络节点314可以包括第一智能合约316和第二智能合约316。第一智能合约316可以部署在第一软件容器404中,而第二智能合约316可以部署在第二软件容器404中。每个智能合约316可以单独提供与另一个智能合约316相同或不同的web服务。例如,第一智能合约316可以包括部署在第一软件容器404中的Java服务器,而第二智能合约316可以包括部署在第二软件容器404中的Go服务器。
图5是示出根据本文实施例的系统500的示例的示图。系统500基于区块链网络实现web服务。如图所示,系统500包括客户端302、web浏览器306、区块链网络中的区块链网络节点314、在区块链网络节点314上执行的智能合约316以及网络服务器510。在一些实施例中,网络服务器510可以被配置为存储web数据(例如,web页面等)。在一些实施例中,网络服务器510可以包括分布式文件系统。在一些实施例中,网络服务器510可以位于区块链网络外部或集成在区块链网络内。例如,网络服务器510可以包括星际文件系统(IPFS),该系统是被设计为创建在分布式文件系统中存储和共享超媒体的内容可寻址的点对点方法的协议和网络。
在一些实施例中,客户端302可以是操作其上安装有web浏览器306的客户端设备的用户。客户端302可以使用web浏览器306向区块链网络节点314请求web服务。例如,web浏览器306使用诸如基于HTTP的API(例如,RESTful API)的web接口315将web服务请求502发送至区块链网络节点314。在一些实施例中,web服务请求502可以是针对存储在区块链网络节点314上的web数据(例如,静态web页面或动态web数据)的请求。web服务请求502可以是例如检索web数据的请求或修改存储在区块链网络节点314上的web数据的请求。在一些实施例中,web服务请求502可以包括web数据请求506或web数据修改请求508。例如,客户端302可以在web浏览器306的图形用户界面(GUI)中输入web地址(例如,统一资源定位符或URL)以请求web数据504,例如来自区块链网络节点314的一个或多个静态web页面。作为另一示例,客户端302可以向区块链网络节点314发送web数据修改请求508,以修改存储在区块链网络节点314上的web数据。
在一些实施例中,区块链网络节点314将web服务请求502(例如,web数据请求506或web数据修改请求508)转发到部署在区块链网络节点314上的智能合约316。在一些实施例中,区块链网络节点314在将web服务请求502转发到智能合约316之前,确定客户端302是否被授权访问web数据。如上所述,在一些实施例中,区块链网络节点314可以包括如图4所示的代理服务402。代理服务402可以被配置为确定客户端302是否被授权访问web数据。例如,代理服务402可以验证包括在与客户端302相关联的web服务请求502中的数字签名。如果确定数字签名有效,则代理服务402可以确定客户端302被授权访问web数据,并因此接受来自客户端302的web服务请求502。如果确定数字签名无效,则代理服务402可以确定客户端302未被授权访问web数据,因此拒绝来自客户端302的web服务请求502。
在确定客户端302被授权访问web数据之后,区块链网络节点314可以将web服务请求502转发给智能合约316。在一些实施例中,智能合约316可以被关联在使用网络协议(例如,HTTP等)的web服务器(例如,Java服务器、Go服务器或C/C++服务器)内,以便响应于web服务请求502来提供web数据(例如HTTP web页面等)。如果web服务请求502是针对静态web数据504(例如,静态web页面)的web数据请求506,则智能合约316可以执行其自身并生成包括静态web数据504的执行结果(例如,通过检索存储在区块链网络节点314中的web数据)。区块链网络节点314可以将静态web数据504返回到web浏览器306。在一些实施例中,智能合约316可以从位于包括区块链网络节点314的区块链网络外部的分布式文件系统中检索静态web数据504。例如,如图5所示,智能合约316可以针对所请求的静态web数据504查询网络服务器510,该网络服务器可以是IPFS系统。响应于来自智能合约316的查询,网络服务器510可以将请求的静态web数据504返回给区块链网络节点314。响应于web服务请求502,区块链网络节点314可以随后将静态web数据504返回给web浏览器306。
在一些实施例中,如果web服务请求502是用于修改存储在区块链网络上的web数据的web数据修改请求508,则区块链网络节点314可以将web数据修改请求508广播到区块链网络的其他区块链网络节点。在一些实施例中,区块链网络节点314可以将web数据修改请求508广播到区块链网络的所有共识节点。区块链网络的共识节点可以对web数据修改请求508执行共识程序。如果在共识节点之间达成共识,例如,如果大多数共识节点同意修改web数据,则智能合约316可以修改存储在区块链网络节点314中的web数据。如果在共识节点之间未达成共识,则智能合约316可以向客户端302发送指示修改web数据失败的错误或警告消息。在一些实施例中,修改web数据可以包括更新存储在区块链网络节点314上的数据。在一些实施例中,修改web数据不违反区块链网络的不可篡改性质。例如,修改web数据并不删除或修改已经存储在区块链网络节点314上的数据本身,而是通过添加或追加日志文件或指令以删除、添加或以其他方式更新已经存储在区块链网络节点314上的数据。
图6是示出可以根据本文实施例执行的处理600的示例的信号流。该信号流表示用于实现基于区块链的web服务的处理600。为方便起见,该处理将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当编程的分布式系统(例如,图3的系统300)可以执行该处理。
在602处,客户端设备304例如从客户端302(例如,客户端设备的用户)接收web服务请求。在一些实施例中,web服务请求可以是对存储在区块链网络节点314上的web数据的请求(例如,检索web数据的请求或修改web数据的请求)。例如,web服务请求可以包括web数据请求或web数据修改请求。在一些实施例中,客户端设备304从操作客户端设备304的客户端接收web服务请求。例如,客户端可以在安装在客户端设备304上的web浏览器的GUI中输入网络地址(例如,URL)以提交针对诸如来自区块链网络节点314的一些静态web页面的web数据的HTTP请求。作为另一示例,客户端使用web浏览器向客户端设备304提交web数据修改请求(例如,将信息输入到静态web页面中)。
在604处,客户端设备304将web服务请求转发到区块链网络节点314。在一些实施例中,客户端设备304可以将web服务请求转发到区块链网络的任何区块链网络节点314。在一些实施例中,客户端设备304使用诸如基于HTTP的API(例如,RESTful API)的web接口将web服务请求转发至区块链网络节点314。
在606处,区块链网络节点314在接收到web服务请求之后认证客户端设备304。在一些实施例中,区块链网络节点314确定客户端设备304是否被授权访问web数据。在一些实施例中,区块链网络节点314可以包括被配置为确定客户端设备是否被授权访问web数据的代理服务。例如,代理服务可以验证与客户端设备304相关联的web服务请求中包括的数字签名。如果确定数字签名有效,则代理服务可以确定客户端设备304被授权访问web数据,并因此接受来自客户端设备304的web服务请求。如果确定数字签名无效,则代理服务可以确定客户端设备304未被授权访问web数据并因此拒绝web服务请求。
在608处,在确定客户端设备304被授权访问web数据之后,区块链网络节点314将web服务请求(例如,web数据请求或web数据修改请求)转发给在区块链网络节点314上执行的智能合约316。在一些实施例中,智能合约316被部署在区块链网络节点314中的软件容器中。软件容器可以是将代码及其所有附属打包的软件单元,因此软件容器中的容器化的应用(例如,智能合约316)从一个计算环境快速可靠地运行到另一计算环境。在一些实施例中,智能合约316可以与使用网络协议(例如,HTTP等)而响应于web服务请求向客户端提供web数据(例如HTTPweb页面等)的web服务器(例如,Java服务器、Go服务器或C/C++服务器)相关联。
在610处,如果web服务请求是针对静态web数据(例如,静态web页面)的web数据请求,并且智能合约316确定所请求的数据存储在网络服务器510上,则智能合约316可以从网络服务器510请求web数据。在一些实施例中,智能合约316可以执行其自身并生成要提交给网络服务器510的web数据查询。在一些实施例中,网络服务器510可以是位于承载区块链网络节点314的区块链网络外部的分布式文件系统(IPFS系统)。在一些实施例中,智能合约316可以将web服务请求转发到网络服务器510。
在一些实施例中,区块链网络节点314可以将web服务请求的信息记录在区块链网络节点314中。例如,web服务请求可以包含在提交给区块链网络节点314的交易中。区块链网络节点314可以处理交易并将交易记录在存储在区块链网络节点314中的区块链区块中。以此方式,可以将诸如web服务请求的请求者、所请求的数据(例如,URL)、指示提交web服务请求的时间的时间戳的web服务请求的信息记录在区块链网络节点314和整个区块链网络中。在一些实施例中,区块链网络节点314可以进一步记录与被调用以处理区块链网络节点314中的web服务请求的智能合约(例如,智能合约316)有关的信息。例如,区块链网络节点314可以存储智能合约的标识符和/或版本号、被智能合约调用以产生执行结果的数据等。与不存储与web服务请求有关的信息的现有技术不同,本文所述的方法包括将这些数据存储在区块链网络节点314中,这利用了区块链网络的不可篡改性,从而提高了系统提供的web服务的数据可追溯性。
在612处,网络服务器510将所请求的web数据发送到智能合约316。在一些实施例中,网络服务器510可以基于包括在来自智能合约316的web数据查询或web服务请求中的URL来检索所请求的web数据(例如,静态web页面)。
在一些实施例中,如果所请求的web数据被存储在区块链网络节点314上,则智能合约316可以从区块链网络节点314检索web数据并准备包括该web数据的执行结果。
在614处,在获得请求的web数据之后,智能合约316将web数据转发到区块链网络节点314。在一些实施例中,智能合约316准备包括web数据的执行结果,并将该执行结果发送到区块链网络节点314。
在616处,区块链网络节点314例如使用web接口将web数据转发到客户端设备304。在一些实施例中,区块链网络节点314的代理服务可以确定web数据是否包括客户端设备304未被授权访问的数据。如果确定web数据包括客户端设备304未被授权访问的数据,则区块链网络节点314可以向客户端设备304发送指示不能满足web服务请求的错误或警告消息。如果确定web数据包括客户端设备304被授权访问的数据,则代理服务可以将所请求的web数据转发到客户端设备304。例如,代理服务可以将所请求的web数据转发到客户端设备304的web浏览器。
在一些实施例中,客户端设备304可以将web数据修改请求发送到区块链网络节点314。例如,客户端设备304可以向区块链网络节点314发送请求以修改存储在区块链网络节点314中的区块链数据元素。在618处,区块链网络节点314从客户端设备304接收web数据修改请求。
在620处,区块链网络节点314针对web数据修改请求执行共识处理。在一些实施例中,区块链网络节点314可以将web数据修改请求广播到区块链网络的其他区块链网络节点。在一些实施例中,区块链网络节点314可以将web数据修改请求广播到区块链网络的所有共识节点。区块链网络的共识节点可以对web数据修改请求执行共识处理。区块链网络节点314可以基于共识处理的共识结果来确定共识节点之间是否已经达成共识。在一些实施例中,如果大多数共识节点同意修改web数据,则达成共识。
在622,区块链网络节点314将共识结果转发到智能合约。例如,如果在共识节点之间达成共识,则区块链网络节点314可以将共识结果发送到智能合约,指示达成了共识。如果在共识节点之间未达成共识,则区块链网络节点314可以将共识结果发送至智能合约,以指示尚未达成共识。
在624处,如果确定在区块链网络的共识节点之间已经达成共识,则可以执行智能合约316以修改存储在区块链网络节点314中的web数据。如果确定在共识节点之间未达成共识,则智能合约316可以对修改存储在区块链网络节点314中的web数据进行约束。
在626,智能合约316生成web数据请求的执行结果,并将执行结果发送到区块链网络节点314。在一些实施例中,执行结果可以指示web数据请求是否已经被成功执行。例如,执行结果可以指示是否已经成功修改了web数据。在一些实施例中,执行结果可以包括修改后的web数据。
在628处,在获得web数据请求的执行结果之后,区块链网络节点314可以例如使用web接口来转发或以其他方式将web数据请求的执行结果通知给客户端设备304。在一些实施例中,区块链网络节点314将修改后的web数据转发到客户端设备304。
图7是示出了用于实现可以根据本文实施例执行的工作流的处理700的示例的流程图。处理700可以是在图6的处理600的上下文中由区块链网络执行的处理。为方便起见,处理700将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,诸如图3的区块链系统300的、被适当地编程的分布式系统可以执行处理700。
在702处,区块链网络的区块链网络节点(例如,区块链节点314)从客户端设备接收针对web数据的web服务请求。在一些实施例中,客户端设备使用web接口将web服务请求发送到区块链网络节点。在一些实施例中,web服务请求包括HTTP请求。在一些实施例中,HTTP请求包括用于web数据的HTTP地址。在一些实施例中,web接口包括基于HTTP的API。在一些实施例中,web服务包括以Java、Go或C/C++计算机编程语言编写的web服务,并且软件容器分别包括JAVA服务器、GO服务器或C/C++服务器中的至少一个。
在704处,区块链网络节点将web服务请求存储在区块链网络节点中。在一些实施例中,区块链网络节点可以处理包括web服务请求的交易,并且将该交易记录在存储在区块链网络节点中的区块链区块中。在一些实施例中,可以将诸如web服务请求的请求者、所请求的数据(例如,URL)、指示提交web服务请求的时间的时间戳的web服务请求的信息记录在区块链网络节点和整个区块链网络中。在一些实施例中,区块链网络节点可以进一步记录与被调用以处理区块链网络节点中的web服务请求的智能合约(例如,智能合约)有关的信息。例如,区块链网络节点可以存储智能合约的标识和/或版本号,被智能合约调用以产生执行结果的数据等。
在706处,区块链网络节点将web服务请求转发到部署在区块链网络节点上的软件容器中的用于提供web服务的智能合约。在一些实施例中,软件容器包括用于执行区块链网络节点上的软件容器中的智能合约的独立可执行软件包。在一些实施例中,区块链网络节点包括部署在区块链网络节点上的第二软件容器中的用于提供第二web服务的第二智能合约。在一些实施例中,第二软件容器包括用于执行区块链网络节点上的第二软件容器中的第二智能合约的第二独立可执行软件包。
在一些实施例中,区块链网络节点在将web服务请求转发到智能合约之前,确定客户端设备是否被授权访问web数据。如果确定客户端设备被授权访问web数据,则区块链网络节点将web服务请求转发到智能合约。在一些实施例中,区块链网络节点提供用于将web服务请求转发到智能合约的代理服务。在一些实施例中,区块链网络节点使用web接口将web服务请求转发到智能合约。
在708处,区块链网络节点获得来自智能合约的响应于web服务请求的执行结果。在一些实施例中,web服务请求包括对存储在区块链网络节点上的静态web数据的请求。在一些实施例中,响应于对静态web数据的请求,区块链网络节点获得包括静态web数据的执行结果。在一些实施例中,web服务请求包括对存储在区块链网络外部的分布式网络服务器中的静态web数据的请求。在一些实施例中,响应于对静态web数据的请求,区块链网络节点获得执行结果,该执行结果包括智能合约从分布式网络服务器检索的静态web数据。
在一些实施例中,web服务请求包括用于修改存储在区块链网络节点中的web数据的请求。在一些实施例中,区块链网络节点向区块链网络的多个共识节点广播用于修改web数据的请求。在一些实施例中,响应于多个共识节点执行的共识过程,智能合约修改存储在区块链网络节点中的web数据。在一些实施例中,智能合约生成指示对存储在区块链网络节点中的web数据进行修改的执行结果。
在710处,区块链网络节点使用web接口将执行结果发送到客户端设备。在一些实施例中,执行结果包括静态web数据(例如,静态web页面)。在一些实施例中,区块链网络节点可以使用基于HTTP的API将执行结果发送到客户端设备的web浏览器。
图8描绘了根据本文的实施例的装置800的模块的示例。装置800可以是被配置为实现基于区块链的web服务的区块链网络的节点的实施例的示例。装置800可以对应于上述实施例,装置800包括以下:接收模块802,其从客户端设备接收针对web数据的web服务请求,其中,所述web服务请求由客户端设备使用web接口发送到区块链网络节点;存储模块804,其将web服务请求存储在区块链网络节点中;转发模块806,其将web服务请求转发到部署在区块链网络节点上的软件容器中的智能合约以提供web服务,其中,所述软件容器包括用于执行区块链网络节点上的软件容器中的智能合约的独立可执行软件包;获得模块808,其获得响应于web服务请求的执行结果;发送模块810,其使用web接口将执行结果发送至客户端设备。
在可选实施例中,web服务请求包括超文本传输协议(HTTP)请求,其中,HTTP请求包括针对web数据的HTTP地址。
在可选实施例中,web接口包括基于HTTP的应用编程接口(API)。
在可选实施例中,web服务包括以Java、Go或C/C++计算机编程语言编写的web服务,并且软件容器分别包括JAVA服务器、GO服务器或C/C++服务器中的至少一个。
在可选实施例中,软件容器包括DOCKER容器。
在可选实施例中,装置800还包括确定子模块,其确定客户端设备是否被授权访问web数据。区块链网络节点将web服务请求转发到智能合约包括响应于确定客户端设备被授权访问web数据,将web服务请求转发到智能合约。
在可选实施例中,装置800还包括存储子模块,其将智能合约有关的信息存储在所述区块链网络节点中,与智能合约有关的信息包括智能合约的标识、智能合约的版本号或被智能合约调用以生成执行结果的数据中的至少一个。
在可选实施例中,web服务请求包括针对静态web数据的请求,并且静态web数据被存储在所述区块链网络节点中,以及响应于web服务请求的执行结果包括智能合约检索的静态web数据。
在可选实施例中,web服务请求包括针对静态web数据的请求,并且静态web数据被存储在位于区块链网络外部的分布式网络服务器中,响应于web服务请求的执行结果包括所述智能合约从分布式网络服务器检索的静态web数据。
在可选实施例中,web服务请求包括用于修改存储在区块链网络节点中的web数据的请求。装置800还包括以下:广播子模块,其将用于修改web数据的请求广播至区块链网络的多个共识节点;修改子模块,其响应于多个共识节点执行的共识过程,修改存储在区块链网络节点中的web数据;以及生成子模块,其生成指示对存储在区块链网络节点中的web数据进行修改的执行结果。
在可选实施例中,区块链网络节点包括部署在区块链网络节点上的第二软件容器中的第二智能合约以提供第二web服务,其中第二软件容器包括用于执行区块链网络节点上的所述第二软件容器中的所述第二智能合约的第二独立可执行软件包。
前述实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实施,或者可以通过使用具有特定功能的产品来实施。典型的实施例设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
对于装置中每个模块的功能和作用的实施例处理,可以参考前一方法中相应步骤的实施例处理。为简单起见,这里省略了细节。
由于装置实施例基本上对应于方法实施例,对于相关部件,可以参考方法实施例中的相关描述。先前描述的装置实施例仅是示例。被描述为单独部分的模块可以是或不是物理上分离的,并且显示为模块的部分可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域的普通技术人员无需付出创造性劳动就可以理解和实现本申请的实施例。
再次参见图8,它可以被解释为示出了基于区块链的web服务实现装置的内部功能模块和结构。基于区块链的web服务实现装置可以是被配置为实现基于区块链的web服务的区块链网络节点的示例。本质上,执行主体可以是电子设备,并且该电子设备包括以下:一个或多个处理器;以及存储器,其被配置为存储一个或多个处理器的可执行指令。
本文中描述的技术产生若干技术效果。例如,当请求web服务时,客户端可以使用浏览器直接访问区块链网络的区块链网络节点,而无需使用中间代理(例如中间站服务)。这有助于避免使用中间代理导致的对数据安全性的损害。在一些实施例中,web服务由区块链网络的区块链网络节点提供,并且客户端可以从区块链网络的每个区块链网络节点获得相同的web服务。这增加了系统的可扩展性。在一些实施例中,可以在不使用区块链网络的软件开发套件(SDK)的情况下访问存储在区块链网络的区块链网络节点上的web数据。这降低了实现基于区块链的web服务的系统的复杂性,从而提高了系统的效率。
所描述的主题的实施例可以单独或组合地包括一个或多个特征。例如,在第一实施例中,一种用于实现基于区块链的web服务的方法包括:在区块链网络的区块链网络节点处从客户端设备接收针对web数据的web服务请求,其中,web服务请求由客户端设备使用web接口发送到区块链网络节点;区块链网络节点将web服务请求存储在区块链网络节点中;区块链网络节点将web服务请求转发到部署在区块链网络节点上的软件容器中的智能合约以提供web服务,其中,软件容器包括用于执行区块链网络节点上的软件容器中的智能合约的独立可执行软件包;区块链网络节点从智能合约获得响应于web服务请求的执行结果;以及区块链节点使用web接口将执行结果发送至客户端设备。
在其它实施例中,提供了用于实现本文提供的方法的装置、非暂时性计算机可读存储介质以及系统中的一个或多个。例如,装置可以是用于实现本文提供的方法的区块链网络的网络节点。作为另一示例,系统可以包括一个或多个客户端设备,以及用于实施本文提供的方法的一个或多个区块链网络。例如,网络节点可以包括代理服务和被配置为根据本文提供的方法执行用于提供web服务的智能合约的软件容器。
前述和其它描述的实施例可以各自可选地包括一个或多个以下特征:
第一特征,可以与以下任意特征组合,指定web服务请求包括超文本传输协议(HTTP)请求,其中,HTTP请求包括针对web数据的HTTP地址。
第二特征,可以与先前或以下任意特征组合,指定web接口包括基于HTTP的应用编程接口API。
第三特征,可以与先前或以下任意特征组合,指定web服务包括以Java、Go或C/C++计算机编程语言编写的web服务,并且软件容器分别包括JAVA服务器、GO服务器或C/C++服务器中的至少一个。
第四特征,可以与先前或以下任意特征组合,指定软件容器包括DOCKER容器。
第五特征,可以与先前或以下任意特征组合,指定所述方法还包括区块链网络节点确定客户端设备是否被授权访问web数据;其中,区块链网络节点将web服务请求转发到智能合约包括响应于确定客户端设备被授权访问web数据,将web服务请求转发到智能合约。
第六特征,可以与先前或以下任意特征组合,指定所述方法还包括:区块链网络节点将智能合约有关的信息存储在区块链网络节点中,与智能合约有关的信息包括智能合约的标识符、智能合约的版本号或被智能合约调用以生成执行结果的数据中的至少一个。
第七特征,可以与先前或以下任意特征组合,指定web服务请求包括针对静态web数据的请求,并且静态web数据被存储在区块链网络节点中,以及响应于web服务请求的执行结果包括智能合约检索的静态web数据。
第八特征,可以与先前或以下任意特征组合,指定web服务请求包括针对静态web数据的请求,并且静态web数据被存储在位于区块链网络外部的分布式网络服务器中,以及响应于web服务请求的执行结果包括智能合约从分布式网络服务器中检索的静态web数据。
第九特征,可以与先前或以下任意特征组合,指定所述方法还包括:将用于修改web数据的请求广播至区块链网络的多个共识节点;响应于多个共识节点执行的共识过程,智能合约修改存储在区块链网络节点中的web数据;以及智能合约生成指示对存储在区块链网络节点中的web数据进行修改的执行结果。
第十特征,可以与先前任意特征组合,指定区块链网络节点包括部署在区块链网络节点上的第二软件容器中的用于提供第二web服务的第二智能合约,其中第二软件容器包括用于执行区块链网络节点上的第二软件容器中的第二智能合约的第二独立可执行软件包。
本文中描述的主题、动作和操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实施,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施例可以实现为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括一个或多个计算机可读存储介质,其上编码或存储有指令。载体可以是有形的非暂态计算机可读介质,诸如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或可以部分是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、或声明或程序性语言;它可以被部署为任何形式,包括作为独立程序,或作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可以包括由数据通信网络互连的一个或多个位置上的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件中;或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括:例如,通用微处理器和专用微处理器两者,和任意种类的数字计算机的任意一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接至处理器的非暂态计算机可读介质的数据。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。数据处理设备可以包括例如FPGA(现场可编程门阵列),ASIC(专用集成电路)或GPU(图形处理单元)的专用逻辑电路。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一台或多台计算机或处理器执行,以通过对输入数据进行操作并生成输出来执行操作。处理和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用微处理器和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可以包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或向一个或多个存储设备传送数据。存储设备可以是例如,磁盘、磁光盘或光盘、固态驱动器或任何其他类型的非暂态计算机可读介质。但是,计算机不必需这样的设备。因此,计算机可以耦接到例如一个或多个存储器的本地和/或远程的一个或多个存储设备。例如,计算机可以包括作为计算机的组成部件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,这里仅举几例。
组件可以通过直接或经由一个或多个中间件例如电连接或光连接地彼此连接通信而彼此“耦接”。如果部件中的一个部件被集成到另一个中,则部件也可以被彼此“耦接”。例如,集成到处理器中的存储组件(例如,L2高速缓存组件)被“耦接到”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从用户设备上的web浏览器收到的请求而向该web浏览器发送web页面,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息收发应用程序的智能手机)发送文本消息或其他形式的消息并且作为回应从用户接收响应消息来与用户交互。
本文结合系统、装置和计算机程序组件使用术语“被配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施例细节,但是这些细节不应被解释为由权利要求书本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文中单个实施例的上下文中描述的多个特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从要求保护的组合中删除该组合的一个或多个特征,并且权利要求书可以指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求书中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为在所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求书的范围内。例如,权利要求书中记载的动作可以以不同的顺序执行并且仍然实现所期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (13)

1.一种计算机实现的用于实现基于区块链的web服务的方法,所述计算机实现的方法包括:
在区块链网络的区块链网络节点处从客户端设备接收针对web数据的web服务请求,其中,所述web服务请求由所述客户端设备使用web接口发送到所述区块链网络节点;
所述区块链网络节点将所述web服务请求存储在所述区块链网络节点中;
所述区块链网络节点将所述web服务请求转发到部署在所述区块链网络节点上的软件容器中的智能合约以提供web服务,其中,所述软件容器包括用于执行所述区块链网络节点上的所述软件容器中的所述智能合约的独立可执行软件包;
所述区块链网络节点从所述智能合约获得响应于所述web服务请求的执行结果;以及
所述区块链网络节点使用所述web接口将所述执行结果发送至所述客户端设备。
2.如前述权利要求中任一项所述的计算机实现的方法,其中,
所述web服务请求包括超文本传输协议HTTP请求,
所述HTTP请求包括针对所述web数据的HTTP地址。
3.如前述权利要求中任一项所述的计算机实现的方法,其中,所述web接口包括基于HTTP的应用编程接口API。
4.如前述权利要求中任一项所述的计算机实现的方法,其中,
所述web服务包括以Java、Go或C/C++计算机编程语言编写的web服务,并且
所述软件容器分别包括JAVA服务器、GO服务器或C/C++服务器中的至少一个。
5.如前述任一项权利要求所述的计算机实现的方法,其中,所述软件容器包括DOCKER容器。
6.如前述权利要求中任一项所述的计算机实现的方法,还包括:
所述区块链网络节点确定所述客户端设备是否被授权访问所述web数据;以及
其中,所述区块链网络节点将所述web服务请求转发到智能合约包括,响应于确定所述客户端设备被授权访问所述web数据,将所述web服务请求转发到所述智能合约。
7.如前述权利要求中任一项所述的计算机实现的方法,还包括:
所述区块链网络节点将与所述智能合约有关的信息存储在所述区块链网络节点中,与所述智能合约有关的信息包括所述智能合约的标识、所述智能合约的版本号或被所述智能合约调用以生成所述执行结果的数据中的至少一个。
8.如前述权利要求中任一项所述的计算机实现的方法,其中:
所述web服务请求包括针对静态web数据的请求,并且所述静态web数据被存储在所述区块链网络节点中,以及
响应于所述web服务请求的执行结果包括所述智能合约检索的所述静态web数据。
9.如前述权利要求中任一项所述的计算机实现的方法,其中:
所述web服务请求包括针对静态web数据的请求,并且所述静态web数据存储在位于所述区块链网络外部的分布式网络服务器中,以及
响应于所述web服务请求的执行结果包括所述智能合约从所述分布式网络服务器中检索的所述静态web数据。
10.如前述权利要求中任一项所述的计算机实现的方法,其中,所述web服务请求包括用于修改存储在所述区块链网络节点中的web数据的请求,所述方法还包括:
将用于修改web数据的所述请求广播至所述区块链网络的多个共识节点;
响应于所述多个共识节点执行的共识过程,所述智能合约修改存储在所述区块链网络节点中的所述web数据;以及
所述智能合约生成指示对存储在所述区块链网络节点中的所述web数据进行所述修改的执行结果。
11.如前述权利要求中任一项所述的计算机实现的方法,其中,
所述区块链网络节点包括部署在所述区块链网络节点上的第二软件容器中的用于提供第二web服务的第二智能合约,
所述第二软件容器包括用于执行所述区块链网络节点上的所述第二软件容器中的所述第二智能合约的第二独立可执行软件包。
12.一种用于实现基于区块链的web服务的装置,所述装置包括用于执行如权利要求1至11中任一项所述的计算机实现的方法的多个模块。
13.一种用于实现基于区块链的web服务的系统,包括:
一个或多个处理器;以及
耦接至所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行以执行如权利要求1至11中任一项所述的计算机实现的方法。
CN201980004906.1A 2019-10-16 2019-10-16 实现基于区块链的web服务 Active CN111213128B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/111451 WO2020011288A2 (en) 2019-10-16 2019-10-16 Implementing a blockchain-based web service

Publications (2)

Publication Number Publication Date
CN111213128A true CN111213128A (zh) 2020-05-29
CN111213128B CN111213128B (zh) 2023-06-30

Family

ID=69143325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980004906.1A Active CN111213128B (zh) 2019-10-16 2019-10-16 实现基于区块链的web服务

Country Status (7)

Country Link
US (1) US10986162B2 (zh)
EP (1) EP3769490B1 (zh)
CN (1) CN111213128B (zh)
AU (1) AU2019302940B2 (zh)
CA (1) CA3098767A1 (zh)
SG (1) SG11202010185QA (zh)
WO (1) WO2020011288A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800472A (zh) * 2020-06-12 2020-10-20 易联众信息技术股份有限公司 一种区块链节点负载均衡方法、装置、介质及设备
CN112381648A (zh) * 2020-11-11 2021-02-19 杭州甘道智能科技有限公司 一种基于区块链的模组智能启停控制方法
CN112671920A (zh) * 2020-12-29 2021-04-16 杭州中科先进技术研究院有限公司 一种基于区块链的污水自动化控制方法
CN113037505A (zh) * 2021-05-31 2021-06-25 北京连琪科技有限公司 一种可信Web应用的实现方法及系统
CN114157444A (zh) * 2021-09-10 2022-03-08 北京天德科技有限公司 一种基于容器技术的区块链部署系统及部署方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427896A (zh) * 2020-04-10 2020-07-17 上海卓繁信息技术股份有限公司 一种基于区块链的大数据存储平台
CN111651169B (zh) * 2020-05-19 2023-07-04 鼎链数字科技(深圳)有限公司 基于web容器的区块链智能合约运行方法及系统
CN112487459B (zh) * 2020-12-10 2023-08-04 浙江大学德清先进技术与产业研究院 一种基于联盟链的遥感元数据上链方法
CN113055497B (zh) * 2021-04-29 2022-08-05 中国工商银行股份有限公司 用于区块链网络的链外数据上链方法、装置及系统
CN113472864B (zh) * 2021-06-21 2022-11-18 湖南大学 高性能的区块链分布式存储系统及方法、设备、存储介质
CN113626005B (zh) * 2021-09-03 2023-05-30 杭州复杂美科技有限公司 一种区块链基础合约开发部署方法、设备及储存介质
DE102021123358B3 (de) 2021-09-09 2022-10-20 Volkswagen Aktiengesellschaft Steuervorrichtung, Steuerverfahren und Computerprogramm für eine Verteilung von Rechen-Funktionsblöcken auf Recheneinheiten eines Fahrzeugs
CN113630475A (zh) * 2021-09-17 2021-11-09 无锡井通网络科技有限公司 基于接口化区块链系统的区块链系统集群及其操作方法
CN114531454B (zh) * 2022-02-25 2024-01-16 中发国研信息技术研究院(北京)有限公司 基于区块链的无人驾驶数据集可信测评系统
CN115022347B (zh) * 2022-05-30 2023-11-17 长春大学 一种基于Fabric和IPFS的消防监控数据存储系统
CN115102866B (zh) * 2022-06-06 2023-07-25 南京邮电大学 一种面向共识算法的区块链tps估算方法及其验证方法
CN115243080B (zh) * 2022-09-21 2022-12-20 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN117240621B (zh) * 2023-11-13 2024-02-02 腾讯科技(深圳)有限公司 网络请求的处理方法、装置、计算机可读介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180227116A1 (en) * 2017-02-06 2018-08-09 Northern Trust Corporation Systems and methods for generating, uploading, and executing code blocks within distributed network nodes
CN108769173A (zh) * 2018-05-21 2018-11-06 阿里体育有限公司 运行智能合约的区块链实现方法及设备
CN108965468A (zh) * 2018-08-16 2018-12-07 北京京东尚科信息技术有限公司 区块链网络服务平台及其链码安装方法、存储介质
CN109344000A (zh) * 2018-08-16 2019-02-15 北京京东尚科信息技术有限公司 区块链网络服务平台、恢复工具及其故障处理方法、存储介质
US20190305957A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Execution smart contracts configured to establish trustworthiness of code before execution

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10872077B2 (en) * 2013-09-23 2020-12-22 David D. Wright, SR. Management of entitlements using blockchain
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
CN108830720B (zh) * 2018-06-21 2021-04-30 北京京东尚科信息技术有限公司 智能合约运行方法、装置、系统和计算机可读存储介质
CN109284466B (zh) 2018-09-12 2021-01-26 上海点融信息科技有限责任公司 用于在区块链中实现网页访问的方法、装置和存储介质
US11282076B2 (en) * 2018-12-14 2022-03-22 American Express Travel Related Services Company, Inc. Transaction account data maintenance using blockchain
CN109492380B (zh) * 2019-01-11 2021-04-02 四川虹微技术有限公司 一种设备认证方法、装置及区块链节点

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180227116A1 (en) * 2017-02-06 2018-08-09 Northern Trust Corporation Systems and methods for generating, uploading, and executing code blocks within distributed network nodes
US20190305957A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Execution smart contracts configured to establish trustworthiness of code before execution
CN108769173A (zh) * 2018-05-21 2018-11-06 阿里体育有限公司 运行智能合约的区块链实现方法及设备
CN108965468A (zh) * 2018-08-16 2018-12-07 北京京东尚科信息技术有限公司 区块链网络服务平台及其链码安装方法、存储介质
CN109344000A (zh) * 2018-08-16 2019-02-15 北京京东尚科信息技术有限公司 区块链网络服务平台、恢复工具及其故障处理方法、存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800472A (zh) * 2020-06-12 2020-10-20 易联众信息技术股份有限公司 一种区块链节点负载均衡方法、装置、介质及设备
CN112381648A (zh) * 2020-11-11 2021-02-19 杭州甘道智能科技有限公司 一种基于区块链的模组智能启停控制方法
CN112381648B (zh) * 2020-11-11 2024-04-05 杭州甘道智能科技有限公司 一种基于区块链的模组智能启停控制方法
CN112671920A (zh) * 2020-12-29 2021-04-16 杭州中科先进技术研究院有限公司 一种基于区块链的污水自动化控制方法
CN113037505A (zh) * 2021-05-31 2021-06-25 北京连琪科技有限公司 一种可信Web应用的实现方法及系统
CN114157444A (zh) * 2021-09-10 2022-03-08 北京天德科技有限公司 一种基于容器技术的区块链部署系统及部署方法

Also Published As

Publication number Publication date
AU2019302940A1 (en) 2021-04-29
US20210044647A1 (en) 2021-02-11
US10986162B2 (en) 2021-04-20
EP3769490B1 (en) 2022-05-04
SG11202010185QA (en) 2020-11-27
AU2019302940B2 (en) 2021-10-21
WO2020011288A3 (en) 2020-08-06
WO2020011288A2 (en) 2020-01-16
CN111213128B (zh) 2023-06-30
EP3769490A4 (en) 2021-02-17
CA3098767A1 (en) 2020-01-16
EP3769490A2 (en) 2021-01-27

Similar Documents

Publication Publication Date Title
CN111213128B (zh) 实现基于区块链的web服务
CA3058499C (en) Program execution and data proof scheme using multiple key pair signatures
CN111448781B (zh) 一种计算机实现的用于通信共享的区块链数据的方法
CN110915164B (zh) 基于可信执行环境中执行的智能合约操作处理区块链数据
EP3893433B1 (en) Data isolation in blockchain networks
AU2019204725B2 (en) Retrieving access data for blockchain networks using highly available trusted execution environments
US10860710B2 (en) Processing and storing blockchain data under a trusted execution environment
CN111108478A (zh) 共享的区块链数据存储
CN111837115A (zh) 共享的区块链数据存储
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
CN111066047A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40029707

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant