CN111797347A - 分布在安全通道上的内容 - Google Patents
分布在安全通道上的内容 Download PDFInfo
- Publication number
- CN111797347A CN111797347A CN202010256322.8A CN202010256322A CN111797347A CN 111797347 A CN111797347 A CN 111797347A CN 202010256322 A CN202010256322 A CN 202010256322A CN 111797347 A CN111797347 A CN 111797347A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- content
- cdn
- cdn content
- block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000012384 transportation and delivery Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims description 27
- 238000012546 transfer Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012358 sourcing Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- 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/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- 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/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Abstract
示例操作可以包括以下中的一项或多项:向网络服务器传输对网页内容的请求,接收网页的超文本标记语言(HTML)样板文件以及用于网页的内容交付网络(CDN)内容的CDN地址,基于CDN地址从区块链中检索CDN内容,并且基于HTML样板文件和从区块链中检索的CDN内容在客户端设备处显示网页。
Description
技术领域
本申请总体上涉及一种用于向客户端设备交付网络内容的内容交付系统,并且更具体地涉及一种提供安全通道的网络,该安全通道用于经由区块链来高速缓存和交付网络内容,而不需要客户端设备从内容交付服务器取回内容。
背景技术
集中式数据库在单个数据库(例如,数据库服务器)中的一个位置处存储和维护数据。该位置通常是中央计算机,例如,台式中央处理单元(CPU)、服务器CPU或大型计算机。存储在集中式数据库中的信息通常从多个不同位置可访问。例如,基于客户端/服务器配置,多个用户或客户端工作站可以在集中式数据库上同时工作。集中式数据库易于管理、维护和控制,特别是出于安全目的,因为它位于单个位置。在集中式数据库中,由于所有数据的单个存储位置也表示给定的一组数据仅具有一个主记录,所以数据冗余被最小化。
然而,集中式数据库存在重大缺陷。例如,集中式数据库只有单个故障点。特别地,如果没有容错性考虑并且发生硬件故障(例如,硬件、固件和/或软件故障),则数据库中的所有数据都将丢失并且所有用户的工作都会中断。此外,集中式数据库高度依赖于网络连接。结果,连接速度越慢,每次数据库访问所需要的时间量就会增加。另一缺点是,当集中式数据库由于单个位置而遇到高流量时,会出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供对数据的有限访问。结果,多个设备无法在不造成严重问题或存在覆盖已存储数据的风险的情况下同时访问同一数据。此外,由于数据库存储系统的数据冗余很小甚至没有,因此除了通过手动操作从备份存储中检索,很难检索意外丢失的数据。
内容交付网络或内容分发网络(CDN)是代理服务器及其相应的数据中心的地理分布网络。CDN的目的是通过相对于最终用户在空间上分布网页内容的服务来提供高可用性和高性能。CDN如今服务于大部分互联网内容,包括网络对象(文本、图形和脚本)、可下载对象(媒体文件、软件、文档)、应用(电子商务、门户)、实时流媒体、按需流媒体和社交媒体网站。但是,CDN的一些缺点包括:由于更丰富的内容(诸如4K和虚拟现实)而导致带宽需求不断增加,由于TLS协议而导致网络内容无法在路由器、代理、ISP等处高速缓存,冗余流量导致网络资源利用率低下,等等。因此,需要一种能够克服这些缺点和局限性的解决方案。
发明内容
一个示例实施例提供了一种系统,该系统包括网络接口和处理器。该网络接口被配置为进行以下中的一项或多项:向网络服务器传输对网页内容的请求,以及接收网页的超文本标记语言(HTML)样板文件以及用于网页的内容交付网络(CDN)内容的CDN地址。该处理器被配置为进行以下中的一项或多项:基于CDN地址从区块链中检索CDN内容,以及基于HTML样板文件和从区块链中检索的CDN内容在客户端设备处显示网页。
另一示例实施例提供了一种方法,该方法包括以下中的一项或多项:向网络服务器传输对网页内容的请求,接收网页的超文本标记语言(HTML)样板文件以及用于网页的内容交付网络(CDN)内容的CDN地址,基于CDN地址从区块链中检索CDN内容,以及基于HTML样板文件和从区块链中检索的CDN内容在客户端设备处显示网页。
另一示例实施例提供了一种包括指令的非暂态计算机可读介质,这些指令由处理器读取时引起处理器执行以下中的一项或多项:向网络服务器传输对网页内容的请求,接收网页的超文本标记语言(HTML)样板文件以及用于网页的内容交付网络(CDN)内容的CDN地址,基于CDN地址从区块链中检索CDN内容,以及基于HTML样板文件和从区块链中检索的CDN内容在客户端设备处显示网页。
附图说明
图1是示出根据示例实施例的通过区块链实现安全交付通道的内容交付网络的图;
图2A是示出根据示例实施例的示例区块链架构配置的图;
图2B是示出根据示例实施例的区块链事务流程的图;
图3A是示出根据示例实施例的许可网络的图;
图3B是示出根据示例实施例的另一许可网络的图;
图4A是示出根据示例实施例的内容交付系统的图;
图4B是示出根据示例实施例的将内容交付给客户端设备的过程的图;
图4C是示出根据示例实施例的可以经由区块链存储的内容元数据的图;
图5是示出根据示例实施例的从区块链中检索网页内容的方法的流程图;
图6A是示出根据示例实施例的被配置为执行本文中描述的一个或多个操作的示例系统的图;
图6B是示出根据示例实施例的被配置为执行本文中描述的一个或多个操作的另一示例系统的图;
图6C是示出根据示例实施例的被配置为利用智能合约的另一示例系统的图;
图6D是示出根据示例实施例的被配置为利用区块链的又一示例系统的图;
图7A是示出根据示例实施例的用于将新块添加到分布式账本的过程的图;
图7B是示出根据示例实施例的新数据块的内容的图;
图7C是示出根据示例实施例的用于数字内容的区块链的图;
图7D是示出根据示例实施例的可以表示区块链中的块的结构的块的图;以及
图8是示出支持一个或多个示例实施例的示例系统的图。
具体实施方式
将容易地理解,如本文中的附图中一般性地描述和示出的,组件可以以各种不同的配置来布置和设计。因此,如附图所示,对方法、装置、非暂态计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是表示所选择的实施例。
在一个或多个实施例中,可以以任何合适的方式组合或去除在整个说明书中描述的特征、结构或特性。例如,在整个说明书中的短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合该实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中。因此,在整个说明书中的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部指代同一组实施例,并且在一个或多个实施例中,所描述的特征、结构或特性可以以任何合适的方式组合或去除。
另外,尽管在实施例的描述中可能已经使用了术语“消息”,但是本申请可以应用于很多类型的网络和数据。此外,尽管在示例性实施例中可以描绘某些类型的连接、消息和信令,但是本申请不限于某种类型的连接、消息和信令。
示例实施例提供了提供用于通过区块链进行内容交付的安全通道的方法、系统、组件、非暂态计算机可读介质、设备和/或网络。
在一个实施例中,本申请利用作为包括彼此通信的多个节点的分布式存储系统的分散式数据库(诸如区块链)。分散式数据库包括类似于分布式账本的仅附加的不可变的数据结构,该结构能够维护互不信任方之间的记录。不信任方在本文中称为对等方或对等节点。每个对等方维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有任何一个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储事务,将存储事务分组为块,并且在这些块上构建哈希链。为了保持一致性,该过程通过根据需要对存储事务进行排序来形成账本。在各种实施例中,可以使用许可和/或非许可区块链。在公共或未经许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本机加密货币,并且基于各种协议(诸如工作证明(PoW))使用共识。另一方面,许可区块链数据库在共享共同目标但彼此之间并不完全信任的一组实体(诸如交换资金、商品、信息等的企业)之间提供安全交互。
本申请可以利用区块链,该区块链操作针对分散式存储方案定制并且被称为“智能合约”或“链码”的任意可编程逻辑。在某些情况下,可能存在用于管理功能和参数的专用链码,称为系统链码。本申请还可以利用智能合约,这些智能合约是可信分布式应用,其利用区块链数据库的防篡改属性和节点之间的基础协议,这被称为背书或背书策略。与本申请相关联的区块链事务可以在提交给区块链之前被“背书”,而未被背书的事务则被忽略。背书策略允许链码以背书所必需的一组对等节点的形式指定事务的背书者。当客户将事务发送给在背书策略中指定的对等方时,事务被执行以验证事务。在验证之后,事务进入排序阶段,在该阶段中,使用共识协议来产生被分组为块的背书事务的有序序列。
本申请可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可以在同一物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点在信任域中被分组,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交客户端节点,其向背书者(例如,对等方)提交事务调用,并且将事务提议广播给排序服务(例如,排序节点)。另一类节点是对等节点,它可以接收客户提交的事务,提交事务,并且维护区块链事务账本的状态和副本。尽管不是必需的,但是对等方也可以充当背书者的角色。排序服务节点或排序者是为所有节点运行通信服务的节点,并且实现交付保证,诸如在提交事务和修改区块链的世界状态时向系统中的每个对等节点的广播,这是初始区块链事务的另一名称,通常包括控制和设置信息。
本申请可以利用账本,该账本是区块链的所有状态转变的有序的防篡改的记录。状态转变可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,事务)引起。每个参与方(诸如对等节点)可以维护账本的副本。事务可能引起一组资产键值对作为一个或多个操作数(诸如创建、更新、删除等)被提交给账本。账本包括用于将不可变的有序的记录存储在块中的区块链(也称为链)。账本还包括维护区块链的当前状态的状态数据库。
本申请可以利用作为事务日志的链,该链被构造为哈希链接的块,并且每个块包含N个事务的序列,其中N等于或大于1。块头部包括该块的事务的哈希、以及前一块的头部的哈希。以这种方式,账本上的所有事务都可以被排序并且密码链接在一起。因此,不可能在不破坏哈希链接的情况下篡改账本数据。最近添加的区块链块的哈希表示链上在其之前的每个事务,从而可以确保所有对等节点处于一致且可信状态。该链可以存储在对等节点文件系统(即本地、附加存储装置、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变账本的当前状态表示链的事务日志中包括的所有键的最新值。由于当前状态表示通道已知的最新键值,因此有时将其称为世界状态。链码调用针对账本的当前状态数据执行事务。为了使这些链码交互有效,可以将键的最新值存储在状态数据库中。状态数据库可能只是链的事务日志中的索引视图,因此可以随时从链中重新生成。状态数据库可以在对等节点启动时以及在事务被接受之前自动恢复(或者根据需要生成)。
示例实施例提供了一种新的类型的内容交付网络,其中区块链可以以满足HTTPS协议要求的安全方式高速缓存网络内容。当客户端设备在第一访问期间从代理服务器中检索网页内容时,客户端设备可以经由区块链存储网页内容。当客户端设备(或另一客户端设备)在后续访问期间访问网页内容时,代替从一个或多个代理服务器取回内容,示例实施例使得客户端设备能够从区块链中取回网页内容。
在传统的(非HTTPS/HTTP)流中,数据可以被高速缓存在网络的中间点之一处。但是,在HTTPS流中,由于HTTPS流量必须安全,因此无法将内容(主要来自CDN,可能是最近的CDN节点)高速缓存在中间节点处。换言之,直接从相邻边缘节点取回该内容并不安全,因为该节点可能是恶意的。因此,所有客户端都必须从CDN中完全取回数据。因此,基于HTTPS的流量(与HTTP流量不同)无法在网络层次结构中的更高级别被高速缓存。因此,如果用户A已经从HTTPS服务器下载文件,则该文件不能在网络层次结构中的任何级别被高速缓存。同时,如果用户B必须获取同一文件,则用户B通常必须再次从HTTPS服务器取回该文件。另一方面,如果这是HTTP服务器,则该文件可能已经高速缓存在两个用户的网络层次结构的交集处。
示例实施例引入了一种新的机制,通过该机制,客户端设备可以安全地高速缓存和访问内容。特别地,可以使用区块链为通常仅由代理服务器存储的网页内容创建安全通道(并且使用链外高速缓存)。在此,区块链可能未用作数据存储,而可能用作保证所交付的网页内容的正确性和完整性的一种方式。此外,自然,可以启用内容发现和高速缓存控制。因此,HTTPS内容可以由区块链安全地存储/高速缓存并且由客户端设备访问,而无需客户端设备从代理服务器取回HTTPS内容。
本文中描述和描绘的解决方案的一些好处包括用于安全地提供HTTPS内容的新通道。这样,可以减少网络流量,并且可以减轻代理服务器的负担,无需承担整个内容负载。客户端设备可以访问区块链(即,通过访问可信对等节点),或者客户端设备可以是区块链的成员,从而存储分布式账本的本地副本。另外,客户端设备还可以充当用于存储网页内容的高速缓存(链外存储装置等)。
图1示出了根据示例实施例的经由区块链140实现安全交付通道的内容交付网络100。参考图1的示例,内容交付网络100包括能够诸如从由网络服务器120托管的网站接收网络内容(例如,网页、应用、媒体文件、脚本、文档等)的客户端设备110。然而,并非完全从网络服务器120交付网站内容,网站可以依赖于内容交付网络100中的其他内容源。在图1的示例中,代理服务器130可以将由网络服务器120托管的网站的一些或全部内容交付给客户端设备130。该服务在加速高流量网站和具有全球范围的网站的内容的交付方面是有效的。代理服务器130在地理上离客户端设备110越近,可以将内容交付给客户端设备110的速度越快。内容交付网络100还提供了针对流量激增的保护。
然而,从代理服务器130取回数据仍然可能是低效率且耗时的。为了促进改进的内容交付,内容交付网络100还包括能够管理由网络服务器120托管的网站的内容的区块链140。区块链140可以被很多用户(包括客户端设备110)访问,用户可以首先将从代理服务器130中检索的网站内容存储在区块链140的存储装置中。在图1的示例中,区块链140可以将内容链外存储在内容存储装置142A和142B中,但是实施例不限于此。作为另一示例,区块链140可以经由其分布式账本存储内容。
也就是说,在图1的示例中,实际的网络内容可以单独(链外)存储并且提供给请求者。这是链外存储装置,甚至可以驻留在完全独立的服务器上。在链(区块链140)上,内容的元数据可以存储在多个块中,包括标识度量,例如内容ID、内容哈希(用于完整性检查)、列表(存储内容的位置)、以及信任值(每个数据存储的可信度,其可以用不同的方式来测量)。该元数据将存储在由区块链事务构建的状态数据库中。
对网站内容的首次访问可以来自代理服务器130(或其他CDN服务器),就像对任何基于高速缓存的系统一样。对于所有内容,客户端设备110可以首先查询区块链140以查找内容是否由区块链140上的任何边缘节点托管。对于第一请求,客户端将无法在账本中找到相同的任何元数据,并且随后将向代理服务器130请求内容。
随着时间的流逝,区块链140可以获取由作为区块链140的成员的客户端设备访问的很多网站的网络内容。每次客户端设备110尝试访问网站(诸如由网络服务器120托管的网站)时,客户端设备110可以传输对网站内容的请求111。作为响应,网络服务器120可以向样板模板(例如,HTML)提供用于检索网站的内容以填充样板模板的链接(例如,URL等)。根据各种实施例,客户端设备110具有用于检索网站内容的多个选项。在此,客户端设备110可以从区块链140(存储在内容存储装置142A和/或142B中)中检索网站内容。作为另一选项,客户端设备110可以从代理服务器130中检索内容。从网络服务器120接收的URL可以是代理服务器130的URL。在这种情况下,区块链可以使用代理服务器130的URL作为区块链140上的内容的ID。
在示例实施例中,用于存储网络内容的边缘源机制涉及两个不同的服务(它们都可以由区块链的同一节点或不同节点提供)。边缘高速缓存存储和提供内容,并且区块链对等方存储内容元数据并且运行用于信任管理、内容发现、高速缓存控制等的智能合约。在一些实施例中,客户端设备110可以是区块链对等节点,并且实现边缘高速缓存和区块链对等角色中的一个或多个。例如,客户端设备110可以选择运行一个服务,运行两个服务,或者不运行任何一个服务。如果客户端设备110不运行任何一个服务,则客户端设备110可以经由至少一个区块链对等节点访问区块链140以在边缘溯源(edge-sourcing)中成功地存储CDN内容。类似地,客户端设备可以在区块链140内找到可以访问内容存储装置142A和142B以检索CDN内容的边缘高速缓存节点。在这种情况下,客户端设备110可以将(已经从CDN接收的)CDN内容提交给边缘高速缓存服务器,并且将对应的元数据提交给区块链对等方,以跟踪CDN内容在内容存储装置142A和/或142B上的存储位置。
在一些实施例中,边缘高速缓存服务器甚至可能在与客户端设备110相同的LAN上运行。通常,可以看出,这比代理服务器130更接近客户端设备,从而更有效地提供数据。然而,即使在代理服务器130碰巧更近的极少数情况下,使用边缘高速缓存还是代理服务器130的实际决定也可以留给客户端。
根据各种实施例,客户端设备110可以查询可信区块链对等方(其本身可以运行)以访问经由区块链140存储的内容。区块链对等方可以执行“内容发现”工作并且返回边缘高速缓存服务器列表,该列表包含(托管)客户端附近的期望内容和对应的信任度量。客户端设备110可以关于要进行哪个选项而做出调用。例如,如果客户端设备110找到可信边缘高速缓存列表(因为其信任值很高,其他客户端已经背书了内容的正确性或其之前已经处理过服务器),则其可以直接向该服务器请求该内容。如果客户端设备110不喜欢任何选项的信任值,则其可以退回以直接从代理服务器130取回内容(并且可选地,贡献内容以在其可信边缘高速缓存服务器之一处进行边缘溯源)。类似地,如果客户端设备110认为代理服务器130比边缘高速缓存服务器更近,则其可以再次退回到代理服务器130。
在一些实施例中,客户端设备110从邻近边缘节点盲目地取回否则安全的内容可能是不明智的,因为该节点可能是恶意的并且向客户端提供损坏的内容。为了解决这个问题,区块链140可以提供不只是简单的内容发现服务。例如,区块链140可以向客户端设备110提供与使用HTTPS安全CDN服务器所获取的信任保证相同的信任保证。特别地,区块链可以实现信任计算,该信任计算向内容的每个列表(托管节点)分配信任索引(例如,列表可以标识托管具有某些元数据的内容的边缘节点)。并且,在区块链上进行信任计算可以确保其是可靠且防篡改的,这表示恶意方无法修改与各种列表相关联的信任索引。在可用于特定内容的所有列表中,客户端设备110可以基于诸如信任索引、获取内容的成本等因素来选择最佳的可能列表,或者在没有列表可以接受的情况下,甚至决定直接从CDN获取内容。
图2A示出了根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅以示例的方式描绘)。这些节点参与很多活动,诸如区块链事务添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来背书事务,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证并且试图向存储在区块链层216中的区块链不可变账本中写入,该账本的副本也可以存储在基础物理基础设施214上。区块链配置可以包括一个或多个应用224,应用224链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等),程序/应用代码220可以根据参与者寻求的定制配置来创建并且可以维持其自己的状态,控制其自己的资产并且接收外部信息。这可以被部署为事务,并且经由附加到分布式账本来安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)的各个层、以及可以用于接收和存储新事务并且提供对正在寻求访问数据条目的审计者的访问的基础物理计算机基础设施。区块链层216可以暴露接口,该接口提供对处理程序代码和使用物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可以用于验证诸如资产交换事务等事务并且保持信息私有。
图2A的区块链架构配置可以经由由区块链平台212暴露的一个或多个接口和由区块链平台212提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传输数据,并且可以由节点204-210以智能合约和相关联的链码的形式来执行,智能合约和相关联的链码具有受制于其执行的条件或其他代码元素。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或受制于更改、更新等的其他通知。智能合约本身可以用于标识与账本的授权和访问账本的要求及使用相关联的规则。例如,内容请求226可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)处理。结果228可以包括从存储装置(例如,链外)中检索所请求的内容并且交付给客户端设备。物理基础设施214可以用于检索本文中描述的任何数据或信息。
智能合约可以经由高级应用和编程语言来创建,并且然后写入区块链中的块。智能合约可以包括被区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。事务是可以响应于与智能合约相关联的条件得到满足而执行的智能合约代码的执行。智能合约的执行可以触发对数字区块链账本的状态的(多个)可信修改。由智能合约执行引起的对区块链账本的(多个)修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中被自动复制。
智能合约可以以键值对的格式向区块链写入数据。此外,智能合约代码可以读取存储在区块链中的值,并且将其用于应用操作中。智能合约代码可以将各种逻辑操作的输出写入区块链中。该代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公开的和/或可以被加密并且保持为私有。由智能合约使用/生成的临时数据由所提供的执行环境保存在存储器中,一旦标识出区块链所需要的数据,便将其删除。
链码可以包括具有附加特征的智能合约的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,在计算网络上,由链验证器在共识过程中一起执行和验证链码。链码接收哈希,并且从区块链中检索与使用先前存储的特征提取器而创建的数据模板关联的哈希。如果哈希标识符的哈希与从所存储的标识符模板数据而创建的哈希相匹配,则链码向所请求的服务发送授权键。链码可以将与密码细节相关联的数据写入区块链。
图2B示出了根据示例实施例的在区块链的节点之间的区块链事务流250的示例。参考图2B,事务流可以包括由应用客户端节点260发送给背书对等节点281的事务提议291。背书对等方281可以验证客户端签名并且执行链码功能以发起事务。输出可以包括链码结果、在链码中读取的一组键/值版本(读取集)、以及在链码中写入的一组键/值(写入集)。如果批准,则提议响应292与背书签名一起被发送回客户端260。客户端260将背书组装成事务有效载荷293,并且将其广播给排序服务节点284。排序服务节点284然后将排序的事务作为块交付给通道上的所有对等方281-283。在提交给区块链之前,每个对等方281-283可以验证事务。例如,对等方可以检查背书策略,以确保指定对等方的正确分配已经对结果进行了签名并且针对事务有效负载293认证了签名。
再次参考图2B,客户端节点260通过构造请求并且将其发送给作为背书者的对等节点281来发起事务291。客户端260可以包括利用所支持的软件开发工具包(SDK)的应用,该SDK利用可用的API来生成事务提议。提议是调用链码功能以便可以将数据读取和/或写入账本(即,为资产写入新的键值对)的请求。SDK可以充当垫片库(shim)以将事务提议打包为适当架构的格式(例如,远程过程调用(RPC)上的协议缓冲区)并且采用客户端的加密证书为事务提议产生唯一的签名。
作为响应,背书对等节点281可以验证:(a)事务提议的格式正确,(b)过去尚未提交过事务(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中为客户端260)已经被正确授权在该通道上执行所提议的操作。背书对等节点281可以将事务提议输入作为所调用的链码功能的参数。然后针对当前状态数据库执行链码以产生事务结果,包括响应值、读取集和写入集。但是,此时尚未对账本进行任何更新。在292中,将值的集合以及背书对等节点281的签名作为提议响应292传递回客户端260的SDK,该SDK解析用于应用消费的有效载荷。
作为响应,客户端260的应用检查/验证背书对等方签名并且比较提议响应以确定提议响应是否相同。如果链码仅查询账本,则应用将检查查询响应并且通常不将事务提交给排序节点服务284。如果客户端应用打算将事务提交给排序节点服务284以更新账本,则应用在提交之前确定指定的背书策略是否已经实现(即,事务所需要的所有对等节点是否都对事务进行背书)。在此,客户端可以仅包括事务的多方之一。在这种情况下,每个客户端可以具有自己的背书节点,并且每个背书节点都需要背书事务。该架构使得即使应用选择不检查响应或以其他方式转发未背书的事务,背书策略仍将由对等方强制执行并且在提交验证阶段得到维护。
在成功检查之后,在步骤293中,客户端260将背书组装成事务并且在事务消息内向排序节点284广播事务提议和响应。事务可以包含读取/写入集、背书的对等方签名和通道ID。排序节点284不需要为了执行其操作而检查事务的全部内容,而是排序节点284可以简单地从网络中的所有通道接收事务,按通道按时间顺序对它们进行排序,并且每个通道创建事务块。
事务的块从排序节点284交付给通道上的所有对等节点281-283。验证块内的事务294以确保满足任何背书策略并且确保自事务执行生成读取集以来读取集变量的账本状态没有变化。块中的事务被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将块附加到通道的链,并且对于每个有效事务,写入集被提交给当前状态数据库。发出事件以向客户端应用通知事务(调用)已经被不可变地附加到链,并且通知事务是经过验证还是无效。
图3A示出了许可区块链网络300的示例,其特征在于分布式的分散式的对等架构。在该示例中,区块链用户302可以发起到许可区块链304的事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用,直接通过API,等等来发布。网络可以提供对诸如审计者等监管者306的访问。区块链网络运营商308管理成员许可,诸如将监管者306注册为“审计者”以及将区块链用户302注册为“客户端”。审计者可能只限于查询账本,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户端侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了将来自传统数据源312的证书包括在链码中,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可区块链304。在进行任何事务之前,对等节点314从管理用户角色和许可的证书颁发机构316中检索用户的注册和事务证书。在某些情况下,区块链用户必须拥有这些数字证书才能在许可区块链304上进行事务。同时,可能要求尝试使用链码的用户在传统数据源312上验证其证书。为了确认用户的授权,链码可以通过传统处理平台318使用与该数据的带外连接。
图3B示出了许可区块链网络320的另一示例,其特征在于分布式的分散式的对等架构。在该示例中,区块链用户322可以将事务提交给许可区块链324。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用,直接通过API,等等来发布。网络可以提供对诸如审计者等监管者326的访问。区块链网络运营商328管理成员许可,诸如将监管者326注册为“审计者”以及将区块链用户322注册为“客户端”。审计者可能只限于查询账本,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者330编写链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了将来自传统数据源332的证书包括在链码中,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何事务之前,对等节点334从证书颁发机构336中检索用户的注册和事务证书。在某些情况下,区块链用户必须拥有这些数字证书才能在许可区块链324上进行事务。同时,可能要求尝试使用链码的用户在传统数据源332上验证其证书。为了确认用户的授权,链码可以通过传统处理平台338使用与该数据的带外连接。
图4A示出了根据示例实施例的内容交付系统400,并且图4B示出了根据示例实施例的将内容交付给内容交付系统400中包括的客户端设备410的过程450。参考图4A和4B,内容交付系统400包括运行网络浏览器412的客户端设备410,该网络浏览器412被配置为从由网络服务器420托管的网站访问网络内容。在451中,客户端设备410的网络浏览器412可以提交对内容的请求(例如,页面请求等),并且在452中,作为响应,可以从网络服务器420接收样板HTML页面。在452中来自网络服务器420的响应还可以包括托管和提供内容的主机服务器(例如,内容服务器430)的地址信息。根据各种实施例,客户端设备410具有两个选项(A和B)用于检索用于填充样板HTML页面的网络内容。
例如,在453中,客户端设备410可以在区块链440中查询网页的内容。在该示例中,客户端设备410可以是区块链440的对等方,并且因此可以包括对等节点软件444。在此,客户端设备410可以查询本地区块链对等方444以检查内容是否可以是边缘溯源的。作为响应,在454中,智能合约进行内容发现并且检索能够访问内容的可用对等主机。在此,当多个对等方具有访问/托管内容时,智能合约可以基于查找时间和网络状态选择对等方444以检索内容。
在455中,客户端设备410可以确定所找到的任何主机是否可接受。例如,客户端设备410可以基于对可用对等主机的信任计算来做出确定。如果可用的区块链主机是可接受的,则在456中,客户端设备410触发从区块链440的节点中检索内容。此外,在457中,客户端设备410可以对从区块链440的主机接收的内容进行投票(赞成或反对等)。
客户端设备410可以经由内容的标识从区块链440中检索内容。在图4C的示例中,每条内容的内容元数据470可以存储在区块链440上。在此,内容元数据470可以用于标识内容。在该示例中,内容元数据470包括作为内容的唯一ID的内容ID 471、作为内容的源的代理服务器的URL 472。此外,内容元数据470包括存储/高速缓存内容的副本的多个列表(或主机)。每个列表可以包括区块链上的边缘高速缓存的地址473、内容的哈希474(用于完整性检查)、列表(内容存储的位置)、标识高速缓存的过期的TTL 475、指示每个数据存储的可信度的信任值476、以及访问数据所需要的成本477(诸如网络带宽)。内容元数据470可以存储在由区块链事务建立的状态数据库中。
如果在455中客户端设备确定没有主机是可接受的(或没有主机可用),则在458中,客户端设备410可以从CDN服务器430中检索内容。此外,在459中,客户端设备410可以确定是否要与内容区块链440的其他参与者共享内容。如果客户端设备410确定要共享内容,则在460中,客户端设备410可以经由一个或多个区块链对等方444触发内容的存储。因此,相同内容的后续访问可以由客户端设备410(以及作为区块链440的参与者的其他客户端设备)检索,而不必从CDN服务器430取回内容。
图5示出了根据示例实施例的从区块链中检索网页内容的方法500。参考图5,在510中,该方法可以包括向网络服务器传输对网页内容的请求。例如,该请求可以包括对诸如页面、图形、脚本、应用、媒体文件等网络内容的页面请求。在520中,该方法可以包括接收网页的超文本标记语言(HTML)样板文件以及用于网页的内容交付网络(CDN)内容的CDN地址。样板文件可以包括指向CDN服务器(例如,代理服务器等)的链接,内容要从该CDN服务器中被检索。
在530中,该方法可以包括基于CDN地址从区块链中检索CDN内容。在此,该方法可以包括从存储内容的区块链而不是代理服务器等中检索CDN内容。在540中,该方法还可以包括基于HTML样板文件和从区块链中检索的CDN内容在客户端设备处显示网页。在一些实施例中,该方法还可以包括响应于检测到CDN内容存储在区块链处而确定从区块链而不是由CDN地址标识的CDN服务器中检索CDN内容。
根据各种实施例,所检索的CDN内容可以包括超文本传输协议安全(HTTPS)内容。在一些实施例中,该方法还可以包括:基于由区块链的多个客户端提供的投票和权重中的至少一项来确定区块链对等方的信任级别;以及响应于确定信任级别满足预定阈值而从区块链对等方中检索CDN内容。在一些实施例中,检索可以包括基于CDN内容的CDN内容源的统一资源定位符(URL)在区块链中查询CDN内容。在一些实施例中,可以从由客户端设备本地管理的分布式账本中检索CDN内容。在一些实施例中,可以由区块链响应于另一客户端设备对CDN内容的先前访问而高速缓存CDN内容。在一些实施例中,CDN内容可以由区块链存储在区块链的链外存储装置中,而区块链维护CDN内容的元数据。
图6A示出了根据示例实施例的包括被配置为执行各种操作的物理基础设施610的示例系统600。参考图6A,物理基础设施610包括模块612和模块614。模块614包括可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)的区块链620和智能合约630(其可以驻留在区块链620上)。步骤/操作608可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6B示出了根据示例实施例的被配置为执行各种操作的另一示例系统640。参考图6B,系统640包括模块612和模块614。模块614包括可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)的区块链620和智能合约630(其可以驻留在区块链620上)。步骤/操作608可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6C示出了根据示例实施例的被配置为利用缔约方之间的智能合约配置的示例系统以及被配置为在区块链上实施智能合约条款的中介服务器。参考图6C,配置650可以表示由智能合约630驱动的通信会话、资产转移会话或进程或过程,该智能合约630明确地标识一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要由作为智能合约事务的各方的实体652和656中的一个或多个进行数字签名。智能合约执行的结果可以作为区块链事务被写入区块链620。智能合约630驻留在区块链620上,该区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出了根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即,服务器654)来在区块链上执行事务(调用、查询等)的公共接口。在此,服务器654是区块链网络对等组件,其拥有世界状态的副本和分布式账本,以允许客户端652和656查询关于世界状态的数据以及将事务提交到区块链网络中,其中取决于智能合约630和背书策略,背书对等方将运行智能合约630。
以上实施例可以以硬件,以处理器执行的计算机程序,以固件,或以上述各项的组合来实现。计算机程序可以体现在诸如存储介质等计算机可读介质上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)、或本领域已知的任何其他形式的存储介质中。
示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息以及向存储介质写入信息。在替代方案中,存储介质可以与处理器成一体。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可以作为分立组件驻留。
图7A示出了根据示例实施例的将新块添加到分布式账本720的过程700,并且图7B示出了根据示例实施例的用于区块链的新数据块结构730的内容。参考图7A,客户端(未示出)可以向区块链节点711、712和/或713提交事务。客户端可以是在区块链720上制定活动的从任何来源接收的指令。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)采取动作以为区块链提出事务的应用。多个区块链对等方(例如,区块链节点711、712和713)可以维持区块链网络的状态和分布式账本720的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括模拟和背书由客户端提议的事务的背书对等方、以及验证背书、验证事务并且向分布式账本720提交事务的提交对等方。在该示例中,区块链节点711、712和713可以充当背书者节点、提交者节点、或两者的角色。
分布式账本720包括以块为单位存储不可变的有序记录的区块链、以及维护区块链722的当前状态的状态数据库724(当前世界状态)。每个通道可以存在一个分布式账本720,并且每个对等方为它们作为其成员的每个通道维护其自己的分布式账本720的副本。区块链722是事务日志,其被构造为哈希链接的块,其中每个块包含N个事务的序列。块可以包括诸如图7B所示的各种组件。可以通过在当前块的块头部中添加前一块的头部的哈希来生成块的链接(图7A中的箭头所示)。以这种方式,对区块链722上的所有事务进行排序并且将其密码链接在一起,以防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于链接,区块链722中的最新块表示在其之前的每个事务。区块链722可以存储在对等文件系统(本地或附加存储)上,该对等文件系统支持仅附加的区块链工作负载。
区块链722的当前状态和分布式账本722可以存储在状态数据库724中。在此,当前状态数据表示区块链722的链事务日志中曾经包括的所有键的最新值。链码调用针对状态数据库724中的当前状态执行事务。为了使这些链码交互非常高效,所有键的最新值存储在状态数据库724中。状态数据库724可以将索引视图包括到区块链722的事务日志中,因此可以随时从链中进行重新生成。状态数据库724可以在事务被接受之前在对等方启动时自动恢复(或在需要时生成)。
背书节点从客户端接收事务,并且基于模拟结果背书事务。背书节点保存模拟事务提议的智能合约。当背书节点背书事务时,背书节点创建事务背书,该事务背书是从背书节点到客户端应用的指示模拟事务的背书的签名响应。背书事务的方法取决于可以在链码中指定的背书策略。背书策略的示例是“大多数背书对等方必须背书事务”。不同的通道可以具有不同的背书策略。由客户端应用将背书事务转发给排序服务710。
排序服务710接受背书事务,将其排序为块,并且将该块交付给提交对等方。例如,当已经达到事务的阈值,计时器超时或其他条件时,排序服务710可以发起新的块。在图7A的示例中,区块链节点712是提交对等方,其已经接收到新数据新数据块730以存储在区块链720上。区块链中的第一块可以被称为创世块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由排序者的集群组成。排序服务710不处理事务、智能合约或者维护共享账本。而是,排序服务710可以接受背书事务并且指定将这些事务提交给分布式账本720的顺序。区块链网络的架构可以被设计为使得特定“排序”实现(例如,Solo、Kafka、BFT等)成为可插拔组件。
事务以一致的顺序被写入分布式账本720。建立事务的顺序以确保对状态数据库724的更新在事务被提交给网络时有效。与通过解决密码难题或挖掘进行排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式账本720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化新数据块730时,新数据块730可以被广播给提交对等方(例如,区块链节点711、712和713)。作为响应,每个提交对等方通过检查以确保读取集和写入集仍与状态数据库724中的当前世界状态相匹配来验证新数据块730中的事务。具体地,提交对等方可以确定在背书者模拟事务时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等方验证事务时,事务被写入分布式账本720上的区块链722,并且状态数据库724使用读写集中的写入数据被更新。如果事务失败,即,如果提交对等方发现读写集与状态数据库724中的当前世界状态不匹配,则排序为块的事务仍然将被包括在该块中,但是它将标记为无效,并且状态数据库724将不被更新。
参考图7B,存储在分布式账本720的区块链722上的新数据块730(也称为数据块)可以包括多个数据段,诸如块头部740、块数据750和块元数据760。应当理解,所描绘的各种块及其内容(诸如图7B所示的新数据块730及其内容)仅是示例,而非意在限制示例实施例的范围。新数据块730可以在块数据750内存储N个事务(例如,1、10、100、500、1000、2000、3000个等)的事务信息。新数据块730还可以包括到块头部740内的前一块(例如,在图7A中的区块链722上)的链接。特别地,块头部740可以包括前一块的头部的哈希。块头部740还可以包括唯一块号、新数据块730的块数据750的哈希等。新数据块730的块号可以是唯一的,并且可以以各种顺序分配,诸如从零开始的增序/顺序。
块数据750可以存储记录在新数据块730内的每个事务的事务信息。例如,事务数据可以包括以下中的一种或多种:事务的类型、版本、时间戳、分布式账本720的通道ID、事务ID、时期、有效载荷可见性、链码路径(部署TX)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)标识(诸如公钥和证书)、客户端的签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、名称空间、读取集(由事务读取的键和版本的列表等)、写入集(键和值的列表等)、开始键、结束键、键列表、默克尔树查询摘要等。可以针对N个事务中的每个存储事务数据。
在一些实施例中,块数据750还可以存储内容元数据752,内容元数据752可以包括图4C的示例中所示的信息。因此,系统可以将内容元数据752存储在区块链722内。内容元数据752可以标识要从内容交付网络交付给网页的网页内容(例如,HTTPS内容等)。然而,在这种情况下,区块链722(或区块链722可访问的链外存储装置)可以存储内容并且将内容提供给客户端设备的网络浏览器。内容元数据752可以存储在分布式账本720上的块的不变日志中。虽然在图7B中,内容元数据752被描述在块数据750中,但是它也可以位于块头部740或块元数据760中。
块元数据760可以存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括在块创建时的签名、对最后的配置块的引用、标识块内有效事务和无效事务的事务过滤器、对块进行排序的排序服务持续的最后偏移等。签名、最后的配置块和排序者元数据可以由排序服务710添加。同时,块的提交者(诸如区块链节点712)可以基于背书策略、读取/写入集的验证等来添加有效性/无效性信息。事务过滤器可以包括大小等于块数据750中的事务的数目的字节阵列和标识事务是否有效/无效的验证码。
图7C示出了根据本文中描述的实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不变的仅附加的方面可作为保护数字内容的完整性、有效性和真实性的保障,以使其适用于其中适用容许性规则的法律程序或者其中考虑证据或者否则会引起对数字信息的展示和使用的兴趣的其他设置。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且可以从其访问。例如,区块链的每个块可以沿着相关联的数字内容存储参考信息的哈希值(例如,头部、值等)。然后可以将哈希和相关联的数字内容一起加密。因此,可以通过解密区块链中的每个块来访问每个块的数字内容,并且每个块的哈希值可以用作参考前一块的基础。这可以说明如下:
在一个实施例中,数字内容可以未包括在区块链中。例如,区块链可以存储每个块的内容的加密哈希,而无需任何数字内容。数字内容可以与原始文件的哈希相关联地存储在另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的相同的存储设备,也可以是不同的存储区域,甚至是单独的关系数据库。每个块的数字内容可以通过以下方式来引用或访问:获取或查询感兴趣的块的哈希值,然后在存储区域中查找具有与实际数字内容相对应地存储的值的内容。例如,该操作可以由数据库网守来执行。这可以说明如下:
在图7C的示例实施例中,区块链770包括以有序序列密码地链接的多个块7781、7872、……、778N,其中N≥1。用于链接块7781、7872、……、778N的加密可以是多个键控或非键控哈希函数中的任何一个。在一个实施例中,块7781、7872、……、778N经历哈希函数,该哈希函数基于块中的信息从输入产生n位字母数字输出(其中n是256或另一数字)。这样的哈希函数的示例包括但不限于SHA型(SHA表示安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非防冲突PRF算法。在另一实施例中,可以通过与哈希函数不同的函数来密码地链接块7781、7872、……、778N。为了说明的目的,参考诸如SHA-2等哈希函数进行以下描述。
区块链中的块7781、7872、……、778N中的每个包括头部、文件版本、和值。由于区块链中的哈希,每个块的头部和值都不同。在一个实施例中,该值可以被包括在头部中。如下面更详细地描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一块7781被称为创世块,并且包括头部7721、原始文件7741和初始值7761。用于创世块以及实际上在所有后续块中的哈希方案可以变化。例如,可以将第一块7781中的所有信息一次哈希在一起,或者可以分别对第一块7781中的每个信息或一部分信息进行哈希,然后可以对分别哈希的部分执行哈希。
头部7721可以包括一个或多个初始参数,例如,可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字、和/或与原始文件7741和/或区块链相关联的其他信息。头部7721可以自动地(例如,通过区块链网络管理软件)生成,或者可以由区块链参与者手动生成。与区块链中的其他区块7782至778N中的头部不同,创世块中的头部7721并不引用前一块,这仅仅是因为没有前一块。
创世块中的原始文件7741可以是例如由设备捕获的数据,该设备在将其包括在区块链中之前对其进行处理或不进行处理。原始文件7741通过系统的接口从设备、媒体源或节点接收。原始文件7741与元数据相关联,例如,元数据可以由用户、设备和/或系统处理器手动或自动生成。元数据可以与原始文件7741相关联地被包括在第一块7781中。
创世块中的值7761是基于原始文件7741的一个或多个唯一属性而生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件7741的哈希、原始文件7741的元数据、以及与文件相关联的其他信息。在一种实现中,初始值7761可以基于以下唯一属性:
1)原始文件的SHA-2计算哈希值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前控制原始文件和相关联的元数据的软件的区块链网络成员ID
区块链中的其他块7782至778N也具有头部、文件和值。然而,与第一块7721不同,其他块中的头部7722至772N中的每个包括紧接在前的块的哈希值。紧接在前的块的哈希值可以只是前一块的头部的哈希,也可以是整个前一块的哈希值。通过在每个剩余块中包括前一块的哈希值,如箭头所示780,可以逐个块地从第N块返回到创世块(以及关联的原始文件)来执行跟踪,来建立可审计且不可改变的监管链。
其他块中的头部7722至772N中的每个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议、和/或通常与对应文件和/或区块链相关联的其他参数或信息。
其他块中的文件7742至774N可以等于原始文件,或者可以是创世块中的原始文件的修改版本,例如,这取决于所执行的处理类型。所执行的处理的类型可以因块而异。该处理可以涉及例如在前一块中对文件的任何修改,诸如编辑信息或以其他方式改变文件的内容,从文件中取走信息,或者向文件添加或附加信息。
另外地或替代地,该处理可以包括仅从前一块复制文件,改变文件的存储位置,从一个或多个前一块分析文件,将文件从一个存储或存储器位置移动到另一存储或存储器位置,或者相对于区块链的文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如附加、包括或以其他方式关联与文件相关联的各种分析、统计或其他信息。
其他块中的每个其他块7762至776N中的每个中的值是唯一值,并且由于所执行的处理而全都不同。例如,任何一个块中的值都对应于前一块中的值的更新版本。该更新被反映在为其分配了值的块的哈希中。因此,块的值提供对在块中执行的处理的指示,并且还允许通过区块链追溯回原始文件。这种跟踪确认整个区块链中的文件的监管链。
例如,考虑对前一块中的文件的部分进行编辑,屏蔽或像素化以保护文件中所示的人的身份的情况。在这种情况下,包括已编辑文件的块将包括与已编辑文件相关联的元数据,例如,如何执行编辑,执行编辑的人员,进行编辑的时间戳等。可以对元数据进行哈希以形成值。由于块的元数据与经过哈希以形成前一块中的值的信息不同,因此这些值互不相同并且可以在解密时恢复。
在一个实施例中,当以下任何一个或多个发生时,可以更新前一块的值(例如,计算出的新的哈希)以形成当前块的值。在该示例实施例中,可以通过对以下所述的全部或部分信息进行哈希来计算新的哈希。
a)如果以任何方式处理文件(例如,如果文件已经被编辑、复制、更改、访问或已采取其他措施),则新的SHA-2计算哈希值
b)文件的新的存储位置
c)标识与文件相关联的新的元数据
d)将文件的访问或控制从一个区块链参与者转移到另一区块链
参与者
图7D示出了根据一个实施例的可以表示区块链790中的块的结构的块的实施例。块(块i)包括头部772i、文件774i和值776i。
头部772i包括前一块(块i-1)的哈希和附加参考信息,附加参考信息例如可以是本文中讨论的任何类型的信息(例如,头部信息,包括参考、特征、参数等)。当然,除了创世块,所有块均引用前一块的哈希。前一块的哈希值可以仅仅是前一块中的头部的哈希,或者也可以是前一块中所有或部分信息的哈希,包括文件和元数据。
文件774i依次包括多个数据,诸如数据1、数据2、……、数据N。数据用元数据(元数据1、元数据2、……、元数据N)标记,这些元数据描述与数据相关联的内容和/或特征。例如,每个数据的元数据可以包括用于指示数据的时间戳,处理数据,指示人物或数据中描绘的其他内容的关键字、和/或可以有助于作为整体(尤其是其使用数字证据)建立文件的有效性和内容的其他特征的信息,如以下结合实施例描述的。除了元数据,每个数据可以使用参考(参考1、参考2、……、参考N)标记到先前的数据,以防止篡改,文件中的空白以及通过文件的顺序参考。
一旦将元数据分配给数据(例如,通过智能合约),就不能在不改变哈希的情况下改变元数据,可以容易地将其识别为无效。因此,元数据创建可以被访问以供区块链中的参与者使用的信息的数据日志。
值776i是哈希值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定的块(块i),可以对该块的值进行更新以反映对该块执行的处理,例如,新的哈希值、新的存储位置、关联文件的新的元数据、控制或访问的转移、标识符、或者要添加的其他动作或信息。尽管每个块中的值被示出为与文件和头部的数据的元数据分离,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成区块链770,在任何时间点,可以通过在区块链中查询跨块的值的事务历史来获取文件的不可变的监管链。该查询或跟踪过程可以从解密当前包括的块的值(例如,最后(第N)块)开始,然后继续解密其他块的值,直到达到创世块并且原始文件恢复。解密还可以包括在每个块处解密头部和文件以及相关联的元数据。
基于在每个块中发生的加密的类型来执行解密。这可以涉及私钥、公钥或公钥私钥对的使用。例如,当使用非对称加密时,网络中的区块链参与者或处理器可以使用预定算法来生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。可以公开分配公钥以用作从其他用户接收消息的地址,例如,IP地址或归属地址。私钥是保密的并且用于对发送给其他区块链参与者的消息进行数字签名。签名被包括在消息中,以便接收方可以使用发送方的公钥进行验证。这样,接收方可以确保只有发送方可以发送该消息。
生成密钥对可以类似于在区块链上创建账户,但是不必实际在任何地方进行注册。此外,发送方使用其私钥对在区块链上执行的每个事务进行数字签名。该签名确保只有帐户所有者才能跟踪和处理(如果在智能合约确定的许可范围内)区块链的文件。
图8示出了示例系统800,该示例系统800支持本文中描述和/或描绘的一个或多个示例实施例。系统800包括可以与很多其他通用或专用计算系统环境或配置一起操作的计算机系统/服务器802。可以适合与计算机系统/服务器802一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或便携式设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括上述任何系统或设备的分布式云计算环境等。
计算机系统/服务器802可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器802可以在分布式云计算环境中实践,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机系统存储介质中。
如图8所示,云计算节点800中的计算机系统/服务器802以通用计算设备的形式示出。计算机系统/服务器802的组件可以包括但不限于一个或多个处理器或处理单元804、系统存储器806、以及将包括系统存储器806在内的各种系统组件耦合到处理器804的总线。
总线表示几种类型的总线结构中的任何一种或多种,包括使用各种总线架构中的任何一种的存储器总线或存储器控制器、外围总线、加速图形端口以及处理器或本地总线。作为示例而非限制,这样的架构包括行业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。
计算机系统/服务器802通常包括各种计算机系统可读介质。这样的介质可以是计算机系统/服务器802可访问的任何可用介质,并且包括易失性和非易失性介质的可移动和不可移动介质。在一个实施例中,系统存储器806实现其他附图的流程图。系统存储器806可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)810和/或高速缓冲存储器812。计算机系统/服务器802还可以包括其他可移动/不可移动的易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统814以用于读取和写入不可移动的非易失性磁性介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是可以提供用于读取和写入可移动的非易失性磁盘(例如,“软盘”)的磁盘驱动器、以及用于读取或写入可移动的非易失性光盘(诸如CD-ROM、DVD-ROM或其他光学介质)的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据媒体接口连接到总线。如将在下面进一步描绘和描述的,存储器806可以包括具有被配置为执行本申请的各种实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
作为示例而非限制,具有一组(至少一个)程序模块818的程序/实用程序816、以及操作系统、一个或多个应用、其他程序模块和程序数据可以存储在存储器806中。操作系统、一个或多个应用、其他程序模块、以及程序数据或其某种组合中的每个可以包括联网环境的实现。程序模块818通常执行本文中描述的本申请的各种实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合软件和硬件方面的实施例,这些在本文中通常都可以被称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取体现在其上包含有计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。
计算机系统/服务器802还可以与以下各项通信:一个或多个外部设备820,诸如键盘、指示设备、显示器822等;使得用户能够与计算机系统/服务器802交互的一个或多个设备;和/或使得计算机系统/服务器802能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由I/O接口824发生。然而,计算机系统/服务器802可以经由网络适配器826与一个或多个网络通信,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)。如图所示,网络适配器826经由总线与计算机系统/服务器802的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器802结合使用。示例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
尽管在附图中示出并且在前述详细描述中描述了系统、方法和非暂态计算机可读介质中的至少一个的示例性实施例,但是应当理解,本申请不限于所公开的实施例,而是能够进行如所附权利要求阐述和定义的很多重新布置、修改和替换。例如,各个附图的系统的能力可以由本文中描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射器、接收器或两者的对。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个来执行。此外,本文中描述的功能可以在各种时间并且与模块或组件内部或外部的各种事件相关地执行。而且,可以经由以下中的至少一项在各个模块之间发送在各种模块之间发送的信息:数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或经由多种协议。而且,由任何模块发送或接收的消息可以直接和/或经由一个或多个其他模块来发送或接收。
本领域的技术人员将意识到,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、手机、平板计算设备、智能手机或任何其他合适的计算设备或设备组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供很多实施例的一个示例。实际上,本文中公开的方法、系统和装置可以以与计算技术相一致的局部和分布式形式来实现。
应当注意,在本说明书中描述的一些系统特征已经作为模块呈现,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成电路(VLSI)电路或门阵列、现成半导体,诸如逻辑芯片、晶体管或其他分立组件。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等可编程硬件设备中实现。
模块也可以至少部分以由各种类型的处理器执行的软件来实现。所标识的可执行代码单元可以例如包括可以例如被组织为对象、过程或功能的计算机指令的一个或多个物理或逻辑块。然而,所标识的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,这些指令当在逻辑上结合在一起时包括模块并且实现模块的上述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带、或用于存储数据的任何其他这样的介质。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在多个不同的代码段上,在不同的程序之间,以及在若干存储设备之间。类似地,操作数据可以在本文中被识别和示出为在模块内,并且可以以任何合适的形式来体现并且可以在任何合适的类型的数据结构内组织。操作数据可以作为单个数据集被收集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分仅作为系统或网络上的电子信号存在。
将容易理解,如本文中的附图中一般性地描述和示出的,本申请的组件可以以多种不同的配置来布置和设计。因此,实施例的详细描述并非旨在限制所要求保护的本申请的范围,而仅表示本申请的所选择的实施例。
本领域普通技术人员将容易地理解,以上内容可以以不同顺序的步骤和/或以与所公开的配置不同的配置的硬件元件来实践。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员很清楚的是,某些修改、变体和替代构造将是很清楚的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是示例性的,并且当考虑其全部等同方案和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求书限定。
Claims (18)
1.一种计算系统,包括:
网络接口,被配置为向网络服务器传输对网页内容的请求,并且接收所述网页的超文本标记语言(HTML)样板文件带有用于所述网页的内容交付网络(CDN)内容的CDN地址;以及
处理器,被配置为基于所述CDN地址从区块链中检索所述CDN内容,并且基于所述HTML样板文件和从所述区块链中检索到的所述CDN内容在客户端设备处显示所述网页。
2.根据权利要求1所述的计算系统,其中所述处理器还被配置为响应于检测到所述CDN内容被存储在所述区块链处,从所述区块链而不是由所述CDN地址标识的CDN服务器中检索所述CDN内容。
3.根据权利要求1所述的计算系统,其中检索到的所述CDN内容包括超文本传输协议安全(HTTPS)内容。
4.根据权利要求1所述的计算系统,其中所述处理器还被配置为:
基于由所述区块链的多个客户端提供的投票和权重中的至少一项来确定区块链对等方的信任级别,以及
响应于所述信任级别满足预定阈值的确定,从所述区块链对等方中检索所述CDN内容。
5.根据权利要求1所述的计算系统,其中所述处理器被配置为基于所述CDN内容的CDN内容源的统一资源定位符URL来在所述区块链中查询所述CDN内容。
6.根据权利要求1所述的计算系统,其中所述CDN内容从由所述客户端设备本地管理的分布式账本中被检索。
7.根据权利要求1所述的计算系统,其中所述CDN内容由所述区块链响应于由另一客户端设备对所述CDN内容的先前访问而被高速缓存。
8.根据权利要求1所述的计算系统,其中所述CDN内容由所述区块链存储在所述区块链的链外存储装置中,而所述区块链维护所述CDN内容的元数据。
9.一种方法,包括:
向网络服务器传输对网页内容的请求;
接收所述网页的超文本标记语言(HTML)样板文件带有用于所述网页的内容交付网络(CDN)内容的CDN地址;
基于所述CDN地址从区块链中检索所述CDN内容;以及
基于所述HTML样板文件和从所述区块链中检索到的所述CDN内容在客户端设备处显示所述网页。
10.根据权利要求9所述的方法,其中所述方法还包括响应于检测到所述CDN内容被存储在所述区块链处,确定从所述区块链而不是由所述CDN地址标识的CDN服务器中检索所述CDN内容。
11.根据权利要求9所述的方法,其中检索到的所述CDN内容包括超文本传输协议安全(HTTPS)内容。
12.根据权利要求9所述的方法,其中所述方法还包括:
基于由所述区块链的多个客户端提供的投票和权重中的至少一项来确定区块链对等方的信任级别;以及
响应于所述信任级别满足预定阈值的确定,从所述区块链对等方中检索所述CDN内容。
13.根据权利要求9所述的方法,其中所述检索包括基于所述CDN内容的CDN内容源的统一资源定位符(URL)来在所述区块链中查询所述CDN内容。
14.根据权利要求9所述的方法,其中所述CDN内容从由所述客户端设备本地管理的分布式账本中被检索。
15.根据权利要求9所述的方法,其中所述CDN内容由所述区块链响应于由另一客户端设备对所述CDN内容的先前访问而被高速缓存。
16.根据权利要求9所述的方法,其中所述CDN内容由所述区块链存储在所述区块链的链外存储装置中,而所述区块链维护所述CDN内容的元数据。
17.一种包括指令的非暂态计算机可读介质,所述指令在由处理器读取时引起所述处理器执行包括根据权利要求9至16中任一项所述的方法中的步骤的方法。
18.一种计算机系统,包括被配置为执行根据权利要求9至16中任一项所述的方法中的步骤的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/376,454 US11095705B2 (en) | 2019-04-05 | 2019-04-05 | Content distributed over secure channels |
US16/376,454 | 2019-04-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111797347A true CN111797347A (zh) | 2020-10-20 |
Family
ID=72662611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010256322.8A Pending CN111797347A (zh) | 2019-04-05 | 2020-04-02 | 分布在安全通道上的内容 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11095705B2 (zh) |
CN (1) | CN111797347A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225640A (zh) * | 2022-09-20 | 2022-10-21 | 卓望数码技术(深圳)有限公司 | 一种基于区块链的cdn可信数字内容监管方法以及系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210049285A1 (en) * | 2020-10-28 | 2021-02-18 | Intel Corporation | Transient dataset management system |
EP3991066B1 (en) * | 2019-06-28 | 2023-07-12 | Mylime S.R.L. | A method for managing data and storing them in blockchain |
US11356367B2 (en) * | 2019-11-22 | 2022-06-07 | Red Hat, Inc. | Secure preloading of serverless function sequences |
US11477279B1 (en) * | 2021-06-18 | 2022-10-18 | Compellio S.A. | Digital assets exchange coordination |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103827857A (zh) * | 2011-09-30 | 2014-05-28 | 惠普发展公司,有限责任合伙企业 | 个人化内容递送系统和方法 |
CN107666484A (zh) * | 2017-09-19 | 2018-02-06 | 上海交通大学 | 一种基于区块链的cdn共享方法及系统 |
CN109040337A (zh) * | 2018-07-19 | 2018-12-18 | 网宿科技股份有限公司 | 一种信息查询方法、边缘服务器及信息查询系统 |
CN109067930A (zh) * | 2018-06-26 | 2018-12-21 | 网宿科技股份有限公司 | 域名接入方法、域名解析方法、服务器、终端及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653689B1 (en) | 2002-05-17 | 2010-01-26 | Abacast, Inc. | Intelligent virtual content distribution network system and method |
JP6082387B2 (ja) | 2011-05-14 | 2017-02-15 | ビットカーサ インコーポレイテッド | ユーザ不可知暗号化ファイルのサーバ側非複製化を有するクラウドファイルシステム |
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 |
US10728103B2 (en) | 2016-03-21 | 2020-07-28 | Dell Products L.P. | Edge device resourcing using recursive ledger chaining |
BR112018071151A2 (pt) * | 2016-04-15 | 2019-02-05 | Qualcomm Inc | técnicas para gerenciar transmissões de conteúdo seguras em uma rede de entrega de conteúdo |
CN110300969B (zh) * | 2017-02-17 | 2023-08-18 | 诺基亚技术有限公司 | 投票-共识分布式账本 |
US10579994B1 (en) * | 2018-11-06 | 2020-03-03 | Capital One Services, Llc | Method for routing to mesh network content utilizing blockchain technology |
-
2019
- 2019-04-05 US US16/376,454 patent/US11095705B2/en active Active
-
2020
- 2020-04-02 CN CN202010256322.8A patent/CN111797347A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103827857A (zh) * | 2011-09-30 | 2014-05-28 | 惠普发展公司,有限责任合伙企业 | 个人化内容递送系统和方法 |
US20140201183A1 (en) * | 2011-09-30 | 2014-07-17 | Qian Lin | Personalized Content Delivery System and Method |
CN107666484A (zh) * | 2017-09-19 | 2018-02-06 | 上海交通大学 | 一种基于区块链的cdn共享方法及系统 |
CN109067930A (zh) * | 2018-06-26 | 2018-12-21 | 网宿科技股份有限公司 | 域名接入方法、域名解析方法、服务器、终端及存储介质 |
CN109040337A (zh) * | 2018-07-19 | 2018-12-18 | 网宿科技股份有限公司 | 一种信息查询方法、边缘服务器及信息查询系统 |
Non-Patent Citations (1)
Title |
---|
张升伟;毕波;: "基于区块链技术的运营级CDN平台建设探讨", 邮电设计技术, no. 07, 20 July 2018 (2018-07-20) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225640A (zh) * | 2022-09-20 | 2022-10-21 | 卓望数码技术(深圳)有限公司 | 一种基于区块链的cdn可信数字内容监管方法以及系统 |
CN115225640B (zh) * | 2022-09-20 | 2022-12-06 | 卓望数码技术(深圳)有限公司 | 一种基于区块链的cdn可信数字内容监管方法以及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200322413A1 (en) | 2020-10-08 |
US11095705B2 (en) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
US11487886B2 (en) | Database private document sharing | |
US11416548B2 (en) | Index management for a database | |
US11777712B2 (en) | Information management in a database | |
US11200260B2 (en) | Database asset fulfillment chaincode deployment | |
US20200364205A1 (en) | Database world state integrity validation | |
CN112053157B (zh) | 灵活交易验证 | |
CN111666332B (zh) | 自动演进的数据库背书策略 | |
US11095705B2 (en) | Content distributed over secure channels | |
US11360946B2 (en) | Tracking data transfers | |
US11177938B2 (en) | Database composite endorsement | |
US11645268B2 (en) | Database world state performance improvement | |
CN111796968A (zh) | 受数据库交易保证的提交 | |
CN111881130A (zh) | 区块链存储结构的冲突解决方案 | |
CN111831740B (zh) | 对等体的同步 | |
US11457066B2 (en) | Splitting and merging of storages | |
US11082215B2 (en) | Immutable broadcasting queues | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
US11379316B2 (en) | Snapshot restoration | |
US11443326B2 (en) | Geo-location compliance | |
US11314771B2 (en) | Splitting and merging of storages |
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 |