CN112840596B - 使用区块链和分布式文件***的分布式应用架构 - Google Patents
使用区块链和分布式文件***的分布式应用架构 Download PDFInfo
- Publication number
- CN112840596B CN112840596B CN201980066996.7A CN201980066996A CN112840596B CN 112840596 B CN112840596 B CN 112840596B CN 201980066996 A CN201980066996 A CN 201980066996A CN 112840596 B CN112840596 B CN 112840596B
- Authority
- CN
- China
- Prior art keywords
- data
- data set
- blockchain
- file system
- distributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 92
- 238000003860 storage Methods 0.000 claims description 79
- 238000013515 script Methods 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000012384 transportation and delivery Methods 0.000 claims description 8
- 230000001737 promoting effect Effects 0.000 claims description 7
- 238000012790 confirmation Methods 0.000 claims description 5
- 230000008521 reorganization Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 43
- 239000003999 initiator Substances 0.000 description 39
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 15
- 230000002085 persistent effect Effects 0.000 description 12
- 238000012795 verification Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 239000007787 solid Substances 0.000 description 7
- 238000005065 mining Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000010454 slate Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 241000272878 Apodiformes Species 0.000 description 1
- 241000222511 Coprinus Species 0.000 description 1
- 241000721047 Danaus plexippus Species 0.000 description 1
- WHXSMMKQMYFTQS-UHFFFAOYSA-N Lithium Chemical compound [Li] WHXSMMKQMYFTQS-UHFFFAOYSA-N 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 241000414697 Tegra Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- OJIJEKBXJYRIBZ-UHFFFAOYSA-N cadmium nickel Chemical compound [Ni].[Cd] OJIJEKBXJYRIBZ-UHFFFAOYSA-N 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229910052744 lithium Inorganic materials 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910052987 metal hydride Inorganic materials 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- PXHVJJICTQNCMI-UHFFFAOYSA-N nickel Substances [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 1
- -1 nickel metal hydrides Chemical class 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0603—Catalogue ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/17—Image acquisition using hand-held instruments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
- G06V10/235—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/98—Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
- G06V10/993—Evaluation of the quality of the acquired pattern
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- 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
-
- 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/3247—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 involving digital signatures
-
- 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/3297—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 involving time stamps, e.g. generation of time stamps
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/21—Indexing scheme for image data processing or generation, in general involving computational photography
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Business, Economics & Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Bioethics (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
示出了用于在分布式应用架构中存储数据对象的技术。将数据对象中的关键数据存储在区块链上的对象数据区块中。将数据对象中的非关键数据元素存储在分布式文件***上地址处的数据块文件中,其中地址存储在数据区块中。从区块链中检索对象数据区块。使用数据区块中的地址从文件***中检索非关键元素。将关键元素和非关键元素组合为重组数据对象。可以在数据对象的数据定义中或通过算法分析数据对象中的数据来区分关键数据元素和非关键数据元素。可以将数据对象的元数据存储在对象数据区块中,并使用元数据来将关键元素和非关键元素组合为重组数据对象。
Description
背景技术
在应用架构的背景下,应用的终端用户(例如卖方、买方或服务供应商)通常会利用各种数据,例如应用执行代码、图像、文本、消息、财务和交易事件数据。通常,这些数据中的某些数据很重要,一般需要安全地存储和维护,而其他数据则相对不重要。
数据可以在诸如区块链的持久性存储***中长时间安全地存储和维护,但是存储成本可能变得沉重且昂贵。相比之下,将数据存储在诸如星际文件***(IPFS)之类的分布式文件***中的成本要低得多。
鉴于这些和其他考虑,提出了本文所作的公开。
发明内容
本文公开了用于在分布式应用架构中存储数据的技术,该分布式应用架构将数据分类为不同的类别,并且根据不同的类别利用多个存储***来存储数据。例如,可以将数据标识或分类为关键数据或持久性数据,或者非关键数据或一次性数据。可以将分类为非关键或一次性的数据存储在低成本的分布式文件***上,例如IPFS。可以将分类为关键的数据以及分布式文件***上的非关键或一次性数据的地址存储在区块链(例如ETHERIUM区块链)上的数据区块中。可以通过访问区块链上的数据区块以获得关键数据并使用到分布式文件***的地址检索非关键数据,来检索数据以供使用。
在所公开的技术的一个示例中,通过标识列表中的第一数据集和第二数据集并将第一数据集的每个元素存储在分布式文件***上的数据块文件中,存储列表的数据,数据块文件在分布式文件***上具有地址。在区块链上创建对象数据区块,其中对象数据区块包括第二数据集和分布式文件***上针对第一数据集的每个元素的地址。将对象数据区块提交到区块链。
在某些示例中,第一数据集可以是列表的图形元素、促销文本、图像数据或视频数据,第二数据集可以是列表的标识符、列表的所有者的标识符、商品或服务的价格、商品或服务的描述、销售条款、买卖双方、销售日期、销售平台标识符、付款状态、发货日期或交货确认。在特定示例中,通过针对列表的数据定义或通过列表的算法分析来区分第一数据集和第二数据集。在一些示例中,分布式文件***可以删除针对第一数据集的数据块文件。
其他示例涉及响应于来自请求者的对列表的请求,从区块链中检索针对列表的对象数据区块,并且对于第一数据集的每个元素,使用对象数据区块中的分布式文件***上的地址来获得该元素的数据块文件。从对象数据区块获得第二数据集,并根据第一数据集和第二数据集重组列表以创建重组列表,然后将重组列表返回给请求者。在一些示例中,第一数据集可以包括分布式文件***中的图形元素,处理重组列表以进行显示。在其他示例中,使用对象数据区块中的元数据处理元数据和重组列表以进行显示。
所公开的用于存储数据对象的技术的另一示例通过标识数据对象中的第一数据集和第二数据集来进行操作。第一数据集的每个元素存储在分布式文件***上针对该元素的数据块文件中,其中数据块文件在分布式文件***上具有地址。在区块链上创建对象数据区块,对象数据区块包括第二数据集和分布式文件***上针对第一数据集的每个元素的数据块文件的地址。将对象数据区块提交到区块链。
在特定示例中,第一数据集可以是关键数据的元素,第二数据集可以是非关键数据的元素。在某些示例中,可以通过针对数据对象的数据定义或数据对象的算法分析来区分第一数据集和第二数据集。在一些示例中,分布式文件***可以删除针对第一数据集的数据块文件。
在其他示例中,响应于来自请求者的对列表的请求,从区块链中检索针对数据对象的对象数据区块。对于第一数据集的每个元素,可以使用对象数据区块中的分布式文件***上的地址来获得该元素的数据块文件。可以从对象数据区块获得第二数据集。根据第一数据集和第二数据集重组数据对象以创建重组数据对象,然后将重组数据对象返回给请求者。
在特定示例中,第一数据集包括分布式文件***中的一个或多个图形元素,并且处理重组数据对象以进行显示。在某些其他示例中,将数据对象的XML元数据存储在对象数据区块中,并且使用对象数据区块中的XML元数据处理重组数据对象以显示列表。
应当理解,上述主题还可以被实现为计算机控制装置、计算机过程、计算***、或者被实现为诸如计算机可读介质之类的制品。通过阅读以下具体实施方式并查看相关附图,这些和各种其他特征将变得显而易见。提供本发明内容以简化形式介绍在下面的具体实施方式中进一步描述的一系列概念。
本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实施方式。
附图说明
参照附图描述详细说明。在附图中,附图标记的最左的数字标识首次出现该附图标记的附图。不同附图中的相同附图标记表示相似或相同的项目。
图1是示出针对使用对象数据区块链和分布式文件***的分布式应用架构的***的说明性示例的架构图;
图2A是示出根据所公开的技术的某些方面的图1的对象数据区块链中的对象数据区块的说明性示例的数据架构图;
图2B是示出使用对象数据区块链和分布式文件***的分布式应用架构的另一说明性示例的数据架构图,其中区块链上的每个对象数据区块存储持久性内容和数据文件在分布式文件***上的地址;
图3A是示出根据所公开的技术的方面的创建分布式应用架构对象数据区块和数据文件的对象发起者环境的说明性示例的数据架构图;
图3B是示出根据所公开的技术的方面的使用区块链和分布式文件***的分布式应用架构上的对象数据区块的说明性示例的数据架构图,对象数据区块包括用于存储和组装在使用区块链和分布式文件***的分布式应用架构上维护的对象的方法的代码;
图4A是示出根据所公开的技术的方面的对象发起者环境实体在分布式应用架构中存储数据对象的过程的说明性示例的控制流程图;
图4B是示出根据所公开的技术的方面的用于使用分布式应用架构上的分布式应用架构数据块将访问转移到用户实体的过程的说明性示例的控制流程图,该分布式应用架构使用区块链和分布式文件***;
图4C是示出根据所公开的技术的方面的用于组装从对象数据区块存储的数据对象的过程的示例的控制流程图;
图4D示出针对被添加到使用区块链和分布式文件***的分布式应用架构的区块的校验过程的示例的控制流程图,该分布式应用架构被分配给不可信节点;
图5是示出根据所公开的技术的方面的用户使用应用编程接口访问和组装来自使用区块链和分布式文件***的分布式应用架构的数据对象的说明性示例的数据架构图;
图6A是示出基于图1的使用对象数据区块链和分布式文件***的分布式应用架构的对象数据区块的区块链账本的简化示例的数据架构图;
图6B是示出智能合约代码、交易和消息的说明性示例的数据架构图,该智能合约代码、交易和消息被捆绑成块,使得它们的完整性在密码学上是安全的,并且使得它们可以被附加到区块链账本中;
图7是示出能够实现本文提出的技艺和技术的方面的计算***的说明性计算机硬件和软件架构的计算机架构图;
图8是示出能够实现本文呈现的技艺和技术的方面的分布式计算环境的图;以及
图9是示出用于能够实现本文呈现的技艺和技术的方面的计算设备的计算设备架构的计算机架构图。
具体实施方式
在数据存储的背景下,诸如电子商务、电子零售、数字媒体分发和广播平台之类的常规***通常以安全的方式存储数据,但是对于某些数据而言这种方式效率低下或不必要地昂贵。另一方面,将数据存储在低成本的分布式文件***中不适合重要数据。
在某些情况下,重要数据的示例可以包括有关操作、日程、交易、评级、保管或所有权转移的数据。在其他示例中,重要数据可以包括合同、市场价值分配、货币创造、激励管理和相关合同。相对不重要的数据的示例可以包括图像、视频和促销文本。应用执行代码、用户界面或资源也可能相对不重要,因为应用通常由诸如商务站点或应用商店之类的中央机构分发。
例如,在在线电子商务网站上的产品列表中,关于商品描述、销售条款、买卖双方、销售日期、运输和交货的数据可能非常重要。产品的图像或视频以及图形或促销文字可能不太重要。
在存储应用数据的背景下,将数据对象的数据存储在根据类别将不同类别的数据存储在不同的存储***中的分布式应用架构中是有利的。例如,分布式应用架构将对象中的数据分类为关键数据或非关键数据。可以将分类为非关键的数据存储在低成本的分布式文件***中,例如IPFS。可以将分类为关键或持久性的数据存储在区块链(例如ETHERIUM区块链)上的对象数据区块中,同时存储非关键数据元素在分布式文件***上的数据文件中的地址。可以通过访问对象在区块链上的对象数据区块以获得持久性数据并使用到分布式文件***的地址检索非关键数据,来检索对象的数据以供使用。
所公开的技术的技术优点在于,它为仍然安全且持久地存储重要数据的对象提供了更有效和更具成本效益的数据存储。所公开的技术利用固定在区块链上的不可变对象数据区块来保护需要持久化的重要数据,但是将不太重要的非关键数据存储在相对低成本的分布式文件***中。通过在不同的存储***中存储不同类别的数据,所公开的技术可以永久地存储重要的持久性数据,而不太重要的数据则以成本效益的方式存储在分布式文件***中。存储在根据所公开的技术的分布式应用架构中的数据对象的数据可以被希望访问和组装对象的实体广泛访问。
从本文公开的技术的实现还可以实现除本文提到的技术效果以外的其他技术效果。
以下详细说明描述了用于分布式应用架构的技术,该分布式应用架构对关键或持久性数据使用区块链且对非关键数据使用分布式文件***。数据对象发起者实体可以使用数据对象发起者环境建立使用区块链和分布式文件***的分布式应用架构,以将对象的关键或持久性数据以及存储在分布式文件***上的非关键数据元素的地址存储在区块链上的对象数据区块中。区块链可以是私有区块链或现有的区块链,例如ETHERIUM区块链。
如将在本文更详细地描述的,可以理解的是,本文描述的技艺和技术的实施方式可以包括使用在一个或多个输入设备上执行的固态电路、数字逻辑电路、计算机组件和/或软件。本文描述的信号可以包括用于传达数据文件的改变状态或与数据文件有关的其他信息的模拟和/或数字信号。
尽管本文描述的主题是在与计算机***上的操作***和应用程序的执行结合执行的程序模块的一般背景下呈现的,但是本领域技术人员将认识到,可以结合其他类型的程序模块执行其他实现。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将理解,本文描述的主题可以与其他计算机***配置一起实践,其他计算机***配置包括多处理器***、大型计算机、基于微处理器的或可编程的消费电子产品、小型计算机、手持式设备等。
在以下的详细描述中,参考形成其一部分的附图,在附图中通过说明性方式示出了特定配置或示例。现在参考附图,其中在全部附图中相同的数字代表相同的元素,将描述用于使用区块链和分布式文件***账本的分布式应用架构的计算***、计算机可读存储介质和计算机实现的方法的各方面。如将在下面参考附图更详细地描述的,存在可以体现本文描述的功能和技艺的许多应用和服务。
图1是示出分布式应用架构***100的说明性示例的架构图,该分布式应用架构***100利用由区块链平台130支持的对象数据区块链140和由分布式文件***平台154支持的分布式文件数据***150。使用对象数据区块链140的分布式应用架构可用于在对象数据区块142中安全地维护关键或持久性数据,而不太重要或非必要的数据则低成本地存储在分布式文件***150中的非关键数据文件中。对象数据区块链140和分布式文件数据***150均可以通过网络102提供对对象数据的广泛访问。
在图1的实施例中,对象数据区块链140可以是支持脚本的可公开获得的区块链,例如支持SOLIDIFY脚本语言的ETHEREUM区块链或支持称为SCRIPT的脚本语言的BITCOIN。
分布式文件***150可以是IPFS***,它证明了一种用于存储和共享数据的可寻址内容对等方法。IPFS是一个可用于存储大文件的分散式文件共享平台。
将IPFS中存储的大数据文件分解为数据块,其中每个数据块由根据数据块的内容计算出的加密散列来标识,并且将数据块存储在IPFS的对等节点中。IPFS移除整个网络中的重复项。每个网络节点存储它感兴趣的有限内容以及可用于确定哪个节点正在存储数据块的索引信息。加密散列本质上充当数据块在IPFS中的地址。
IPFS利用分布式散列表(DHT)获得文件位置,其中DHT本质上是使用节点标识符和具有距离度量的键来存储和检索信息的键-值。在搜索值时,节点联系距离键更近的另一节点,并从它请求值。另一节点通过返回值或通过引用更接近键的节点来进行回复。该过程一直持续到找到键为止。
当数据存储在IPFS中时,存储数据的节点标识最接近键的多个节点,并为它们提供值。键在有限的时间段内保持有效,并且必须进行更新以保留在DHT中。如果键没有被更新,则键可以随着时间的推移从DHT中掉出,并且数据集的值可以变得不可访问,并最终可能被从IPFS中删除。其他合适的分布式文件***可以包括Storj、FileCoin和Sia。
诸如客户端设备、一个或多个服务器或远程计算资源之类的数据对象发起者环境110由发起者实体控制,该发起者实体在所公开的技术的分布式应用架构中存储诸如应用、文档或列表之类的数据对象。在一个示例中,对象发起者环境110在对象数据区块链140上为对象创建对象数据区块142,以及在分布式文件***150上创建数据块152。对于使用区块链和分布式文件***的分布式应用架构,在该示例中,与对象数据区块142相对应的数据对象可以包括针对产品列表的内容,该内容包括诸如价格、交易方、条款和条件之类的关键数据以及诸如图像文件、图形文件和描述性文本之类的非关键数据。在该示例中,对象发起者环境110创建对象数据区块142,该对象数据区块142存储关键数据以及到存储数据对象中的非关键数据元素的数据块152的地址。
在一些实施例中,对象发起者环境110可以被另一计算节点代替,例如对等网络上的计算机,或其他计算设备。
在图1的示例中,数据对象内容由对象发起者环境110提供,并在使用区块链和分布式文件***140的分布式应用架构上得到保护。可以使区块链的数据区块142中的信息可被其他实体访问,例如客户端/服务器120A、120B或120C或区块链平台130。在该示例中,客户端/服务器120可以与对象发起者环境110以及针对区块链平台130的服务器和分布式文件***平台154的网络进行通信,区块链平台130支持和维护对象数据区块链140,且分布式文件***平台154支持分布式文件***150。例如,来自瑞士的ETHERIUM FOUNDATION的ETHERIUM区块链平台提供了在其区块链的区块中提供脚本功能的区块链计算平台和操作***。
在一个示例中,对象发起者环境110拥有并控制对象数据区块链140中的对象数据区块142。每个对象数据区块142包括存储在对象数据区块内的关键内容,以及分布式文件***150中针对数据对象的非关键数据元素的数据块152的地址。在一些示例中,对象数据区块142还可以维护元数据,例如针对数据对象的XML文件,该XML文件定义了包括关键数据和非关键数据元素的文档的元素和格式。
对象发起者环境110生成数据对象的对象数据区块142和数据块152,但是可以使使用区块链140和分布式文件***150的分布式应用架构被诸如客户端/服务器120的其他实体访问,因此这些实体可以根据存储在对象数据区块142和数据块152中的数据内容访问和组装数据对象。例如,通过使用可访问区块链信息的应用,使用区块链140和分布式文件***150的分布式应用架构可以对公众可见。通过提供对使用区块链140和分布式文件***150的分布式应用架构的访问,该方法允许用户轻松访问和重组使用区块链140和分布式文件***150的分布式应用架构上的数据对象。
在另一示例中,使用区块链140和分布式文件***的分布式应用架构的各方面可以被限制为仅对被授权访问对象数据区块链140的实体可见,例如由对象发起者环境110准予访问的实体。通过限制对对象数据区块链140的访问,发起者实体可以保留对数据对象内容的更大控制或安全性。
图2A是数据架构图,示出了由基于图1的对象数据区块链140的区块142A-142E的分布式应用架构使用的对象数据区块链账本的简化示例。图2A的对象数据区块链账本200的示例被简化以示出区块210A-210E的区块头、代表性内容和签名,以便演示使用区块链存储数据对象。概括而言,区块链账本可以是全球共享的交易数据库。在一些示例中,签名可以涉及存储在区块142A-142E中的全部数据或部分数据,并且还可以涉及与分发中涉及的实体(例如发起者实体)相对应的公钥地址。
区块链账本200可以被布置为Merkle树状数据结构、链表、或允许加密完整性的任何类似的数据结构。区块链账本200允许对数据对象和相关联的数据未被破坏或篡改进行验证,因为任何篡改企图都将改变(或具有)区块的消息认证码,并且指向该区块的其他区块将无法对应。在图2A的一个实施例中,每个区块可以指向另一区块。每个区块可以包括指向另一区块的指针和另一区块的散列(或消息认证码函数)。
区块链账本中的每个区块可以可选择地包含证明数据字段。证明数据字段可以指示应得的奖励。证明可以是工作量证明、权益证明、研究证明或任何其他指示应得的奖励的数据字段。例如,工作量证明可以指示已执行计算工作。作为另一示例,权益证明可以指示一定量的加密货币已经被持有一定时间。例如,如果10个单位的加密货币已被持有10天,则权益证明可以指示已累积10×10=100个时间单位。研究证明可以指示已经执行了研究。在一个示例中,研究证明可以指示已经执行了一定量的计算工作——例如,探索在计算搜索有效药物化合物的过程中分子是否以某种方式相互作用。
图2A的示例中的使用区块链和分布式文件***200的分布式应用架构的区块210示出了利用区块链200上的每个新对象数据区块210来保护数据对象。在一个示例中,图1的对象发起者环境110标识了数据对象中的关键数据元素和非关键数据元素。对象发起者环境在分布式文件***中存储数据对象的非关键数据元素,并在对象数据区块210中存储对象标识符、关键数据和分布式文件***中针对每个所存储的非关键数据元素的地址。对象发起者环境还可以将数据对象的元数据存储在对象数据区块210中。对象发起者环境110对对象数据区块210进行签名,并且在其中创建区块链200的区块链***基于证明函数来验证对象数据区块。
注意,可以利用与所公开的技术保持一致的多种方法。在一些示例中,对象发起者环境110的用户是唯一被允许验证或校验区块链上的对象数据区块142的实体。在其他示例中,诸如授权实体的其他实体可以验证或校验对象数据区块。
在图2A的示例中,诸如需要持久化的持久性数据之类的Critical_content被存储在对象数据区块142中。在图2A的示例中,每个对象数据区块210包括用于不同数据对象的内容。为了向对象数据区块添加新数据对象以进行分发,对象发起者环境创建对象数据区块210B,该对象数据区块210B标识对象,例如OBJECTID_2、关键内容Critical_content_2、非关键数据元素data_element[n]的存储地址、以及对象的元数据,并将区块210B链接到区块210A。对象发起者环境110对对象数据区块210B进行签名,并将区块210B提交到区块链200,以由区块链平台进行验证。
为了在分布式应用架构中存储另一数据对象,对象发起者环境110创建对象数据区块210C以保护数据对象OBJECTID_3和Critical_content_3、非关键数据元素的存储地址以及元数据。类似地,由对象发起者环境110创建对象数据区块242D以存储数据对象OBJECTID_4,并创建对象数据区块242E以存储数据对象OBJECTID_5。
图2B是示出使用对象数据区块链240和分布式文件***250的分布式应用架构的另一说明性示例的数据架构图。对象数据区块242存储对象的关键内容以及分布式文件***250中存储非关键数据元素的数据块文件252的地址。对象数据区块242还可以存储用于发起者实体的公钥和数据对象的元数据,例如XML文件。
使用区块链(例如图1中的对象数据区块链140或图2B中的区块链240)和分布式文件***的分布式应用架构,使得数据对象的关键数据安全地存储在对象数据区块链上,而数据对象的非关键数据元素存储在分布式文件***250中。因此,可以将区块链的安全性和脚本能力与分布式文件***的成本效益和可广泛访问的存储结合使用。
图3A是示出根据所公开的技术的用于在分布式应用架构中存储数据对象的简化说明性示例的数据架构图。在基于图2B的对象数据区块242C的该示例中,对象发起者环境110将数据对象分解为关键内容数据和非关键数据元素。对象发起者环境110创建对象数据区块242C,其包括针对数据对象OBJECTID_3的标识符和关键数据内容Critical_content_3。
对象数据区块242C还可以包括数据对象的元数据,例如时间戳或格式信息。例如,元数据可以包括描述如何对关键数据内容和非关键数据元素进行格式化和呈现以显示给用户的XML文件。
对象发起者环境110将非关键数据元素中的每个存储在分布式文件***250中的数据块文件252中,其中每个非关键数据元素的内容的散列值用作相应数据块文件在文件***250中的地址。对象发起者环境110对data_element1的内容进行散列处理以获得地址值addr_3-1,并且在304A,创建具有data_element1的内容Content1的数据块文件252F,并与地址值addr_3-1相关联地将该块存储在分布式文件***250中。针对数据块文件252F的地址addr_3-1与data_element1相关联地存储在对象数据区块中,例如data_element1(addr_3-1)。
类似地,对象发起者环境110对data_element2的内容进行散列处理以获得地址值addr_3-2,并且在304B,创建具有data_element2的内容Content2的数据块文件252G,并将该块与地址值addr_3-2相关联地存储在分布式文件***250中。针对数据块文件252G的地址addr_3-2与data_element2相关联地存储在对象数据区块中,例如data_element2(addr_3-2)。
同样,对象发起者环境110对data_element3的内容进行散列处理以获得地址值addr_3-3,并且在304C,创建具有data_element3的内容Content3的数据块文件252H,并将该块与地址值addr_3-3相关联地存储在分布式文件***250中。针对数据块文件252H的地址addr_3-3与data_element3相关联地存储在对象数据区块中,例如data_element3(addr_3-3)。
最后,对象发起者环境110对data_element4的内容进行散列处理以获得地址值addr_3-4,并且在304D,创建具有data_element4的内容Content4的数据块文件252I,并将该块与地址值addr_3-4相关联地存储在分布式文件***250中。针对数据块文件252I的地址addr_3-4与data_element4相关联地存储在对象数据区块中,例如data_element4(addr_3-4)。
作为根据所公开的技术将数据对象存储在分布式应用架构中的结果,与数据对象的原始大小相比,在对象数据区块链240上的对象数据区块242C中针对数据对象OBJECTID_3进行存储的数据量显著减少。通常可以表示数据对象的数据的显著部分的非关键数据元素被存储在分布式文件***250的相对便宜的存储中的数据块252中。
此外,在图3A的示例中,客户/服务器320使用对象数据区块242C重建数据对象OBJECTID_3。客户端/服务器320从对象数据区块链240中检索对象数据区块242C,其包括Critical_content_3和元数据。
使用针对每个非关键数据元素在对象数据区块242中存储的地址,客户端/服务器320从分布式文件***250中检索对应的数据块文件252。在310A,客户端/服务器320使用地址addr_3-1检索具有Content1的数据块文件252F。在310B,客户端/服务器320使用地址addr_3-2检索具有Content2的数据块文件252G。在310C,客户端/服务器320使用地址addr_3-3检索具有Content3的数据块文件252H。在310D,客户端/服务器320使用地址addr_3-4检索具有Content4的数据块文件252I。
使用来自对象数据区块242C的关键数据和来自数据块文件252F-252I的非关键数据元素,客户端/服务器320能够创建数据对象OBJECTID3的重建322。由于对象数据区块240和分布式文件***250都可以被广泛地访问,因此与互联网实际上进行通信的任何客户端/服务器设备都可以快速而有效地重建数据对象。
在图3A的示例中,可以由利用对象发起者环境110的发起者实体通过控制对数据对象的对象数据区块的访问来控制对数据对象的访问。例如,对象发起者环境可以使用密钥对的第一密钥且仅将密钥对的第二密钥提供给授权实体来解密内容,从而对对象数据区块的内容进行加密。所公开的技术使得能够使用区块链240安全地存储和分发数据对象的关键内容,区块链240可以经由互联网广泛地访问。支持所公开的分布式应用架构的对象数据区块链的区块链平台确保了数据对象的关键内容的完整性。所公开的技术使得非关键内容能够低成本且有效地存储在分布式文件***250中,该分布式文件***也可以经由互联网广泛地访问。
用于分发、访问和验证数据对象的脚本可以由使用区块链240的对象数据区块242保护,并由去中心化的分布式区块链平台的操作***执行。图3B是示出对象数据区块242的说明性示例的数据架构图,该对象数据区块242包括存储脚本以及访问和汇编脚本的示例。还示出了对象发起者环境中的过程320,其调用存储脚本以创建对象数据区块242并填充数据。还示出了针对分布式应用架构数据区块242定义的区块状态322的示例。
在该示例中,由使用对象发起者环境110的发起者实体调用存储脚本以创建对象的对象数据区块。在该示例中,存储脚本根据数据对象的元数据来填充对象数据区块的元数据,并将数据对象的关键内容存储在Critical_content中。然后,脚本为数据对象中的每个非关键数据元素创建数据块文件,并将数据块文件的地址存储在相应的data_element.addr字段中。
注意,可以以与所公开的技术一致的各种方式来执行对数据对象中的关键数据和非关键数据的解析。在一个示例中,关键元素和非关键元素由开发人员在创建数据对象时定义。在其他示例中,可以基于元素类型、用途等在算法上区分关键元素和非关键元素。应当理解,可以利用根据所公开的技术的方法的许多变型。
图3B的示例还示出了访问和汇编脚本,实体调用访问和汇编脚本以从数据对象的对象数据区块重建数据对象,并从分布式文件***重建数据块文件。在该示例中,来自对象数据区块的元数据和Critical_content被用于重建。对于每个非关键数据元素,使用对象数据区块中针对每个数据元素的地址来检索该元素的相对数据块。结果,根据所公开的技术,根据存储在对象数据区块和分布式文件***中的数据重建原始数据对象。
在一个示例中,元数据可以为诸如具有产品列表的网页之类的数据对象定义格式和结构。元数据可用于重建原始数据对象的格式以进行呈现。例如,元数据可以定义在网页的何处呈现关键数据以及在网页的何处***非关键数据元素。然后可以将所得的重建数据对象实质上以其原始形式呈现以显示给用户。
图4A是示出了用于在所公开的技术的分布式应用架构中存储数据对象的过程400的说明性示例的控制流程图,例如对象发起者环境110中的过程。在402,标识数据对象中的关键数据元素和非关键数据元素。如上所述,关键数据可以在针对数据对象的定义中被标识、由用户标记或通过算法确定。在404,在分布式文件***中针对一个或多个非关键数据元素创建数据块文件,例如图2B和图3A中所示的数据块文件252,其中每个数据块文件具有与之相关联的地址。
在406,创建对象数据区块,例如图2B和图3A中所示的对象数据区块242,对象数据区块包括数据对象的标识符、关键数据内容和针对非关键数据元素的数据文件的分布式文件***地址。对象数据区块还可以包括数据对象的元数据。对象数据区块的内容可以由对象发起者加密,以控制对对象数据区块的访问。
在410,对象数据区块链接到区块链,例如图2B和图3A中所示的对象数据区块链240。对象发起者对对象数据区块进行加密和签名,这将由区块链平台针对区块链进行校验。此时,根据所公开的技术,数据对象被存储在分布式应用架构中。
图4B是示出了根据所公开的技术的用于重建或重组存储在分布式应用架构中的数据对象的过程420的说明性示例的控制流程图,例如在客户端/服务器120之一中的过程。在422,接收访问数据对象的请求,该请求包括对象的对象标识符。在423,使用对象标识符从存储对象数据区块的对象数据区块链检索对象的对象数据区块。
使用对象数据区块重组数据对象。在424,获得来自对象数据区块的关键内容。在430,对于对象数据区块中的每个非关键数据元素,使用为数据对象存储的地址以从分布式文件***获得数据源数据的数据块文件。在432,该过程继续获得对象数据区块中针对每个数据元素定义的数据块文件。
在434,使用关键内容和针对非关键元素的数据块文件重组数据对象。在一些示例中,可以使用存储在对象数据区块中的元数据来重组数据对象。在436,将重组数据对象返回给请求实体。因此,根据所公开的技术的某些方面,可以检索并重组存储在分布式应用架构中的数据对象。
注意,可以将一些分布式文件***配置为不会永久存储的数据块文件。例如,如果数据块文件超过一定期限或已经一段时间未被访问,则可以从文件***移除该数据块文件。例如,IPFS不保证内容将被永久存储,但可以保证针对IPFS中存储的特定内容的地址将保持不变。当IPFS中的数据播种停止时,如果未提出访问数据的请求,则将随着时间的推移从IPFS节点清除数据。通过区分数据对象中的关键数据和非关键数据,并差异性地将关键数据存储在区块链中以及将非关键数据存储在分布式文件***中,所公开的技术的某些方面可以适应非永久性分布式文件***,因为数据对象中的关键数据永久且不可更改地保存在区块链上。
图4C是示出了移除数据块文件的修剪过程440的示例的控制流程图,例如分布式文件***平台154的一个或多个节点中的过程。在442,例如,基于期限、访问历史等对待修剪的数据块文件执行检查。如果找到数据块文件,则控制从446进行到分支450以删除该数据块文件。控制可以返回到442,以继续针对待修剪的数据块文件的检查。如果未发现待修剪的数据块文件,则控制可以返回到442以例如定期地或在针对节点的可用存储容量低于阈值水平时,重复进行检查。
因此,在某些示例中,根据本技术的存储在数据块文件中的针对数据对象的非关键数据可以随着时间的推移而受到侵蚀。尽管如此,关键数据仍安全地存储在针对数据对象的对象数据区块中。在一些实施方式中,可以通过设计选择非永久性分布式文件***,以允许非关键数据元素随着时间的推移而受到侵蚀。
应当理解,上述示出和讨论的过程为示例,并且在不脱离所公开的技术的情况下,可以利用多种其他方法。
根据区块链平台的脚本能力,使用区块链存储的分布式应用架构的对象数据区块可以包括更广泛的代码执行。例如,与将访问控制限于单个用户(例如对象发起者实体)的分布式应用架构***相比,提供多个用户对数据对象的共享访问控制的分布式应用架构***可能需要在区块链中具有更广泛的代码执行能力。类似地,对存储在对象数据区块中的数据进行加密和解密的分布式应用架构***可能需要在区块链中具有更广泛的代码执行能力。
应当理解,这一背景下的诸如智能合约内的脚本技术之类的区块链技术的使用在实施方式的配置方面提供了高度的灵活性和变化,而不背离本公开的教导。
注意,所公开的技术可以应用于存储各种类型的数据对象,例如应用、数据库、网页或产品列表中的数据对象。可应用该技术以有效地和具有成本效益地存储不同类别的数据。
图5是示出用于通过对象数据区块中的脚本访问使用区块链和分布式文件***的分布式应用架构的接口的说明性示例的数据架构图,对象数据区块例如图1中的对象数据区块链140中的对象数据区块142、图2A中的区块200中的对象数据区块210或者图2B、图3A和图3B中的区块链240中的对象数据区块242。在该示例中,评估应用程序接口(API)510提供到区块链平台520的接口,该接口支持根据所公开的技术的使用区块链和分布式文件***的分布式应用架构。区块链平台520支持智能合约522(例如图3B中的对象数据区块242),该智能合约522包括具有代码的脚本524,在代码由区块链平台520执行时,执行关于使用区块链和分布式文件***的分布式应用架构的操作。
在图5的示例中,在智能合约522中定义了两个脚本。存储脚本524A允许针对数据对象的对象发起者实体将数据对象存储在所公开的技术的分布式应用架构中的对象数据区块链和分布式文件***中。访问脚本524B为用户提供对存储在分布式应用架构中的数据对象的请求访问。
在图5的示例中,客户端/服务器502的用户通过对象数据区块链API510向智能合约522发送带有对象标识符的访问请求504,以在526调用访问脚本524B。访问脚本获得数据对象的对象数据区块,并使用对象数据区块中针对非关键数据元素的地址,从分布式文件***检索数据块文件。访问脚本将来自对象数据区块的关键数据和来自数据块文件的非关键数据进行组合,以创建重组数据对象,在506,将该重组数据对象返回给客户端/服务器502。
区块链账本数据结构
图6A是示出基于图1的使用区块链和分布式文件***140的分布式应用架构的区块142A-142E的区块链账本600的简化示例的数据架构图。图6A的区块链账本600的示例被简化以示出区块210A-210E的区块头、元数据和签名,以便演示使用区块链的安全的分布式应用架构。概括来说,区块链账本可以是全局共享的交易数据库。
图6A是具有数据树的区块链账本600的说明性示例,该数据树保持使用密码技艺验证的交易数据。在图6A中,每个区块610包括具有关于先前区块和后续区块的信息的区块头612,并且将交易根节点614存储到保持交易数据的数据树620。交易数据可以存储智能合约、与交易有关的数据、或任何其他数据。智能合约的元素还可以存储在区块的交易节点内。
在图6A的示例中,使用Merkle树620来加密地保护交易数据。例如,区块610A的数据树620A的交易Tx1节点634A可被散列处理到散列1节点632A,交易Tx2节点638A可被散列处理到散列2节点636A。散列1节点632A和散列2节点636A可被散列处理到散列12节点630A。可以形成类似的子树来生成散列34节点640A。散列12节点630A和散列34节点640A可被散列处理到在数据块610A中散列排序的交易根614A。通过使用Merkle树或任何类似的数据结构,可以通过验证散列是否正确来检查交易的完整性。
图6B是示出智能合约代码、交易和消息的说明性示例的数据架构图,该智能合约代码、交易、和消息被捆绑成块,使得它们的完整性在加密上是安全的,并且使得它们可以被附加到区块链账本中。在图6B中,智能合约642是在计算机上执行的代码。更具体地,智能合约的代码可被存储在区块链账本中,并在给定的时间由分布式区块链平台的节点执行。智能代码执行的结果可以存储在区块链账本中。可选地,在执行智能合约代码时可以消耗货币。在图6B的示例中,智能合约642在虚拟机环境中执行,不过这是可选的。
在图6B中,智能合约642的方面被存储在图6A的区块链账本的区块610中的数据树620中的交易数据节点中。在图6B的示例中,智能合约642A存储在区块610A中的数据树620A的数据块Tx1节点634A中,智能合约642B存储在Tx2节点638A中,与智能合约642B相关联的合约账户654存储在Tx3节点644A中,并且外部帐户存储在Tx4节点648A中。
在区块链账本中存储智能合约和交易数据
为了确保智能合约是安全的并生成安全数据,区块链账本必须保持最新。例如,如果创建了智能合约,则必须以安全的方式存储与智能合约相关联的代码。类似地,当智能合约代码执行并生成交易数据时,必须以安全的方式存储交易数据。
在图6B的示例中,示出用于维护区块链账本的两个可能的实施例。在一个实施例中,不可信的矿工节点(“矿工”)680可以因解决密码难题而得到奖励,由此被允许将区块附加到区块链。备选地,可以使用可信节点690集合将下一区块附加到区块链账本。节点可以执行智能合约代码,然后一个获胜节点可以将下一区块附加到区块链账本。
尽管本文公开的技术的方面类似于智能合约,但在本技艺中,合约的策略可确定维护区块链账本的方式。例如,策略可以要求由可信节点集群的中心化控制来确定对账本上的区块的校验或授权过程。在这种情况下,中心化控制可以是可信节点,例如对象发起者环境110,其被授权对交易区块进行证明和签名以校验这些交易区块,并且可能不需要矿工的校验。
备选地,策略可提供由不可信节点的去中心化的集群决定的校验过程。在区块链账本被分配到不可信节点集群的情况下,可以采用对链中的区块的挖掘来校验区块链账本。
区块链可以使用诸如工作量证明之类的各种时间戳方案来序列化改变。替代的共识方法包括权益证明、燃烧证明、研究证明,也可用于序列化改变。
如上所述,在一些示例中,区块链账本可以由矿工校验以保护区块链。在这种情况下,矿工可以共同同意要使用的校验解决方案。然而,如果使用诸如专用网络的小型网络,则解决方案可以是Merkle树,并且可能不需要针对校验解决方案进行挖掘。在创建交易区块时,例如,针对使用区块链140的分布式应用架构的对象数据区块142,该区块是未确认和未识别的实体。作为公认的“货币”的部分,它可以被添加到区块链,并且因此涉及可信集群的概念。
在可信集群中,在添加对象数据区块142时,每个节点竞争以确认下一“交易”(例如,新的分布式应用架构数据块)。在一个示例中,节点竞争以挖掘并获得最小散列值:min{previous_hash,contents_hash,random_nonce_to_be_guessed}->result。交易顺序由计算竞争(相信没有一个实体能够击败区块链网络的集合资源)保护。广播和确认相互认证参数以防止区块链中的双重记账。
备选地,通过在受限网络上广播用于认证安全的账本的元数据,例如,仅广播签名后的散列,区块链可以降低伴随数据被中心化保持而带来的风险。去中心化的共识使得区块链适于记录安全交易或事件。还可以对元数据(其可以包含与数据文件有关的信息)进行加密以用于受限访问,使得元数据不公开与数据文件有关的信息。
例如可以与图4D的校验过程480一起使用的挖掘过程可以被用来阻止复式记账、覆写或重放攻击,通过基于“诚信”的协议的社区安排,没有单个节点可以控制整个集群。针对挖掘的工作假设为存在对诚实方的同等权利分配,这些诚实方凌驾于不诚实方或失陷方之上。去中心化的***中的每个节点或矿工都有区块链的副本。不存在中心化的“官方”副本,并且没有哪个用户比任何其他用户更“可信”。使用软件在482向网络广播交易。挖掘节点在484竞争以计算校验解决方案从而校验交易,然后在486向其他节点广播已完成的区块校验。每个节点都会根据获胜节点建立的交易顺序在488将区块添加到其区块链的副本中。
注意,在受限网络中,被授权检查或挖掘数据文件的权益持有者可以或可以不自行访问交易区块,但是将需要具有元数据的密钥(因为它们是受限网络的成员,并且是可信的)以获得细节。由于密钥被应用于具有不同数据分类的数据,因此可以分割权益持有者。
去中心化的区块链还可以使用临时安全消息传递和分布式联网。在该示例中,对象数据区块链账本与传统区块链的不同之处在于存在中心化的清算所,例如,用于校验的授权的中央控制。在没有挖掘过程的情况下,可信群集可被包括在中心化的区块链中而不是公共或民主的区块链中。看待这一点的一种方式是去中心化的部分相当于“民主的N个诚实方”(多方诚实方是密码学概念),而中心化的部分相当于“用于区块链信息校正的可信君主方”。例如,将数据文件维护为集中授权的并且保持离线可能是有利的。
在一些示例中,可以通过加密手段限制对分布式应用架构的对象数据区块的访问,使其仅对授权的服务器开放。由于对象数据区块链账本是分布式的,所以授权服务器可以对其进行校验。公钥可用作公共区块链账本上的地址。
注意,去中心化的区块链的增长可以伴随有节点中心化的风险,因为对较大数据进行操作所需的计算机资源变得越来越昂贵。
本技艺可以涉及在一个或多个机器中发生的操作。如本文所使用的,“机器”意味着使用指令编程以执行专门的计算操作的物理数据存储和处理硬件。应当理解,两个或多个不同的机器可以共享硬件组件。例如,同一集成电路可以是两个或更多个不同的机器的部分。
本领域的普通技术人员将认识到,可以使用各种方法,并且将其与涉及使用区块链账本和分布式文件***的分布式应用架构的本方法相结合。本文所述的使用区块链和分布式文件***的分布式应用架构的不同方面的具体示例是说明性的,并且不旨在限制所示技艺的范围。
智能合约
智能合约由代码定义。如前所述,可以将智能合约的条款和条件(例如,通过散列)编码到区块链账本中。具体地,智能合约(如果在虚拟机中执行)可以被编译为字节码,然后可以将字节码存储在如前所述的区块链账本中。类似地,由智能合约执行和生成的交易数据可以以如前所述的方式存储在区块链账本中。
使用智能合约和区块链账本的计算机架构
注意,图4A-4D的过程400、420、440和480、图2B、图3A和图3B的对象数据区块242的脚本、图5的智能合约522、图6B的智能合约642、以及与本文所述的使用区块链和分布式文件***的分布式应用架构有关的其他过程和操作的至少一些部分可以在诸如图8中的计算机环境800或云之类的一个或多个服务器中实现,并且定义如本文所讨论的转换或解释的用户控制输入信号的结果的数据可以被传送给用户设备以供显示。备选地,使用区块链和分布式文件***账本过程的分布式应用架构可以在客户端设备中实现。在其他示例中,一些操作可以在诸如服务器之类的一个计算资源集合中实现,并且其他步骤可以在诸如客户端设备之类的其他计算资源中实现。
应当理解的是,本文所述的方法可以在任何时间结束,并且不需要以其整体来执行。本文所述的方法的一些或所有操作和/或基本上等同的操作可通过如下限定的执行包括在计算机存储介质上的计算机可读指令来执行。如在说明书和权利要求书中使用的术语“计算机可读指令”及其变体在本文中被广泛地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种***配置上实现,包括单处理器或多处理器***、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费电子产品、及其组合等。
因此,应当理解的是,本文所述的逻辑操作被实现为(1)在计算***上运行的计算机实现的动作或程序模块的序列和/或(2)计算***内互连的机器逻辑电路或电路模块。实施方式是取决于计算***的性能和其它要求的选择问题。因此,本文描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以以软件、固件、专用数字逻辑及其任何组合来实现。
如本文所述,结合本文所描述的附图,本文将例程(例如,图4A-4D的过程400、420、440和480、图2B、图3A和图3B的对象数据区块242的脚本、图5的智能合约522、图6B的智能合约642)的操作描述为至少部分地由应用、组件和/或电路实现。尽管以下说明参考图1、图3B、图4D、图5和图6B的组件,但是可以理解,例程的操作也可以用许多其它方式来实现。例如,例程可以至少部分地由计算机处理器或另一计算机的一个或多个处理器来实现。此外,例程的操作中的一个或多个可以备选地或附加地至少部分地由单独工作或与其他软件模块结合工作的计算机来实现。
例如,例程的操作在本文被描述为至少部分地由应用、组件和/或电路来实现,这些应用、组件和/或电路在本文被统称为模块。在一些配置中,模块可以是动态链接库(DLL)、静态链接库、由应用编程接口(API)产生的功能、编译程序、解释程序、脚本、或任何其他可执行指令集。数据和/或模块,例如本文所公开的数据和模块,可以以数据结构存储在一个或多个存储器组件中。通过对数据结构的链接或引用进行寻址,可以从数据结构中检索数据。
尽管以下图示参考了上述附图的组件,但是可以理解的是,例程(例如,图4A-4D的过程400、420、440和480、图2B、图3A和图3B的对象数据区块242的脚本、图5的智能合约522、图6B的智能合约642)的操作也可以以许多其他方式来实现。例如,例程可以至少部分地由另一远程计算机或本地计算机或电路的处理器来实现。此外,例程的操作中的一个或多个可以备选地或附加地至少部分地由单独工作或与其他软件模块结合工作的芯片组来实现。任何适于提供本文所公开的技艺的服务、电路或应用可以用于本文所描述的操作中。
图7示出用于能够执行本文所描述的程序组件的计算机(例如设备110、120、130和154(图1))的示例计算机架构700的附加细节。因此,图7中所示的计算机架构700示出用于服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机、机载计算机、游戏控制台和/或膝上型计算机的架构。计算机架构700可被用于执行本文所呈现的软件组件的任何方面。
图7中所示的计算机架构700包括中央处理单元702(“CPU”)、包括随机存取存储器706(“RAM”)和只读存储器(“ROM”)708的***存储器704、以及将存储器704耦接到CPU 702的***总线710。将基本输入/输出***存储在ROM 708中,基本输入/输出***包含帮助在计算机架构700内的子元件之间传送信息的基本例程。计算机架构700还包括大容量存储设备712,用于存储操作***707、数据(例如分布式应用架构的对象数据区块链720以及分布式文件***722的一部分的副本)、以及一个或多个应用程序。
大容量存储设备712通过连接到总线710的大容量存储控制器(未示出)连接到CPU702。大容量存储设备712及其相关联的计算机可读介质为计算机架构700提供非易失性存储。尽管本文包含的计算机可读介质的描述是指诸如固态驱动器、硬盘或CD-ROM驱动器之类的大容量存储设备,但本领域的技术人员应当理解的是,计算机可读介质可以是可由计算机架构700访问的任何可用的计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块、或诸如载波或其他传输机制之类的经调制的数据信号中的其他数据,并且包括任意传递介质。术语“经调制的数据信号”是指以在信号中编码信息的方式改变或设置其一个或多个特性的信号。作为示例而非限制性地,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外、和其他无线介质之类的无线介质。上述任何的组合也应包括在计算机可读介质的范围内。
作为示例而非限制性地,计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于:RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术;CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光或其他光存储装置;磁带盒、磁带、磁盘存储设备或其他磁存储设备;或可以用来存储所需信息并且可以由计算机架构700访问的任何其他介质。出于权利要求书的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变型本身不包括波、信号和/或其他瞬时和/或无形通信介质。
根据各种配置,计算机架构700可以使用通过网络756和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机架构700可以通过连接到总线710的网络接口单元714连接到网络756。应当理解的是,网络接口单元714还可用于连接到其他类型的网络和远程计算机***。计算机架构700还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器716,该多个其他设备包括键盘、鼠标、游戏控制器、电视遥控器或电子手写笔(图7中未示出)。类似地,输入/输出控制器716可以向显示屏、打印机或其他类型的输出设备(也未在图7中示出)提供输出。
应当理解的是,本文描述的软件组件在被加载到CPU 702中并且被执行时,可以将CPU 702和总体计算机架构700从通用计算***变换为被定制为促进本文所介绍的功能的专用计算***。CPU 702可以由任意数量的晶体管或其他离散电路元件构成,它们可以单独地或共同地呈现任意数量的状态。更具体地,CPU 702可以响应于包含在本文公开的软件模块内的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU702如何在状态之间转换来变换CPU 702,由此变换构成CPU 702的晶体管或其他离散硬件元件。
对本文呈现的软件模块进行编码还可以变换本文呈现的计算机可读介质的物理结构。在本描述的不同实施方式中,物理结构的具体变换可以取决于各种因素。这些因素的示例可包括但不限于用于实现计算机可读介质的技术、计算机可读介质被表征为主存储装置还是辅存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态来将本文公开的软件编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其他离散电路元件的状态。软件还可以变换这些组件的物理状态以便在其上存储数据。
作为另一示例,本文公开的计算机可读介质可以使用磁或光学技术来实现。在这样的实施方式中,当软件被编码在磁或光学介质中时,本文呈现的软件可以变换磁或光学介质的物理状态。这些变换可以包括改变给定磁介质内的特定位置的磁特性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,其中提供前述示例仅为了便于本讨论。
鉴于以上内容,应当理解的是,在计算机架构700中发生许多类型的物理变换以存储和执行本文所呈现的软件组件。还应当理解的是,计算机架构700可以包括其他类型的计算设备,包括手持式计算机、嵌入式计算机***、个人数字助理、以及本领域技术人员已知的其他类型的计算设备。还可以预期计算机架构700可以不包括图7所示的所有组件,可以包括图7中未明确示出的其他组件,或者可以使用与图7所示的架构完全不同的架构。
图8描绘了能够执行本文所述的用于使用区块链和分布式文件***账本的分布式应用架构的软件组件的说明性分布式计算环境800。因此,图8中所示出的分布式计算环境800可被用于执行本文介绍的软件组件的许多方面。例如,分布式计算环境800可用于执行本文所述的软件组件的一个或多个方面。此外,分布式计算环境800可以表示上述分布式区块链平台的组件。
根据各种实施方式,分布式计算环境800包括在网络804上操作、与网络804通信或作为网络804的部分的计算环境802。网络804可以是或者可以包括上述网络556。网络804还可以包括各种接入网络。一个或多个客户端设备806A-806N(以下统称为和/或一般地称为“客户端806”)可以经由网络804和/或其他连接(图8中未示出)与计算环境802通信。在一个示出的配置中,客户端806包括:计算设备806A,诸如膝上型计算机、台式计算机、或其它计算设备;板岩或平板计算设备(“平板计算设备”)806B;移动计算设备806C,例如移动电话、智能电话、机载计算机、或其他移动计算设备;服务器计算机806D;和/或其他设备806N,其可以包括硬件安全模块。应当理解的是,任何数量的设备806都可以与计算环境802通信。本文参考图7和图8示出和描述了针对设备806的两个示例计算架构。应当理解的是,本文示出和描述的所示设备806和计算架构仅是说明性的,而不应被解释为以任何方式受限。
在所示配置中,计算环境802包括应用服务器808、数据存储装置810、以及一个或多个网络接口812。根据各种实施方式,应用服务器808的功能可以由作为网络804的部分或与网络804通信而执行的一个或多个服务器计算机提供。应用服务器808可以托管各种服务、虚拟机、门户网站和/或其他资源。在所示配置中,应用服务器808托管用于托管应用或其他功能的一个或多个虚拟机814。根据各种实施方式,虚拟机814托管用于数据管理区块链账本的一个或多个应用和/或软件模块。应当理解的是,这种配置仅是说明性的,并且不应当被解释为以任何方式进行限制。
根据各种实施方式,应用服务器808还包括一个或多个数据文件管理服务818和一个或多个区块链服务822。数据文件数据管理服务818可以包括用于管理使用区块链和分布式文件***的分布式应用架构上的数据文件的服务,例如图1中的使用区块链和分布式文件***140的分布式应用架构。区块链服务822可以包括例如通过创建成因区块、分布式应用架构数据区块和执行验证,用于参与一个或多个区块链的管理的服务。
如图8所示,应用服务器808还可以托管其他服务、应用、门户网站和/或其他资源(“其他资源”)824。其他资源824可以包括但不限于数据加密、数据共享、或任何其他功能。
如上所述,计算环境802可以包括数据存储装置810。根据各种实施方式,数据存储装置810的功能由在网络804上操作或与网络804通信的一个或多个数据库或数据存储提供。数据存储装置810的功能还可以由被配置为托管用于计算环境802的数据的一个或多个服务器计算机来提供。数据存储装置810可以包括托管或提供一个或多个真实或虚拟数据存储826A-826N(以下被统称和/或一般地称为“数据存储826”)。数据存储826被配置为托管由应用服务器808使用或创建的数据和/或其他数据。数据存储826的方面可以与针对使用区块链和分布式文件***的分布式应用架构的服务相关联。尽管在图8中未示出,但是数据存储826还可以托管或存储网页文档、Word文档、演示文档、数据结构、由推荐引擎执行的算法、和/或由任何应用程序或另一模块使用的其他数据。
计算环境802可以与网络接口812通信或由网络接口812访问。网络接口812可以包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,该计算设备包括但不限于客户端806和应用服务器808。应当理解的是,网络接口812也可以用于连接到其他类型的网络和/或计算机***。
应当理解的是,本文所述的分布式计算环境800可以向本文所述的软件元件的任何方面提供任何数量的虚拟计算资源和/或其他分布式计算功能,其可以被配置为执行本文公开的软件组件的任何方面。根据本文公开的概念和技术的各种实施方式,分布式计算环境800可以将本文描述的软件功能提供为对使用设备806的客户端的服务。应当理解的是,设备806可以包括真实或虚拟机器,包括但不限于服务器计算机、网页服务器、个人计算机、移动计算设备、智能电话、和/或可以包括用户输入设备的其他设备。因此,除了其他方面,本文公开的概念和技术的各种配置使得被配置为访问分布式计算环境800的任何设备能够使用本文所述的功能来创建和支持使用区块链和分布式文件***账本的分布式应用架构。
现在转向图9,本文针对使用区块链和分布式文件***账本的分布式应用架构描述了能够执行各种软件组件的计算设备的说明性计算设备架构900。计算设备架构900适用于可以管理使用区块链和分布式文件***账本的分布式应用架构的计算设备。在一些配置中,计算设备包括但不限于移动电话、机载计算机、平板设备、板岩设备、便携式视频游戏设备、传统台式计算机、便携式计算机(例如,膝上型计算机、笔记本计算机、超便携式计算机、和上网本)、服务器计算机、游戏控制台、和其他计算机***。计算设备架构900适用于图1所示的对象发起者环境110和客户端/服务器120A-120C以及图8所示的计算设备806A-806N。
图9中示出的计算设备架构900包括处理器902、存储器组件904、网络连接组件906、传感器组件908、输入/输出组件910、和电源组件912。在所示配置中,处理器902与存储器组件904、网络连接组件906、传感器组件908、输入/输出(“I/O”)组件910、和电源组件912通信。尽管在图9中所图示的各个组件之间没有示出连接,但是组件可以交互以执行设备功能。在一些配置中,组件被布置为经由一个或多个总线(未示出)进行通信。
处理器902包括中央处理单元(“CPU”),其被配置为处理数据、执行一个或多个应用程序的计算机可执行指令、以及与计算设备架构900的其他组件通信以便执行本文所述的各种功能。处理器902可以用于执行本文呈现的软件组件的方面,并且尤其是至少部分地使用安全数据的那些软件组件的方面。
在一些配置中,处理器902包括图形处理单元(“GPU”),其被配置为对CPU执行的操作进行加速,操作包括但不限于:通过执行安全计算应用而执行的操作、通用科学和/或工程计算应用、以及诸如高分辨率视频(例如,620P、1080P和更高分辨率)、视频游戏、三维(“3D”)建模应用等图形密集型计算应用。在一些配置中,处理器902被配置为与离散GPU(未示出)通信。在任何情况下,CPU和GPU可以根据协同处理CPU/GPU计算模型来配置,其中应用的顺序部分在CPU上执行,并且计算密集部分由GPU加速。
在一些配置中,处理器902连同下文描述的其他组件中的一个或多个是片上***(“SoC”)或包括在SoC中。例如,SoC可以包括处理器902、GPU、一个或多个网络连接组件906、以及一个或多个传感器组件908。在一些配置中,部分地使用层叠封装(“PoP”)集成电路封装技术来制造处理器902。处理器902可以是单核或多核处理器。
处理器902可以根据ARM架构来创建,该ARM架构可使用来自英国剑桥的安谋国际科技股份有限公司的许可证。备选地,处理器902可根据x86架构来创建,例如可从加利福尼亚州山景城的英特尔公司获得。在一些配置中,处理器902是可从加利福尼亚州圣地亚哥的高通公司获得的SNAPDRAGON SoC、可从加利福尼亚州圣克拉拉的英伟达公司获得的TEGRASoC、可从韩国首尔的三星公司获得的HUMMINGBIRD SoC、可从德克萨斯州达拉斯的德州仪器公司获得的开放多媒体应用平台(“OMAP”)SoC、任何上述SoC的定制版本、或者专有SoC。
存储器组件904包括随机存取存储器(“RAM”)914、只读存储器(“ROM”)916、集成存储存储器(“集成存储装置”)918、和可移动存储存储器(“可移动存储装置”)920。在一些配置中,RAM 914或其一部分、ROM 916或其一部分、和/或RAM 914和ROM 916的一些组合被集成在处理器902中。在一些配置中,ROM 916被配置为存储固件、操作***或其一部分(例如,操作***内核)、和/或引导装载程序,以从集成存储装置918和/或可移动存储装置920加载操作***内核。
集成存储装置918可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。集成存储装置918可以焊接或以其他方式连接到逻辑板,处理器902和本文所述的其他组件也可以连接到该逻辑板上。这样,集成存储装置918被集成在计算设备中。集成存储装置918被配置为存储操作***或其部分、应用程序、数据和本文所述的其他软件组件。
可移动存储装置920可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。在一些配置中,提供可移动存储装置920以代替集成存储装置918。在其他配置中,提供可移动存储装置920作为另外可选的存储装置。在一些配置中,可移动存储装置920与集成存储装置918逻辑地组合,使得总的可用存储装置可用作总的组合存储容量。在一些配置中,向用户示出集成存储装置918和可移动存储装置920的总的组合容量,而不是针对集成存储装置918和可移动存储装置920的分离的存储容量。
可移动存储装置920被配置为***可移动存储内存插槽(未示出)或其他机制中,通过该机制可移动存储装置920被***并且被保护以便于连接,通过该连接可移动存储装置920可以与计算设备的诸如处理器902之类的其他组件通信。可移动存储装置920可以以各种存储卡格式来体现,包括但不限于PC卡、CompactFlash卡、记忆棒、安全数字(“SD”)、miniSD卡、microSD卡、通用集成电路卡(“UICC”)(例如,用户识别模块(“SIM”)或通用SIM(“USIM”)卡)、专用格式等。
可以理解的是,存储器组件904中的一个或多个可以存储操作***。根据各种配置,操作***可以包括但不限于服务器操作***,例如由Open Group认证的各种形式的UNIX和由自由软件基金会(Free Software Foundation)认证的LINUX,或软件即服务(SaaS)架构的方面,例如来自华盛顿州雷蒙德市的微软公司的MICROSOFT AZURE或来自华盛顿州西雅图的亚马逊公司的AWS。操作***还可以包括来自华盛顿州雷蒙德市的微软公司的WINDOWS MOBILE OS、来自微软公司的WINDOWS PHONE OS、来自微软公司的WINDOWS、来自加利福尼亚州库比蒂诺的苹果公司的MAC OS或IOS、以及来自加利福尼亚州山景城的谷歌公司的ANDROID OS。可以预期其他操作***。
网络连接组件906包括无线广域网组件(“WWAN组件”)922、无线局域网组件(“WLAN组件”)924、和无线个域网组件(“WPAN组件”)926。网络连接组件906促进去往和来自网络956或另一网络的通信,另一网络可以是WWAN、WLAN或WPAN。虽然仅示出了网络956,但是网络连接组件906可以促进与包括图9的网络956的多个网络的同时通信,例如,网络连接组件906可以促进经由WWAN、WLAN或WPAN中的一个或多个与多个网络的同时通信。
网络956可以是或可以包括WWAN,例如使用一种或多种移动电信技术经由WWAN组件922向使用计算设备架构900的计算设备提供语音和/或数据服务的移动电信网络。移动电信技术可以包括但不限于全球移动通信***(“GSM”)、码分多址(“CDMA”)ONE、CDMA7000、通用移动电信***(“UMTS”)、长期演进(“LTE”)、和全球微波接入互操作性(“WiMAX”)。另外,网络956可使用(可由或可不由前述标准使用的)各种信道接入方法,包括但不限于时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。可以使用通用分组无线业务(“GPRS”)、增强型数据速率全球演进(“EDGE”)、包括高速下行链路分组接入(“HSDPA”的高速分组接入(“HSPA”)协议族、增强型上行链路(“EUL”)或又称为高速上行链路分组接入(“HSUPA”)、演进HSPA(“HSPA+”)、LTE以及各种其他当前和未来的无线数据接入标准来提供数据通信。网络956可以被配置为使用上述技术的任意组合来提供语音和/或数据通信。网络956可以被配置为或适于根据下一代的技术提供语音和/或数据通信。
在一些配置中,WWAN组件922被配置为提供到网络956的双多模连接。例如,WWAN组件922可以被配置为提供到网络956的连接,其中网络956经由GSM和UMTS技术或者经由一些其他技术组合来提供服务。备选地,可以使用多个WWAN组件922来执行这种功能,和/或提供附加的功能以支持其他不兼容的技术(即,不能由单个WWAN组件支持)。WWAN组件922可以促进与多个网络(例如,UMTS网络和LTE网络)的类似连接。
网络956可以是根据一个或多个电气和电子工程师协会(“IEEE”)802.11标准(例如IEEE 802.11a、802.11b、802.11g、802.11n和/或后续802.11标准(本文统称为WI-FI))操作的WLAN。还可以考虑802.11标准草案。在一些配置中,使用一个或多个无线WI-FI接入点来实现WLAN。在一些配置中,无线WI-FI接入点中的一个或多个是与WWAN连接的另一计算设备,WWAN用作WI-FI热点。WLAN组件924被配置为经由WI-FI接入点连接到网络956。这样的连接可以通过各种加密技术来保护,包括但不限于WI-FI保护访问(“WPA”)、WPA2、有线等效保密(“WEP”)等。
网络956可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或一些其他短距离无线技术操作的WPAN。在一些配置中,WPAN组件926被配置为促进经由WPAN与诸如***设备、计算机或其他计算设备之类的其他设备的通信。
传感器组件908包括磁力计928、环境光传感器930、接近传感器932、加速计934、陀螺仪936、和全球定位***传感器(“GPS传感器”)938。可以设想,诸如但不限于温度传感器或震动检测传感器之类的其他传感器也可被结合在计算设备架构900中。
I/O组件910包括显示器940、触摸屏942、数据I/O接口组件(“数据I/O”)944、音频I/O接口组件(“音频I/O”)946、视频I/O接口组件(“视频I/O”)948、和相机950。在一些配置中,显示器940和触摸屏942被组合。在一些配置中,数据I/O组件944、音频I/O组件946、和视频I/O组件948中的两个或更多个被组合。I/O组件910可以包括被配置为支持下面描述的各种接口的离散处理器,或者可以包括内置到处理器902中的处理功能。
所示的电源组件912包括一个或多个电池952,该一个或多个电池952可以连接到电池电量表954。电池952可以是可再充电的或一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉、和镍金属氢化物。电池952中的每个可由一个或多个电芯制成。
电源组件912还可以包括电源连接器,该电源连接器可以与上述I/O组件910中的一个或多个组合。电源组件912可以经由I/O组件与外部电源***或充电设备接口。
各种实施方式的示例
最后,尽管已经以特定于结构特征和/或方法动作的语言描述了各种配置,但是应当理解的是,在所附表示中限定的客体不必限于所描述的特定特征或动作。相反,这些特定特征和动作是作为实现所要求保护的客体的示例形式来公开的。
根据以下条款做出本公开:
条款1、一种用于存储列表的数据的计算机实现的方法,该方法包括:标识列表中的第一数据集和第二数据集;
将第一数据集的每个元素存储在分布式文件***上的数据块文件中,数据块文件在分布式文件***上具有地址;在区块链上创建对象数据区块,对象数据区块包括第二数据集和分布式文件***上针对第一数据集的每个元素的地址;以及将对象数据区块提交到区块链。
条款2、根据条款1的计算机实现的方法,其中:第一数据集包括列表的图形元素、促销文本、图像数据或视频数据中的一个或多个;以及第二数据集包括列表的标识符、列表的所有者的标识符、商品或服务的价格、商品或服务的描述、销售条款、买卖双方、销售日期、销售平台标识符、付款状态、发货日期和交货确认中的一个或多个。
条款3、根据条款1的计算机实现的方法,其中,通过针对列表的数据定义和列表的算法分析中的一个或多个来区分第一数据集和第二数据集。
条款4、根据条款1的计算机实现的方法,其中,分布式文件***可以删除针对第一数据集的数据块文件。
条款5、根据条款1的计算机实现的方法,其中,该方法包括:响应于来自请求者的对列表的请求,从区块链中检索针对列表的对象数据区块;对于第一数据集的每个元素,使用对象数据区块中的分布式文件***上的地址来获得该元素的数据块文件;从对象数据区块获得第二数据集;根据第一数据集和第二数据集重组列表以创建重组列表;以及将重组列表返回给请求者。
条款6、根据条款5的计算机实现的方法,其中:第一数据集包括分布式文件***中的一个或多个图形元素;以及该方法包括处理重组列表以显示列表。
条款7、根据条款6的计算机实现的方法,其中:该方法包括在对象数据区块中存储列表的元数据;以及处理重组列表以显示列表的步骤包括使用对象数据区块中的元数据处理重组列表以显示列表。
条款8、一种用于存储数据对象的分布式应用架构***,该***包括:一个或多个处理器;一个或多个存储设备,与一个或多个处理器通信,存储设备具有存储在其上的计算机可读指令,计算机可读指令在由处理器执行时使处理器执行方法,该方法包括:标识数据对象中的第一数据集和第二数据集;将第一数据集的每个元素存储在分布式文件***上针对该元素的数据块文件中,数据块文件在分布式文件***上具有地址;在区块链上创建对象数据区块,对象数据区块包括第二数据集和分布式文件***上针对第一数据集的每个元素的数据块文件的地址;以及将对象数据区块提交到区块链。
条款9、根据条款8的分布式应用架构***,其中:第一数据集包括图形元素、促销文本、图像数据或视频数据中的一个或多个;以及第二数据集包括数据对象的标识符、数据对象的所有者的标识符、商品或服务的价格、商品或服务的描述、销售条款、买卖双方、销售日期、销售平台标识符、付款状态、发货日期和交货确认中的一个或多个。
条款10、根据条款8的分布式应用架构***,其中,通过针对数据对象的数据定义和数据对象的算法分析中的一个或多个来区分第一数据集和第二数据集。
条款11、根据条款8的分布式应用架构***,其中,分布式文件***可以删除针对第一数据集的数据块文件。
条款12、根据条款8的分布式应用架构***,其中该方法包括:响应于来自请求者的对列表的请求,从区块链中检索针对数据对象的对象数据区块;对于第一数据集的每个元素,使用对象数据区块中的分布式文件***上的地址来获得该元素的数据块文件;从对象数据区块获得第二数据集;根据第一数据集和第二数据集重组数据对象以创建重组数据对象;以及将重组数据对象返回给请求者。
条款13、根据条款12的分布式应用架构***,其中:第一数据集包括分布式文件***中的一个或多个图形元素;以及该方法包括处理重组数据对象以显示数据对象。
条款14、根据条款13的分布式应用架构***,其中:该方法包括在对象数据区块中存储数据对象的XML元数据;以及处理重组数据对象以显示数据对象的步骤包括使用对象数据区块中的XML元数据处理重组数据对象以显示数据对象。
条款15、一种或多种计算机存储介质,其上存储有计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时,使得处理器执行用于在分布式应用架构中存储数据对象的方法,该方法包括:标识数据对象中的第一数据集和第二数据集;将第一数据集的每个元素存储在分布式文件***上的针对该元素的数据块文件中,数据块文件在分布式文件***上具有地址;在区块链上创建对象数据区块,对象数据区块包括第二数据集和分布式文件***上针对第一数据集的每个元素的数据块文件的地址;以及将对象数据区块提交到区块链。
条款16、根据条款15的一种或多种计算机存储介质,其中:第一数据集包括关键数据的一个或多个元素;以及第二数据集包括非关键数据的一个或多个元素。
条款17、根据条款15的一种或多种计算机存储介质,其中,通过针对数据对象的数据定义和数据对象的算法分析中的一个或多个来区分第一数据集和第二数据集。
条款18、根据条款15的一种或多种计算机存储介质,其中,分布式文件***可以删除针对第一数据集的数据块文件。
条款19、根据条款15的一种或多种计算机存储介质,其中,该方法包括:响应于来自请求者的对数据对象的请求,从区块链中检索针对数据对象的对象数据区块;对于第一数据集的每个元素,使用对象数据区块中的分布式文件***上的地址来获得该元素的数据块文件;从对象数据区块获得第二数据集;根据第一数据集和第二数据集重组数据对象以创建重组数据对象;以及将重组数据对象返回给请求者。
条款20、根据条款19的一种或多种计算机存储介质,其中:将针对数据对象定义的元数据存储在对象数据文件中;第一数据集和第二数据集中的至少一个数据集包括一个或多个图形元素;以及该方法包括使用存储在对象数据文件中的元数据来处理重组数据对象以进行显示。
尽管以计算机结构特征、方法和变换动作、特定计算机器和计算机可读介质专用的语言描述了本文呈现的主题,但可以理解的是,所附权利要求书中阐述的主题不必限于本文所述的特定特征、动作或介质。相反,这些特定特征、动作和介质是作为实现所要求保护的主题的示例形式来公开的。
上述主题仅通过说明的方式提供,而不应被解释为限制性的。在不遵循所说明和描述的示例配置和应用且不脱离在所附权利要求书中陈述的本发明的范围的情况下,可对本文所述的主题进行各种修改和改变。
Claims (20)
1.一种计算机实现的方法,包括:
从列表中标识第一数据集和第二数据集;
将来自所述列表的所述第一数据集的每个元素存储在分布式文件***上的数据块文件中,所述数据块文件在所述分布式文件***上具有地址;
在与所述分布式文件***分离的区块链上创建对象数据区块,所述对象数据区块包括来自所述列表的所述第二数据集和所述分布式文件***上针对来自所述列表的所述第一数据集的每个元素的地址;
将所述对象数据区块提交到所述区块链;以及
响应于对所述列表的请求,执行来自所述区块链的脚本以通过以下步骤来生成重组列表:
从所述区块链获得定义多个数据集的格式的元数据,以重组所述列表,
基于所述元数据,从所述对象数据区块获得所述第二数据集,并且使用所述对象数据区块中包括的所述地址从所述数据块文件获得所述第一数据集,以及
基于所述元数据定义的所述格式,使用所述第一数据集和所述第二数据集来生成所述重组列表。
2.根据权利要求1所述的计算机实现的方法,其中:
所述第一数据集包括所述列表的图形元素、促销文本、图像数据或视频数据中的一个或多个;以及
所述第二数据集包括所述列表的标识符、所述列表的所有者的标识符、商品或服务的价格、商品或服务的描述、销售条款、买卖双方、销售日期、销售平台标识符、付款状态、发货日期和交货确认中的一个或多个。
3.根据权利要求1所述的计算机实现的方法,其中,所述方法还包括:
将所述第一数据集标识为与第一类别的数据相对应,并且将所述第二数据集标识为与第二类别的数据相对应;
其中,基于所述第一数据集与所述第一类别的数据相对应,将所述第一数据集存储在所述分布式文件***上;以及
其中,基于所述第二数据集与所述第二类别的数据相对应,将所述第二数据集存储在所述区块链上。
4.根据权利要求3所述的计算机实现的方法,其中,基于针对所述列表的数据定义和/或所述列表的算法分析,将所述第一数据集标识为与所述第一类别的数据相对应,并且将所述第二数据集标识为与所述第二类别的数据相对应。
5.根据权利要求1所述的计算机实现的方法,其中,对所述列表的请求是从请求者接收的,并且其中,所述方法还包括:
将所述重组列表返回给所述请求者。
6.根据权利要求1所述的计算机实现的方法,其中:
所述第一数据集包括所述分布式文件***中的一个或多个图形元素;以及
所述方法还包括提供所述重组列表以进行显示,所述重组列表包括所述一个或多个图形元素。
7.根据权利要求1所述的计算机实现的方法,其中:
所述元数据存储在所述对象数据区块中。
8.一种分布式应用架构***,包括:
一个或多个处理器;以及
一个或多个存储设备,与所述一个或多个处理器通信,所述一个或多个存储设备具有存储在其上的计算机可读指令,所述计算机可读指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下步骤的操作:
从包括多个数据集的数据对象中标识第一数据集和第二数据集;
将来自所述数据对象的所述第一数据集的每个元素存储在分布式文件***上针对所述元素的数据块文件中,所述数据块文件在所述分布式文件***上具有地址;
在与所述分布式文件***分离的区块链上创建对象数据区块,所述对象数据区块包括来自所述数据对象的所述第二数据集和所述分布式文件***上针对来自所述数据对象的所述第一数据集的每个元素的数据块文件的地址;
将所述对象数据区块提交到所述区块链;以及
响应于对所述数据对象的请求,执行来自所述区块链的脚本以通过以下步骤来生成重组数据对象:
从所述区块链获得定义所述多个数据集的格式的元数据,以重组所述数据对象,
基于所述元数据,从所述对象数据区块获得所述第二数据集,并且使用所述对象数据区块中包括的所述地址从所述数据块文件获得所述第一数据集,以及
基于所述元数据定义的所述格式,使用所述第一数据集和所述第二数据集来生成所述重组数据对象。
9.根据权利要求8所述的分布式应用架构***,其中:
所述第一数据集包括图形元素、促销文本、图像数据或视频数据中的一个或多个;以及
所述第二数据集包括所述数据对象的标识符、所述数据对象的所有者的标识符、商品或服务的价格、商品或服务的描述、销售条款、买卖双方、销售日期、销售平台标识符、付款状态、发货日期和交货确认中的一个或多个。
10.根据权利要求8所述的分布式应用架构***,其中,所述操作还包括:
将所述第一数据集标识为与第一类别的数据相对应,并且将所述第二数据集标识为与第二类别的数据相对应;
其中,基于所述第一数据集与所述第一类别的数据相对应,将所述第一数据集存储在所述分布式文件***上;以及
其中,基于所述第二数据集与所述第二类别的数据相对应,将所述第二数据集存储在所述区块链上。
11.根据权利要求10所述的分布式应用架构***,其中,基于针对所述数据对象的数据定义和/或所述数据对象的算法分析,将所述第一数据集标识为与所述第一类别的数据相对应,并且将所述第二数据集标识为与所述第二类别的数据相对应。
12.根据权利要求8所述的分布式应用架构***,其中,对所述数据对象的请求是从请求者接收的,并且其中,所述操作还包括:
将所述重组数据对象返回给所述请求者。
13.根据权利要求8所述的分布式应用架构***,其中:
所述第一数据集包括所述分布式文件***中的一个或多个图形元素;以及
所述操作还包括:提供所述重组数据对象以进行显示,所述重组数据对象包括所述一个或多个图形元素。
14.根据权利要求8所述的分布式应用架构***,其中:
所述元数据存储在所述对象数据区块中。
15.一种计算机存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行包括以下步骤的操作:
从包括多个数据集的数据对象中标识第一数据集和第二数据集;
将来自所述数据对象的所述第一数据集的每个元素存储在分布式文件***上的针对所述元素的数据块文件中,所述数据块文件在所述分布式文件***上具有地址;
在与所述分布式文件***分离的区块链上创建对象数据区块,所述对象数据区块包括来自所述数据对象的所述第二数据集和所述分布式文件***上针对来自所述数据对象的所述第一数据集的每个元素的数据块文件的地址;
将所述对象数据区块提交到所述区块链;以及
响应于对所述数据对象的请求,执行来自所述区块链的脚本以通过以下步骤来生成重组数据对象:
从所述区块链获得定义所述多个数据集的格式的元数据,以重组所述数据对象,
基于所述元数据,从所述对象数据区块获得所述第二数据集,并且使用所述对象数据区块中包括的所述地址从所述数据块文件获得所述第一数据集,以及
基于所述元数据定义的所述格式,使用所述第一数据集和所述第二数据集来生成所述重组数据对象。
16.根据权利要求15所述的计算机存储介质,其中,所述操作还包括:
将所述第一数据集标识为包括第一类别的数据的一个或多个元素;以及
将所述第二数据集标识为包括第二类别的数据的一个或多个元素。
17.根据权利要求16所述的计算机存储介质,其中,基于针对所述数据对象的数据定义和所述数据对象的算法分析,将所述第一数据集标识为包括所述第一类别的数据的一个或多个元素,并且将所述第二数据集标识为包括所述第二类别的数据的一个或多个元素。
18.根据权利要求16所述的计算机存储介质,其中,基于将所述第一数据集标识为包括所述第一类别的数据的一个或多个元素,将所述第一数据集存储在所述分布式文件***上;并且其中,基于将所述第二数据集标识为包括所述第二类别的数据的一个或多个元素,将所述第二数据集存储在所述区块链上。
19.根据权利要求15所述的计算机存储介质,其中,对所述数据对象的请求是从请求者接收的,并且其中,所述操作还包括:
将所述重组数据对象返回给所述请求者。
20.根据权利要求19所述的计算机存储介质,其中:
将针对所述数据对象定义的所述元数据存储在对象数据文件中;
所述第一数据集和所述第二数据集中的至少一个数据集包括一个或多个图形元素;以及
所述操作还包括:提供所述重组数据对象以进行显示,所述重组数据对象包括所述一个或多个图形元素。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862743468P | 2018-10-09 | 2018-10-09 | |
US62/743,468 | 2018-10-09 | ||
US16/396,559 | 2019-04-26 | ||
US16/396,559 US11803664B2 (en) | 2018-10-09 | 2019-04-26 | Distributed application architectures using blockchain and distributed file systems |
PCT/US2019/054589 WO2020076617A1 (en) | 2018-10-09 | 2019-10-03 | Distributed application architectures using blockchain and distributed file systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112840596A CN112840596A (zh) | 2021-05-25 |
CN112840596B true CN112840596B (zh) | 2024-04-09 |
Family
ID=70051685
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066996.7A Active CN112840596B (zh) | 2018-10-09 | 2019-10-03 | 使用区块链和分布式文件***的分布式应用架构 |
CN201980066386.7A Active CN112805721B (zh) | 2018-10-09 | 2019-10-08 | 用于生成ar/vr数字内容的数字图像适合性确定 |
CN202410326826.0A Pending CN118247471A (zh) | 2018-10-09 | 2019-10-08 | 由至少一个计算装置实现的方法以及增强现实/虚拟现实ar/vr数字内容*** |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066386.7A Active CN112805721B (zh) | 2018-10-09 | 2019-10-08 | 用于生成ar/vr数字内容的数字图像适合性确定 |
CN202410326826.0A Pending CN118247471A (zh) | 2018-10-09 | 2019-10-08 | 由至少一个计算装置实现的方法以及增强现实/虚拟现实ar/vr数字内容*** |
Country Status (5)
Country | Link |
---|---|
US (4) | US11803664B2 (zh) |
EP (3) | EP3864796B1 (zh) |
KR (2) | KR102476294B1 (zh) |
CN (3) | CN112840596B (zh) |
WO (2) | WO2020076617A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10475113B2 (en) | 2014-12-23 | 2019-11-12 | Ebay Inc. | Method system and medium for generating virtual contexts from three dimensional models |
JP7065738B2 (ja) * | 2018-09-18 | 2022-05-12 | 富士フイルム株式会社 | 画像処理装置、画像処理方法、プログラム及び記録媒体 |
US11803664B2 (en) | 2018-10-09 | 2023-10-31 | Ebay Inc. | Distributed application architectures using blockchain and distributed file systems |
JP7281041B2 (ja) * | 2018-11-29 | 2023-05-25 | 京セラドキュメントソリューションズ株式会社 | 種類判別システム |
US10990563B2 (en) * | 2019-04-11 | 2021-04-27 | Advanced New Technologies Co., Ltd. | Information read/write method and apparatus based on blockchain |
US11138328B2 (en) | 2019-05-30 | 2021-10-05 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US11153315B2 (en) | 2019-05-30 | 2021-10-19 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US11165777B2 (en) | 2019-05-30 | 2021-11-02 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US11676200B2 (en) * | 2020-02-06 | 2023-06-13 | Shopify Inc. | Systems and methods for generating augmented reality scenes for physical items |
CA3174182A1 (en) * | 2020-04-02 | 2021-10-07 | Sanjaykumar PRAJAPATI | Apparatuses, computer-implemented methods, and computer program products for facilitating computer-based transfer of transferable data objects |
EP3837652B1 (en) * | 2020-04-15 | 2022-09-07 | Alipay (Hangzhou) Information Technology Co., Ltd. | Distributed blockchain data storage under account model |
SG11202103246SA (en) | 2020-04-20 | 2021-04-29 | Alipay Hangzhou Inf Tech Co Ltd | Distributed blockchain data storage under account model |
US11521339B2 (en) * | 2020-06-10 | 2022-12-06 | Snap Inc. | Machine learning in augmented reality content items |
US11621857B2 (en) | 2020-09-03 | 2023-04-04 | Seagate Technology Llc | Fingerprint and provenance for movable storage devices |
US11652604B2 (en) * | 2020-11-12 | 2023-05-16 | Paypal, Inc. | Blockchain data compression and storage |
CN113098938B (zh) * | 2021-03-25 | 2022-07-12 | 卓尔智联(武汉)研究院有限公司 | 一种共享视频的方法、装置及电子设备 |
CN113744412B (zh) * | 2021-08-16 | 2024-06-18 | 长沙眸瑞网络科技有限公司 | 一种处理3d模型数据的方法及装置 |
US20230062776A1 (en) * | 2021-08-25 | 2023-03-02 | Ebay Inc. | Supplemental Digital Content Access Control using Nonfungible Tokens (NFTs) |
US20230070271A1 (en) * | 2021-09-08 | 2023-03-09 | Shopify Inc. | Systems and methods for identifying items having complementary material properties |
US11682180B1 (en) * | 2021-12-09 | 2023-06-20 | Qualcomm Incorporated | Anchoring virtual content to physical surfaces |
KR102623594B1 (ko) * | 2022-02-10 | 2024-01-10 | 주식회사 이매지니어스 | 대체 불가능 토큰 콘텐츠를 이용한 증강 현실 서비스를 제공하기 위한 방법 |
CN116347057B (zh) * | 2023-05-29 | 2023-07-25 | 缤汇数字科技(南京)有限公司 | 一种App端实现动态模型AR实景展示方法 |
CN118093598A (zh) * | 2024-04-23 | 2024-05-28 | 中国科学技术大学 | 一种基于区块链技术的数据要素化方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107249046A (zh) * | 2017-08-15 | 2017-10-13 | 李俊庄 | 一种基于区块链的分布式云存储***构建方法 |
CN107615730A (zh) * | 2015-03-31 | 2018-01-19 | 伊姆西知识产权控股有限责任公司 | 跨文件***对象和客户端共享的数据的安全的基于云的存储 |
WO2018127511A1 (en) * | 2017-01-03 | 2018-07-12 | University Of Stavanger | User controlled, decentralized, distributed, and secure content distribution |
Family Cites Families (185)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255352A (en) | 1989-08-03 | 1993-10-19 | Computer Design, Inc. | Mapping of two-dimensional surface detail on three-dimensional surfaces |
US5495568A (en) | 1990-07-09 | 1996-02-27 | Beavin; William C. | Computerized clothing designer |
US6175655B1 (en) | 1996-09-19 | 2001-01-16 | Integrated Medical Systems, Inc. | Medical imaging system for displaying, manipulating and analyzing three-dimensional images |
US5930769A (en) | 1996-10-07 | 1999-07-27 | Rose; Andrea | System and method for fashion shopping |
US6310627B1 (en) | 1998-01-20 | 2001-10-30 | Toyo Boseki Kabushiki Kaisha | Method and system for generating a stereoscopic image of a garment |
US6415199B1 (en) | 1999-02-25 | 2002-07-02 | E-Z Max Apparel Systems, Inc. | Method and apparatus for preparing custom-fitted clothing |
DE19922150B4 (de) | 1999-05-12 | 2012-03-08 | Human Solutions Gmbh | Verfahren und Vorrichtung zur Bestimmung von Körpermaßen und / oder entsprechender Kleidergrößen einer Person |
US6404426B1 (en) | 1999-06-11 | 2002-06-11 | Zenimax Media, Inc. | Method and system for a computer-rendered three-dimensional mannequin |
US20020004763A1 (en) | 2000-01-20 | 2002-01-10 | Lam Peter Ar-Fu | Body profile coding method and apparatus useful for assisting users to select wearing apparel |
US7328119B1 (en) | 2000-03-07 | 2008-02-05 | Pryor Timothy R | Diet and exercise planning and motivation including apparel purchases based on future appearance |
US7149665B2 (en) | 2000-04-03 | 2006-12-12 | Browzwear International Ltd | System and method for simulation of virtual wear articles on virtual models |
US6643385B1 (en) | 2000-04-27 | 2003-11-04 | Mario J. Bravomalo | System and method for weight-loss goal visualization and planning and business method for use therefor |
JP2001319108A (ja) | 2000-05-11 | 2001-11-16 | Uchiyama Toyoko | リクレーション、ショッピング、ビジネスモデル |
US6640202B1 (en) | 2000-05-25 | 2003-10-28 | International Business Machines Corporation | Elastic sensor mesh system for 3-dimensional measurement, mapping and kinematics applications |
US6546309B1 (en) | 2000-06-29 | 2003-04-08 | Kinney & Lange, P.A. | Virtual fitting room |
JP5118793B2 (ja) | 2000-06-29 | 2013-01-16 | ソニー株式会社 | サービス提供システム |
GB0101371D0 (en) | 2001-01-19 | 2001-03-07 | Virtual Mirrors Ltd | Production and visualisation of garments |
AU2002335924A1 (en) | 2001-03-08 | 2002-10-08 | Saint Laurie, Ltd. | A system and method for fitting clothing |
US20020126328A1 (en) | 2001-03-09 | 2002-09-12 | Lehmeier Michelle R. | Method and apparatus for matching color image data with a corresponding color in a defined color space |
US7242999B2 (en) | 2001-05-11 | 2007-07-10 | Kenneth Kuk-Kei Wang | Method and apparatus for identifying virtual body profiles |
US7953648B2 (en) | 2001-11-26 | 2011-05-31 | Vock Curtis A | System and methods for generating virtual clothing experiences |
US6813838B2 (en) | 2002-01-14 | 2004-11-09 | Mccormick Bruce | Garment fitting system |
US6882897B1 (en) | 2004-01-05 | 2005-04-19 | Dennis S. Fernandez | Reconfigurable garment definition and production method |
US20050193429A1 (en) * | 2004-01-23 | 2005-09-01 | The Barrier Group | Integrated data traffic monitoring system |
US7354410B2 (en) | 2004-02-23 | 2008-04-08 | Tyco Healthcare Group Lp | Compression treatment system |
JP4533643B2 (ja) | 2004-02-26 | 2010-09-01 | 株式会社島精機製作所 | 人体モデルへのニットガーメントの着装シミュレーション方法とその装置、並びにそのプログラム |
US20050289131A1 (en) * | 2004-06-25 | 2005-12-29 | Aenlle William M | Inferred endorsement system and method |
US8660902B2 (en) | 2004-07-23 | 2014-02-25 | Lori Coulter, Llc | Methods and systems for selling apparel |
US7178722B2 (en) | 2004-12-09 | 2007-02-20 | International Business Machines Corporation | Virtual shopping environment |
JP4473754B2 (ja) | 2005-03-11 | 2010-06-02 | 株式会社東芝 | 仮想試着装置 |
US7398133B2 (en) | 2005-04-27 | 2008-07-08 | Myshape, Inc. | Matching the fit of individual garments to individual consumers |
US20070005174A1 (en) | 2005-06-29 | 2007-01-04 | Sony Ericsson Mobile Communications Ab | Virtual apparel fitting |
WO2007028038A2 (en) | 2005-09-01 | 2007-03-08 | G & K Services, Inc. | Virtual sizing system and method |
US20090002224A1 (en) | 2005-09-22 | 2009-01-01 | Nader Khatib | SAR ATR tree line extended operating condition |
ES2279708B1 (es) | 2005-11-15 | 2008-09-16 | Reyes Infografica, S.L. | Metodo de generacion y utilizacion de un probador virtual de prendas de vestir, y sistema. |
US20070124215A1 (en) | 2005-11-29 | 2007-05-31 | Simmons Lawrence D Jr | Virtual shopping with personal image environment |
US7487116B2 (en) | 2005-12-01 | 2009-02-03 | International Business Machines Corporation | Consumer representation rendering with selected merchandise |
GB0603106D0 (en) | 2006-02-16 | 2006-03-29 | Virtual Mirrors Ltd | Design and production of garments |
US8269778B1 (en) | 2006-06-08 | 2012-09-18 | Pixar | Shape preservation of simulated objects in computer animation |
US20080071559A1 (en) | 2006-09-19 | 2008-03-20 | Juha Arrasvuori | Augmented reality assisted shopping |
US8108414B2 (en) | 2006-11-29 | 2012-01-31 | David Stackpole | Dynamic location-based social networking |
TW200828043A (en) | 2006-12-29 | 2008-07-01 | Cheng-Hsien Yang | Terminal try-on simulation system and operating and applying method thereof |
WO2008088760A2 (en) | 2007-01-12 | 2008-07-24 | Ebay Inc. | Methods and systems to schedule a transaction |
US7714912B2 (en) | 2007-01-24 | 2010-05-11 | International Business Machines Corporation | Intelligent mirror |
US7979067B2 (en) | 2007-02-15 | 2011-07-12 | Yahoo! Inc. | Context avatar |
US8009178B2 (en) | 2007-06-29 | 2011-08-30 | Microsoft Corporation | Augmenting images for panoramic display |
US8140304B2 (en) | 2007-07-13 | 2012-03-20 | Hyeong-Seok Ko | Method of cloth simulation using linear stretch/shear model |
US9026938B2 (en) | 2007-07-26 | 2015-05-05 | Noregin Assets N.V., L.L.C. | Dynamic detail-in-context user interface for application access and content access on electronic displays |
JP5161230B2 (ja) | 2007-09-04 | 2013-03-13 | 株式会社島精機製作所 | 着装シミュレーション装置とシミュレーション方法及びシミュレーションプログラム |
US7580699B1 (en) | 2007-10-18 | 2009-08-25 | At&T Mobility Ii Llc | Network systems and methods utilizing mobile devices to enhance consumer experience |
US10235827B2 (en) | 2007-11-09 | 2019-03-19 | Ball Gaming, Inc. | Interaction with 3D space in a gaming system |
US8892999B2 (en) | 2007-11-30 | 2014-11-18 | Nike, Inc. | Interactive avatar for social network services |
EP2091015B1 (de) | 2008-02-15 | 2010-11-03 | Stefan Seiler | Verfahren und computerimplementiertes System zur Bestimmung der Passqualität eines individuell gefertigten Kleidungsstücks |
US20130215116A1 (en) | 2008-03-21 | 2013-08-22 | Dressbot, Inc. | System and Method for Collaborative Shopping, Business and Entertainment |
GB2458388A (en) | 2008-03-21 | 2009-09-23 | Dressbot Inc | A collaborative online shopping environment, virtual mall, store, etc. in which payments may be shared, products recommended and users modelled. |
US10872322B2 (en) | 2008-03-21 | 2020-12-22 | Dressbot, Inc. | System and method for collaborative shopping, business and entertainment |
JP4407761B2 (ja) | 2008-03-24 | 2010-02-03 | 東洋紡績株式会社 | 衣服シミュレーション装置、衣服シミュレーションプログラム、及び衣服シミュレーション方法 |
EP2277096A1 (en) | 2008-05-09 | 2011-01-26 | Koninklijke Philips Electronics N.V. | Method and system for conveying an emotion |
US8437570B2 (en) | 2008-05-23 | 2013-05-07 | Microsoft Corporation | Geodesic image and video processing |
US20110184831A1 (en) | 2008-06-02 | 2011-07-28 | Andrew Robert Dalgleish | An item recommendation system |
US20100049633A1 (en) | 2008-08-22 | 2010-02-25 | Myshape, Inc. | System and method to identify and visually distinguish personally relevant items |
US8704832B2 (en) | 2008-09-20 | 2014-04-22 | Mixamo, Inc. | Interactive design, synthesis and delivery of 3D character motion data through the web |
US9996844B2 (en) | 2008-09-30 | 2018-06-12 | Excalibur Ip, Llc | Age-targeted online marketing using inferred age range information |
US8749556B2 (en) | 2008-10-14 | 2014-06-10 | Mixamo, Inc. | Data compression for real-time streaming of deformable 3D models for 3D animation |
US8159504B2 (en) | 2008-10-16 | 2012-04-17 | At&T Intellectual Property I, L.P. | System and method for presenting an avatar |
US8982122B2 (en) | 2008-11-24 | 2015-03-17 | Mixamo, Inc. | Real time concurrent design of shape, texture, and motion for 3D character animation |
US8659596B2 (en) | 2008-11-24 | 2014-02-25 | Mixamo, Inc. | Real time generation of animation-ready 3D character models |
WO2010060113A1 (en) | 2008-11-24 | 2010-05-27 | Mixamo, Inc. | Real time generation of animation-ready 3d character models |
US20100191770A1 (en) | 2009-01-27 | 2010-07-29 | Apple Inc. | Systems and methods for providing a virtual fashion closet |
US10042032B2 (en) | 2009-04-29 | 2018-08-07 | Amazon Technologies, Inc. | System and method for generating recommendations based on similarities between location information of multiple users |
US8364561B2 (en) | 2009-05-26 | 2013-01-29 | Embodee Corp. | Garment digitization system and method |
US8700477B2 (en) | 2009-05-26 | 2014-04-15 | Embodee Corp. | Garment fit portrayal system and method |
US20100313141A1 (en) | 2009-06-03 | 2010-12-09 | Tianli Yu | System and Method for Learning User Genres and Styles and for Matching Products to User Preferences |
CN101937078B (zh) | 2009-06-30 | 2012-12-19 | 深圳市气象局 | 基于边界识别追踪技术的雷暴云团的临近预报方法和*** |
US8818883B2 (en) | 2009-07-23 | 2014-08-26 | Apple Inc. | Personalized shopping avatar |
US8736606B2 (en) | 2010-02-01 | 2014-05-27 | SathyaKumar Andre Ramalingam | Method and apparatus to create 3-dimensional computer models of persons from specially created 2-dimensional images |
US8090465B2 (en) | 2010-03-04 | 2012-01-03 | Belinda Luna Zeng | Fashion design method, system and apparatus |
US8429025B2 (en) | 2010-03-17 | 2013-04-23 | Amanda Fries | Method, medium, and system of ascertaining garment size of a particular garment type for a consumer |
US20110234591A1 (en) | 2010-03-26 | 2011-09-29 | Microsoft Corporation | Personalized Apparel and Accessories Inventory and Display |
US9098873B2 (en) | 2010-04-01 | 2015-08-04 | Microsoft Technology Licensing, Llc | Motion-based interactive shopping environment |
US9646340B2 (en) | 2010-04-01 | 2017-05-09 | Microsoft Technology Licensing, Llc | Avatar-based virtual dressing room |
US8525828B1 (en) | 2010-05-05 | 2013-09-03 | Amazon Technologies, Inc. | Visualization of fit, flow, and texture of clothing items by online consumers |
NL1037949C2 (nl) | 2010-05-10 | 2011-11-14 | Suitsupply B V | Werkwijze voor het op afstand bepalen van kledingmaten. |
US20160088284A1 (en) | 2010-06-08 | 2016-03-24 | Styku, Inc. | Method and system for determining biometrics from body surface imaging technology |
US10702216B2 (en) | 2010-06-08 | 2020-07-07 | Styku, LLC | Method and system for body scanning and display of biometric data |
US20110298897A1 (en) | 2010-06-08 | 2011-12-08 | Iva Sareen | System and method for 3d virtual try-on of apparel on an avatar |
US10332176B2 (en) | 2014-08-28 | 2019-06-25 | Ebay Inc. | Methods and systems for virtual fitting rooms or hybrid stores |
US8797328B2 (en) | 2010-07-23 | 2014-08-05 | Mixamo, Inc. | Automatic generation of 3D character animation from 3D meshes |
WO2012016052A1 (en) | 2010-07-28 | 2012-02-02 | True Fit Corporation | Fit recommendation via collaborative inference |
WO2012016057A1 (en) | 2010-07-29 | 2012-02-02 | True Fit Corporation | Enabling proxy shopping |
US20120054059A1 (en) | 2010-08-28 | 2012-03-01 | Ebay Inc. | Size mapping in an online shopping environment |
US8758282B2 (en) | 2010-09-29 | 2014-06-24 | Covidien Lp | Compression garment apparatus having support bladder |
US20120095589A1 (en) | 2010-10-15 | 2012-04-19 | Arkady Vapnik | System and method for 3d shape measurements and for virtual fitting room internet service |
US20140114620A1 (en) | 2010-11-07 | 2014-04-24 | Eitan Grinspun | Methods, systems, and media for interactive garment modeling and editing |
US8711175B2 (en) | 2010-11-24 | 2014-04-29 | Modiface Inc. | Method and system for simulating superimposition of a non-linearly stretchable object upon a base object using representative images |
WO2012071576A2 (en) | 2010-11-24 | 2012-05-31 | Dhiraj Daway | System and method for providing wardrobe assistance |
CN103444163B (zh) | 2011-02-05 | 2017-03-22 | 苹果公司 | 用于移动位置确定的方法和设备 |
GB201102794D0 (en) | 2011-02-17 | 2011-03-30 | Metail Ltd | Online retail system |
US20120233003A1 (en) | 2011-03-08 | 2012-09-13 | Bank Of America Corporation | Providing retail shopping assistance |
US9135738B2 (en) | 2011-05-02 | 2015-09-15 | Disney Enterprises, Inc. | Efficient elasticity for character skinning |
US8565539B2 (en) | 2011-05-31 | 2013-10-22 | Hewlett-Packard Development Company, L.P. | System and method for determining estimated age using an image collection |
US9241184B2 (en) | 2011-06-01 | 2016-01-19 | At&T Intellectual Property I, L.P. | Clothing visualization |
US9013489B2 (en) | 2011-06-06 | 2015-04-21 | Microsoft Technology Licensing, Llc | Generation of avatar reflecting player appearance |
CN102890742A (zh) | 2011-07-18 | 2013-01-23 | 张炯 | 一种服饰虚拟综合展示软件 |
US9449323B2 (en) | 2011-07-22 | 2016-09-20 | At&T Intellectual Property I, Lp | Method and apparatus for monitoring usage of items |
US9274595B2 (en) | 2011-08-26 | 2016-03-01 | Reincloud Corporation | Coherent presentation of multiple reality and interaction models |
US20130071584A1 (en) | 2011-09-16 | 2013-03-21 | Jonathan Arnold Bell | Skins Of Flexible Intelligence |
US8780108B2 (en) | 2011-11-02 | 2014-07-15 | X-Rite Switzerland GmbH | Apparatus, systems and methods for simulating a material |
US20130173226A1 (en) | 2012-01-03 | 2013-07-04 | Waymon B. Reed | Garment modeling simulation system and process |
WO2013120851A1 (en) | 2012-02-13 | 2013-08-22 | Mach-3D Sàrl | Method for sharing emotions through the creation of three-dimensional avatars and their interaction through a cloud-based platform |
US9679409B2 (en) | 2012-02-16 | 2017-06-13 | Brown University | System and method for simulating realistic clothing |
US8687104B2 (en) | 2012-03-27 | 2014-04-01 | Amazon Technologies, Inc. | User-guided object identification |
PL398681A1 (pl) | 2012-04-02 | 2013-10-14 | Incomesolutions Spólka Z Ograniczona Odpowiedzialnoscia | Sposób i system przestrzennej wizualizacji obiektów oraz uklad sterowania platforma zawarta w tym systemie, zwlaszcza dla wirtualnej przymierzalni |
US20130317950A1 (en) | 2012-05-23 | 2013-11-28 | International Business Machines Corporation | Customizing a three dimensional virtual store based on user shopping behavior |
CN103455501A (zh) | 2012-05-30 | 2013-12-18 | 盛乐信息技术(上海)有限公司 | 服装数据库生成方法、服装模型建立方法和试衣方法 |
US20150366504A1 (en) | 2014-06-20 | 2015-12-24 | Medibotics Llc | Electromyographic Clothing |
AU2013204402A1 (en) | 2012-06-20 | 2014-01-16 | 2-George Enterprises Pty Ltd | Body measuring method and garment production method and system |
US10139985B2 (en) | 2012-06-22 | 2018-11-27 | Matterport, Inc. | Defining, displaying and interacting with tags in a three-dimensional model |
US9786097B2 (en) | 2012-06-22 | 2017-10-10 | Matterport, Inc. | Multi-modal method for interacting with 3D models |
US9292085B2 (en) | 2012-06-29 | 2016-03-22 | Microsoft Technology Licensing, Llc | Configuring an interaction zone within an augmented reality environment |
RU2504009C1 (ru) | 2012-07-10 | 2014-01-10 | Общество С Ограниченной Ответственностью "Дрессформер" | Способ обеспечения удаленной примерки и/или выбора одежды |
CN102842089A (zh) | 2012-07-18 | 2012-12-26 | 上海交通大学 | 基于3d真实人体模型及服装模型的网络虚拟试衣*** |
CN104662529B (zh) * | 2012-07-25 | 2019-03-29 | 阿瓦拉瑞公司 | 用于高性能分析的数据精炼引擎的***和方法 |
US9898742B2 (en) | 2012-08-03 | 2018-02-20 | Ebay Inc. | Virtual dressing room |
US20140129373A1 (en) | 2012-11-02 | 2014-05-08 | Ebay Inc. | Item recommendations based on true fit determination |
ITBO20120628A1 (it) | 2012-11-16 | 2014-05-17 | In Pro Di Inghirami Produzione Dist Ribuzione S P | Procedimento e sistema per la realizzazione di capi di abbigliamento su misura. |
US10296968B2 (en) | 2012-12-07 | 2019-05-21 | United Parcel Service Of America, Inc. | Website augmentation including conversion of regional content |
CN103049854A (zh) | 2012-12-20 | 2013-04-17 | 雷华 | 一种3d网络购物平台 |
US20140180864A1 (en) | 2012-12-20 | 2014-06-26 | Ebay Inc. | Personalized clothing recommendation system and method |
US9443352B1 (en) | 2012-12-21 | 2016-09-13 | Motion Reality, Inc. | Navigating through a virtual environment having a real-world elevation characteristics using motion capture |
WO2014159726A1 (en) | 2013-03-13 | 2014-10-02 | Mecommerce, Inc. | Determining dimension of target object in an image using reference object |
US20140279289A1 (en) | 2013-03-15 | 2014-09-18 | Mary C. Steermann | Mobile Application and Method for Virtual Dressing Room Visualization |
US9747392B2 (en) | 2013-03-15 | 2017-08-29 | Robert Bosch Gmbh | System and method for generation of a room model |
US20140279200A1 (en) | 2013-03-15 | 2014-09-18 | Ebay Inc. | Destination shopping system |
WO2014182545A1 (en) | 2013-05-04 | 2014-11-13 | Vupad Partners, Llc | Virtual object scaling in augmented reality environment |
AU2014268117B9 (en) | 2013-05-13 | 2020-03-12 | mPort Ltd | Devices, frameworks and methodologies for enabling user-driven determination of body size and shape information and utilisation of such information across a networked environment |
EP3005300A4 (en) * | 2013-06-06 | 2016-05-25 | Ericsson Telefon Ab L M | COMBINATION OF A DIGITAL IMAGE WITH A VIRTUAL UNIT |
US20140368499A1 (en) | 2013-06-15 | 2014-12-18 | Rajdeep Kaur | Virtual Fitting Room |
US9460342B1 (en) | 2013-08-05 | 2016-10-04 | Google Inc. | Determining body measurements |
US9177410B2 (en) | 2013-08-09 | 2015-11-03 | Ayla Mandel | System and method for creating avatars or animated sequences using human body features extracted from a still image |
CN103605832B (zh) | 2013-10-26 | 2016-10-05 | 上海工程技术大学 | 预测人体小腿对于服装压力分布的方法 |
US20150134302A1 (en) | 2013-11-14 | 2015-05-14 | Jatin Chhugani | 3-dimensional digital garment creation from planar garment photographs |
US9773274B2 (en) | 2013-12-02 | 2017-09-26 | Scott William Curry | System and method for online virtual fitting room |
US10366439B2 (en) | 2013-12-27 | 2019-07-30 | Ebay Inc. | Regional item reccomendations |
CN106415671B (zh) * | 2014-06-03 | 2020-05-19 | 苹果公司 | 用于呈现与真实对象相关的数字信息的方法和*** |
AU2015274283B2 (en) | 2014-06-14 | 2020-09-10 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US10653962B2 (en) | 2014-08-01 | 2020-05-19 | Ebay Inc. | Generating and utilizing digital avatar data for online marketplaces |
US9205562B1 (en) | 2014-08-29 | 2015-12-08 | Google Inc. | Integration of depth points into a height map |
US20160092956A1 (en) | 2014-09-30 | 2016-03-31 | Jonathan Su | Garment size mapping |
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
US10332179B2 (en) | 2014-10-23 | 2019-06-25 | Tailored IP, LLC | Methods and systems for recommending fitted clothing |
US10204375B2 (en) | 2014-12-01 | 2019-02-12 | Ebay Inc. | Digital wardrobe using simulated forces on garment models |
US20160171583A1 (en) | 2014-12-12 | 2016-06-16 | Ebay Inc. | Systems and methods for determining child clothing size |
US10172403B2 (en) | 2014-12-12 | 2019-01-08 | Ebay Inc. | Body measurement garment for optimal garment fit |
US10109112B2 (en) | 2014-12-12 | 2018-10-23 | Ebay Inc. | Fit simulation garment |
US20160180447A1 (en) | 2014-12-20 | 2016-06-23 | Ebay Inc. | Virtual shopping |
US9984409B2 (en) | 2014-12-22 | 2018-05-29 | Ebay Inc. | Systems and methods for generating virtual contexts |
US10475113B2 (en) | 2014-12-23 | 2019-11-12 | Ebay Inc. | Method system and medium for generating virtual contexts from three dimensional models |
US9641338B2 (en) * | 2015-03-12 | 2017-05-02 | Skuchain, Inc. | Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items |
US10310616B2 (en) | 2015-03-31 | 2019-06-04 | Ebay Inc. | Modification of three-dimensional garments using gestures |
US10121019B2 (en) * | 2015-06-02 | 2018-11-06 | ALTR Solutions, Inc. | Storing differentials of files in a distributed blockchain |
US11347878B2 (en) * | 2015-06-02 | 2022-05-31 | ALTR Solutions, Inc. | Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data |
US20170004567A1 (en) | 2015-07-01 | 2017-01-05 | DimensionalMechanics, Inc. | System and method for providing modular online product selection, visualization and design services |
US10402792B2 (en) * | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
US9928656B2 (en) * | 2015-09-11 | 2018-03-27 | Futurewei Technologies, Inc. | Markerless multi-user, multi-object augmented reality on mobile devices |
US9691161B1 (en) | 2015-09-25 | 2017-06-27 | A9.Com, Inc. | Material recognition for object identification |
US10270965B2 (en) | 2015-12-04 | 2019-04-23 | Ebay Inc. | Automatic guided capturing and presentation of images |
KR101763123B1 (ko) * | 2015-12-15 | 2017-08-04 | (주)블루클라우드 | 증강된 가상공간 제공용 프로젝션 함체 |
US10282614B2 (en) | 2016-02-18 | 2019-05-07 | Microsoft Technology Licensing, Llc | Real-time detection of object scanability |
EP3257191B1 (en) * | 2016-02-23 | 2018-04-11 | Nchain Holdings Limited | Registry and automated management method for blockchain-enforced smart contracts |
US10720232B2 (en) | 2016-04-13 | 2020-07-21 | Accenture Global Solutions Limited | Distributed healthcare records management |
WO2018014123A1 (en) * | 2016-07-18 | 2018-01-25 | Royal Bank Of Canada | Distributed ledger platform for vehicle records |
WO2018049523A1 (en) | 2016-09-14 | 2018-03-22 | Royal Bank Of Canada | Credit score platform |
US20180082290A1 (en) * | 2016-09-16 | 2018-03-22 | Kountable, Inc. | Systems and Methods that Utilize Blockchain Digital Certificates for Data Transactions |
US20190012666A1 (en) * | 2016-09-30 | 2019-01-10 | Cable Television Laboratories, Inc | Systems and methods for protecting communications and supply chain information |
JP6533771B2 (ja) | 2016-11-15 | 2019-06-19 | 富士通株式会社 | 通信方法、装置、及びプログラム |
JP6360216B2 (ja) * | 2017-02-24 | 2018-07-18 | 株式会社バンダイナムコエンターテインメント | プログラム、サーバ、端末及びネットワークシステム |
US10255342B2 (en) | 2017-04-12 | 2019-04-09 | Vijay K. Madisetti | Method and system for tuning blockchain scalability, decentralization, and security for fast and low-cost payment and transaction processing |
CN107564063B (zh) | 2017-08-30 | 2021-08-13 | 广州方硅信息技术有限公司 | 一种基于卷积神经网络的虚拟物显示方法及装置 |
US20190108482A1 (en) * | 2017-10-06 | 2019-04-11 | Sap Se | Enablement of procurement processes with asset traceability using blockchain technology |
US10796185B2 (en) | 2017-11-03 | 2020-10-06 | Facebook, Inc. | Dynamic graceful degradation of augmented-reality effects |
US10095888B1 (en) | 2018-06-04 | 2018-10-09 | Capital One Services, Llc | Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system |
WO2019236638A1 (en) * | 2018-06-06 | 2019-12-12 | Argosoperem Llc | Method and system for data storage and retrieval |
CN109243583B (zh) | 2018-07-09 | 2020-05-12 | 研境信息科技(上海)有限公司 | 基于区块链的医疗影像数据去中心化管理的方法及设备 |
US11803664B2 (en) | 2018-10-09 | 2023-10-31 | Ebay Inc. | Distributed application architectures using blockchain and distributed file systems |
-
2019
- 2019-04-26 US US16/396,559 patent/US11803664B2/en active Active
- 2019-10-03 EP EP19791402.1A patent/EP3864796B1/en active Active
- 2019-10-03 WO PCT/US2019/054589 patent/WO2020076617A1/en unknown
- 2019-10-03 CN CN201980066996.7A patent/CN112840596B/zh active Active
- 2019-10-03 EP EP23217022.5A patent/EP4318410A3/en active Pending
- 2019-10-08 KR KR1020217008279A patent/KR102476294B1/ko active IP Right Grant
- 2019-10-08 WO PCT/US2019/055263 patent/WO2020076871A1/en unknown
- 2019-10-08 EP EP19794809.4A patent/EP3864572A1/en not_active Withdrawn
- 2019-10-08 CN CN201980066386.7A patent/CN112805721B/zh active Active
- 2019-10-08 CN CN202410326826.0A patent/CN118247471A/zh active Pending
- 2019-10-08 KR KR1020227042832A patent/KR102667525B1/ko active IP Right Grant
- 2019-10-08 US US16/596,394 patent/US11100054B2/en active Active
-
2021
- 2021-07-16 US US17/377,708 patent/US11487712B2/en active Active
-
2023
- 2023-07-27 US US18/227,019 patent/US20240020421A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107615730A (zh) * | 2015-03-31 | 2018-01-19 | 伊姆西知识产权控股有限责任公司 | 跨文件***对象和客户端共享的数据的安全的基于云的存储 |
WO2018127511A1 (en) * | 2017-01-03 | 2018-07-12 | University Of Stavanger | User controlled, decentralized, distributed, and secure content distribution |
CN107249046A (zh) * | 2017-08-15 | 2017-10-13 | 李俊庄 | 一种基于区块链的分布式云存储***构建方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020076871A1 (en) | 2020-04-16 |
KR102667525B1 (ko) | 2024-05-29 |
CN112805721B (zh) | 2024-03-15 |
KR20230004880A (ko) | 2023-01-06 |
EP3864572A1 (en) | 2021-08-18 |
US20240020421A1 (en) | 2024-01-18 |
CN112805721A (zh) | 2021-05-14 |
US11100054B2 (en) | 2021-08-24 |
KR20210047326A (ko) | 2021-04-29 |
US11487712B2 (en) | 2022-11-01 |
WO2020076617A1 (en) | 2020-04-16 |
EP3864796B1 (en) | 2024-01-10 |
US20210342306A1 (en) | 2021-11-04 |
EP4318410A3 (en) | 2024-04-17 |
US11803664B2 (en) | 2023-10-31 |
CN112840596A (zh) | 2021-05-25 |
CN118247471A (zh) | 2024-06-25 |
EP3864796A1 (en) | 2021-08-18 |
US20200111261A1 (en) | 2020-04-09 |
KR102476294B1 (ko) | 2022-12-12 |
US20200110728A1 (en) | 2020-04-09 |
EP4318410A2 (en) | 2024-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112840596B (zh) | 使用区块链和分布式文件***的分布式应用架构 | |
CN113141782B (zh) | 在具有原始作品数据的区块链上存储和验证衍生作品数据 | |
US11756030B2 (en) | Secure management of content distribution data blocks on a blockchain | |
US11379785B2 (en) | Decentralized shipping network using blockchains | |
US11514191B2 (en) | Weighted source data secured on blockchains | |
CN111512591A (zh) | 可跟踪密钥区块链账本 | |
US11681551B2 (en) | Resource trust model for securing component state data for a resource using blockchains | |
US20200220881A1 (en) | Weighted verification of entity data blocks on a blockchain | |
CN113330722A (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 |