CN110187827A - 可编程数据存储装置及可编程网络数据存储系统 - Google Patents
可编程数据存储装置及可编程网络数据存储系统 Download PDFInfo
- Publication number
- CN110187827A CN110187827A CN201910111731.6A CN201910111731A CN110187827A CN 110187827 A CN110187827 A CN 110187827A CN 201910111731 A CN201910111731 A CN 201910111731A CN 110187827 A CN110187827 A CN 110187827A
- Authority
- CN
- China
- Prior art keywords
- block chain
- storage device
- processor
- block
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/602—Providing cryptographic facilities or services
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种可编程数据存储装置及可编程网络数据存储系统。可编程数据存储装置包括:非易失性存储器;存储控制器,被配置成控制所述非易失性存储器;网络接口;以及现场可编程门阵列,被配置成实现区块链算法且通过所述存储控制器将与所述区块链算法对应的区块链的至少一个区块存储在所述非易失性存储器中;以及处理器,具有与其耦合的存储器,所述存储器上存储有指令,所述指令在由所述处理器执行时使所述处理器通过所述网络接口发送及接收所述区块链的一个或多个区块且控制所述现场可编程门阵列对所述区块链的所述一个或多个区块执行所述区块链算法。
Description
[相关申请的交叉参考]
本申请主张在2018年2月23日在美国专利与商标局提出申请的美国临时专利申请第62/634,651号的优先权及权利,所述美国临时专利申请的全部公开内容并入本文中供参考。
技术领域
本发明各实施例的方面涉及应用专用数据存储装置。
背景技术
区块链(blockchain)技术使得能够在对等(peer-to-peer,P2P)网络上建立共享、安全、不可变的分布式分类账(ledger)。例如资产所有权及交换这些资产的所有权的交易等的记录可被记录在此种“区块链”上,且这些记录可由网络的对等点(用户)验核及维护。
通常,区块链包括两种类型:公有区块链,在公有区块链中,用户是匿名的且每一用户具有分类账的副本并独立地参与交易验核;以及私有区块链,在私有区块链中,用户不是匿名的且需要具有权限才能成为网络的一部分(用户仍可各自具有分类账的副本并参与交易验核)。
区块链矿工(miner)是对等网络中的节点,其执行例如密码散列(cryptographichash)等挖矿操作以产生为区块链添加新区块的工作量证明(proof-of-work,PoW)。在一些网络中,为矿工提供执行挖矿的奖励。矿工可合作来形成挖矿池,在所述挖矿池中汇集了挖矿能力(例如,计算散列的计算能力),且执行挖矿的奖励是跨所述池而共享的。
区块链网络的实例包括比特币(Bitcoin)、以太币(Ethereum)、达世币(Dash)及瑞波币(Ripple)。替代性密码技术包括“缠结(Tangle)”或有向非循环图(Directed AcyclicGraph)链,这些技术可放松对区块应排列成线性链的要求。
发明内容
本发明各实施例的方面涉及一种可编程网络存储装置,其被配置成实现用于存储区块链的区块且用于作为挖矿节点加入区块链网络的特征(即“区块链感知型(blockchain-aware)存储装置”)。本发明各实施例的方面还涉及被配置成管理区块链感知型存储装置的可编程网络硬件。
根据本发明的一个实施例,一种可编程数据存储装置包括:非易失性存储器;存储控制器,被配置成控制所述非易失性存储器;网络接口;以及现场可编程门阵列(fieldprogrammable gate array,FPGA),被配置成实现区块链算法且通过所述存储控制器将与所述区块链算法对应的区块链的至少一个区块存储在所述非易失性存储器中;以及处理器,具有与其耦合的存储器,所述存储器上存储有指令,所述指令在由所述处理器执行时使所述处理器通过所述网络接口发送及接收所述区块链的一个或多个区块且控制所述现场可编程门阵列对所述区块链的所述一个或多个区块执行所述区块链算法。
所述存储控制器可实现键值储存器(key-value store),且所述存储控制器可被配置成将所述区块链的所述至少一个区块存储为所述键值储存器的值并且将所述区块的散列值存储为键。
所述存储控制器可被配置成将第一类型的数据及第二类型的数据存储在所述非易失性存储器中,其中所述第一类型的数据可为区块链数据,且所述第二类型的数据可不同于所述第一类型的数据。
所述存储器上可存储有指令,所述指令在由所述处理器执行时使所述处理器将所述可编程数据存储装置用作区块链网络的区块链节点。
所述存储控制器可被配置成根据第一大小将数据存储在所述非易失性存储器中,所述区块链的每一区块可具有第二大小,且所述第二大小可为所述第一大小的倍数。所述第二大小可等于所述第一大小。
所述非易失性存储器可包括与非(NAND)闪存,所述存储控制器可包括闪存转换逻辑模块,且所述第一大小可为与非区块大小。
所述存储器上可进一步存储有指令,所述指令在由所述处理器执行时使所述处理器:加载用于将所述现场可编程门阵列编程为实现与所述区块链算法不同的第二区块链算法的位文件;且使用所述位文件来对所述现场可编程门阵列进行编程,以将所述现场可编程门阵列重新配置成实现所述第二区块链算法。
所述位文件可存储在所述非易失性存储器中。所述位文件可通过所述网络接口而接收。
所述现场可编程门阵列可包括密码加速器,且其中所述现场可编程门阵列可被配置成使用所述密码加速器来实现所述区块链算法。
所述可编程数据存储装置可进一步包括:第二非易失性存储器;第二存储控制器,被配置成控制所述第二非易失性存储器;第二网络接口;以及第二现场可编程门阵列,被配置成实现所述区块链算法;且通过所述第二存储控制器将与所述区块链算法对应的所述区块链的至少一个区块存储在所述第二非易失性存储器中;以及第二处理器,具有与其耦合的第二存储器,所述第二存储器上存储有指令,所述指令在由所述第二处理器执行时使所述第二处理器通过所述第二网络接口发送或接收所述区块链的一个或多个区块且控制所述第二现场可编程门阵列对所述区块链的所述一个或多个区块执行所述区块链算法。
根据本发明的一个实施例,一种可编程网络数据存储系统包括第一可编程数据存储装置、第二可编程数据存储装置、网络硬件,所述第一可编程数据存储装置包括:第一非易失性存储器;第一存储控制器,被配置成控制所述第一非易失性存储器;第一网络接口;以及第一现场可编程门阵列,被配置成实现第一区块链算法并通过所述第一存储控制器将与所述第一区块链算法对应的第一区块链的至少一个区块存储在所述第一非易失性存储器中;以及第一处理器,具有与其耦合的第一存储器,所述第一存储器上存储有指令,所述指令在由所述第一处理器执行时使所述第一处理器通过所述第一网络接口发送及接收所述第一区块链的一个或多个区块并控制所述第一现场可编程门阵列对所述第一区块链的所述一个或多个区块执行所述第一区块链算法,所述第二可编程数据存储装置包括:第二非易失性存储器;第二存储控制器,被配置成控制所述第二非易失性存储器;第二网络接口;以及第二现场可编程门阵列,被配置成实现第二区块链算法并通过所述第二存储控制器将与所述第二区块链算法对应的第二区块链的至少一个区块存储在所述第二非易失性存储器中;以及第二处理器,具有与其耦合的第二存储器,所述第二存储器上存储有指令,所述指令在由所述第二处理器执行时使所述第二处理器通过所述第二网络接口发送及接收所述第二区块链的一个或多个区块并控制所述第二现场可编程门阵列对所述第二区块链的所述一个或多个区块执行所述第二区块链算法,所述网络硬件被配置成:通过所述第一网络接口与所述第一可编程数据存储装置进行通信,通过所述第二网络接口与所述第二可编程数据存储装置进行通信,并与至少两个区块链网络进行通信,所述网络硬件包括第三处理器及第三存储器,所述第三存储器上存储有指令,所述指令在由所述第三处理器执行时使所述第三处理器从所述至少两个区块链网络接收区块链请求并将所述区块链请求发布到所述第一可编程数据存储装置及所述第二可编程数据存储装置中的至少一者。
所述第一区块链算法可不同于所述第二区块链算法,所述网络硬件的所述第三存储器上可进一步存储有指令,所述指令在由所述第三处理器执行时使所述第三处理器:判断所述区块链请求是否与所述第一区块链算法及所述第二区块链算法中的至少一者相关联;响应于确定所述区块链请求与所述第一区块链算法相关联,将所述区块链请求发布到所述第一可编程数据存储装置;且响应于确定所述区块链请求与所述第二区块链算法相关联,将所述区块链请求发布到所述第二可编程数据存储装置。
发布所述区块链请求的指令可包括在由所述第三处理器执行时使所述第三处理器进行以下操作的指令:将所述区块链请求划分成多个子任务;且将所述子任务发布到所述第一可编程数据存储装置及所述第二可编程数据存储装置。
所述第一存储器上可进一步存储有指令,所述指令在由所述第一处理器执行时使所述第一处理器:加载用于将所述第一现场可编程门阵列编程为实现与所述第一区块链算法不同的第三区块链算法的位文件;且使用所述位文件对所述第一现场可编程门阵列进行编程以将所述第一现场可编程门阵列重新配置成实现所述第三区块链算法,并且所述网络硬件的所述第三存储器上可进一步存储有指令,所述指令在由所述第三处理器执行时使所述第三处理器:控制所述第一可编程数据存储装置的所述第一处理器执行所述指令以将所述第一现场可编程门阵列重新配置成实现所述第三区块链算法。
所述网络硬件的所述第三存储器上可进一步存储有指令,所述指令在由所述第三处理器执行时使所述第三处理器:监视所述至少两个区块链网络中的每一者的状态;跟踪所述第一可编程数据存储装置的第一状态及所述第二可编程数据存储装置的第二状态;基于所述至少两个区块链网络中的每一者的所述状态、所述第一状态及所述第二状态来识别对所述第二可编程数据存储装置的重新指派;且根据所述重新指派将所述第二可编程数据存储装置的所述第二现场可编程门阵列重新配置成实现所述第一区块链算法。
所述第一存储控制器可实现键值储存器,且所述第一存储控制器可被配置成将所述第一区块链的所述至少一个区块存储为所述键值储存器的值并且将所述区块的散列值存储为键。
所述第一存储器上可存储有指令,所述指令在由所述第一处理器执行时使所述第一处理器将所述第一可编程数据存储装置用作所述至少两个区块链网络中的区块链网络处的区块链节点。
所述第一存储控制器可被配置成根据第一大小将数据存储在所述第一非易失性存储器中,所述第一区块链的每一区块可具有第二大小,且所述第二大小可为所述第一大小的倍数。
所述第一非易失性存储器可包括与非闪存,所述第一存储控制器可包括第一闪存转换逻辑模块,且所述第一大小可为与非区块大小。
附图说明
附图与说明书一起示出本发明的示例性实施例且与本说明一起用于解释本发明的原理。
图1是根据本发明一个实施例的区块链感知型存储装置的框图;
图2是根据本发明一个实施例的区块链感知型存储装置的闪存转换逻辑及闪存存储模块的示意图;
图3是根据本发明一个实施例连接到多个区块链感知型存储装置的区块链联网装置的示意图;
图4是根据本发明一个实施例的区块链联网装置的示意图,所述区块链联网装置具有连接到多个区块链感知型存储装置的区块链感知型业务路由器(traffic router);
附图标号说明:
20:网络;
30a:比特币/区块链网络;
30b:以太币/区块链网络;
30c:斯托瑞/区块链网络;
100:区块链感知型存储装置/驱动器;
100a、100b、100c:区块链感知型存储装置;
110、210:处理器;
120:动态随机存取存储器;
122:存储器控制器单元;
130:现场可编程门阵列;
132:密码加速器/密码引擎;
140:非易失性存储器/持久存储器件;
142:存储模块/与非闪存模块/与非闪存存储模块;
142B:区块;
142P:数据页;
144:存储控制器/闪存转换逻辑模块/闪存转换逻辑;
150:网络接口;
200:网络硬件;
220:区块链感知型业务路由器/业务路由器/业务管理器;
222:策略引擎;
224:负载平衡器;
226:资源管理器;
228:虚拟IP提供者;
230:区块链请求;
240:计算单元。
具体实施方式
在下文中,将参照附图更详细地阐述示例性实施例,其中在所有附图中相同的参考编号指代相同的元件。然而,本发明可被实施为各种不同形式,而不应被解释为仅限于本文中所示出的实施例。而是,这些实施例是作为实例而提供,以使本发明是透彻且完整的并且将向所属领域中的技术人员全面地传达本发明的方面及特征。因此,可不阐述对于使所属领域中的普通技术人员完全理解本发明的方面及特征来说不必要的过程、元件及技术。除非另有说明,否则在所有附图及书面说明通篇中,相同的参考编号表示相同的元件,且因此,将不进行赘述。
本文中所使用的用语仅用于阐述特定实施例,而非旨在限制本发明。如本文中所使用,除非上下文另有清楚指示,否则单数形式“一个”旨在也包括复数形式。应进一步理解,在本说明书中所使用的用语“包括”指明所陈述特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。如本文中所使用,用语“及/或”包括相关联所列各项中的一者或多者的任意及所有组合。当位于一系列元件之前时,例如“…中的至少一者”等表达语修饰整个所述一系列元件且不修饰所述一系列中的个别元件。
网络固态驱动器(solid state drive,SSD)处理输入/输出(input/output,I/O)数据包,并向非易失性存储器或持久存储器件(storage)(例如与非闪存存储器)发布读取及写入命令。每一网络SSD具有其自身的处理器以向外界公开网络接口(例如,处理器可被配置成实现联网堆栈(stack),例如传输控制协议/互联网协议(Transmission ControlProtocol/Internet protocol,TCP/IP)堆栈)。网络SSD也可包括例如中央处理器(centralprocessing unit,CPU)、现场可编程门阵列(FPGA)等处理器以执行额外处理。
现场可编程门阵列(FPGA)包括可编程逻辑区块的集合及可重新配置互连的层次,所述可重新配置互连容许按照配置文件(通常被称为“位文件”)的规定将所述可编程逻辑区块选择性地布线在一起。因此,FPGA可被配置及重新配置成在实现与专用集成电路(application specific integrated circuit,ASIC)相当的性能(例如,速度及能效)的同时执行各种功能(类似于通用处理器)。
用于实现区块链矿工节点的比较性系统通常包括使用在计算能力强大的计算机系统上运行的挖矿软件。尽管比特币挖矿最初是在通用中央处理器(CPU)上有利润地执行(例如,挖矿的奖励超过使处理器运作的成本),然而在许多区块链协议中,挖矿的难度(例如,挖掘区块需要执行的计算工作量)通常随着区块链上的区块的数目增加。因此,随着时间推移,区块链挖矿已移向为特定区块链协议所需的计算而提供更高的每瓦特性能(performance per watt)的处理器,以使得所述计算在经济上是明智的(例如,有利润的)。举例来说,图形处理器(graphical processing unit,GPU)的架构非常适合于挖掘比特币。
对于一些区块链协议,与在现场可编程门阵列(FPGA)及专用集成电路上进行的挖矿相比,甚至基于GPU的实现方式也是相对低效的。尽管ASIC通常可比FPGA快速,然而由ASIC实现的电路是永久性的(例如,ASIC无法被重新配置)且因此无法适于实现新的算法或不同的算法,而FPGA可通过以另一位文件对其进行编程而被重新配置。
除计算能力以外,为了执行挖矿算法,区块链矿工节点还通常需要存取用于存储分布式分类账(例如,区块链)的至少一部分的持久数据存储器件。
矿工节点因对其处理器的高使用率以及为使处理器保持在其标准运作范围内所需的显著冷却量而通常消耗显著的功率量,而FPGA在提供类似的性能时通常不需要如此多的功率,且因此,通常不需要如此多的冷却。
因此,本发明各实施例的方面涉及一种可编程网络数据存储装置(例如网络固态驱动器(SSD)),其被配置成实现用于存储区块链的区块且用于作为挖矿节点加入对等区块链网络的特征(即,“区块链感知型存储装置”)。
图1是根据本发明一个实施例的区块链感知型存储装置的框图。在图1所示的实施例中,区块链感知型存储装置100包括被集成到单个装置中(例如,聚集在单个电路板上及/或容置在单个壳体内)的若干组件。图1所示区块链感知型存储装置100包括处理器110,处理器110被配置成控制区块链感知型存储装置100的操作。处理器110可耦合到非易失性存储器(例如,与以下所述的非易失性存储器140分开的可擦可编程只读存储器(erasableprogrammable read-only memory,EPROM)或闪存存储器),所述非易失性存储器存储用于控制区块链感知型存储装置100的固件程序指令。处理器110被配置成通过存储器控制器单元(memory controller unit,MCU)122在动态随机存取存储器(dynamic random accessmemory,DRAM)120中存储及检索数据。处理器110还与现场可编程门阵列(FPGA)130进行通信,现场可编程门阵列(FPGA)130可包括密码加速器132。在本发明的一些实施例中,密码加速器132与FPGA 130分开(例如,单独的独立芯片),且与FPGA 130进行通信。FPGA 130还可通过MCU 122来存取DRAM 120。处理器110、DRAM 120及FPGA 130均被配置成通过存储控制器144向非易失性存储器或持久存储器件140存储数据及从非易失性存储器或持久存储器件140检索数据,非易失性存储器或持久存储器件140可包括存储模块142。更具体来说,在一些实施例中,非易失性存储器140的存储模块142包括与非闪存存储器,且存储控制器144包括闪存转换逻辑(flash translation logic,FTL)模块144,闪存转换逻辑(FTL)模块144被配置成在逻辑读取及写入命令和与非闪存模块142中数据的底层表示或存储(例如,由与非页形成的与非区块,例如参见图2)之间进行转换。处理器110及FPGA 130还可与网络接口150进行通信,以在网络20(例如,以太网连接)上传输及接收数据。
本发明各实施例的方面涉及利用与网络20连接的区块链感知型存储装置100的FPGA 130来部署分布式分类账(例如,区块链)。区块链感知型存储装置100然后可被注册为区块链节点(例如,挖矿节点),其中区块链感知型存储装置100将区块链的区块(例如,完整分类账或其一部分的副本)存储在非易失性存储器140中。
在FPGA 130中实现与特定区块链协议(例如,比特币、以太币或达世币)相关联的特定挖矿算法,FPGA 130从非易失性存储器140读取及向非易失性存储器140写入区块链区块数据。区块链算法通常涉及计算例如安全散列算法256(sha-256)、安全散列算法1(sha-1)、凯查克(Keccak)、思科瑞普特(scrypt)等密码散列(cryptographic hash)以执行挖矿协议的工作量证明(PoW)部分并验核从其他节点接收的区块链的区块。
因此,通过在硬件中实现区块链算法及密码散列,实现了能量使用及冷却的显著减少。例如,参见米塔尔·斯帕西(Mittal,Sparsh)及杰弗里·S·维特(JeffreyS.Vetter.)的第3.2章节“分析及改善GPU能效的方法综述(A survey of methods foranalyzing and improving GPU energy efficiency)”(ACM计算综述(ComputingSurveys,CSUR)47.2(2015):19),以了解将在例如GPU及FPGA等专门硬件上实现算法的能效与在通用CPU上实现那些算法的能效进行比较的一系列参考文献。
此外,由于挖矿算法是在FPGA 130中实现,因此FPGA 130可被重新配置成实现不同的挖矿算法。在一些实施例中,非易失性存储器140存储不同的位文件,其中每一位文件对应于不同挖矿算法(例如,针对比特币、以太币或达世币的挖矿算法)的实现,且处理器110被配置成以所述位文件中的特定一者来对FPGA 130进行重新编程。举例来说,区块链感知型存储装置100的用户可决定将区块链感知型存储装置100重新配置成挖掘以太币而非比特币,且可通过向区块链感知型存储装置100发送命令来这样操作,并且区块链感知型存储装置100加载与以太币挖矿算法对应的位文件并使用所加载的位文件来对FPGA 130进行重新编程(例如,刷写(flash))。在一些实施例中,位文件是从外部源被供应到区块链感知型存储装置100(例如,在网络20上通过网络接口150),从而容许与新(或已修订)的算法对应的新的位文件被编程到FPGA 130中及/或存储在非易失性存储器140中。
图2是根据本发明一个实施例的区块链感知型存储装置的闪存转换逻辑及闪存存储模块的示意图,其中非易失性存储器140被实现为与非闪存。如图2中所示,与非闪存存储模块142包括被组织成区块142B的数据页142P,其中每一区块包含多个页。因与非闪存存储技术的实现细节,通常可逐页地读取及写入数据,但擦除数据是逐区块地执行。闪存转换逻辑144在逻辑扇区写入及读取与实施方式专用(implementation-specific)写入及读取命令(例如,页写入、区块擦除及页读取)之间进行转换。在存储装置存取的逻辑区块模式中,逻辑扇区的大小可例如为512字节。在一些比较性与非闪存装置(例如,固态驱动器)中,每一页可具有4KiB的大小,且每一区块可具有4MiB的大小。
在使用闪存存储器的固态驱动器(SSD)(以及执行无用单元收集(garbagecollection)的其他装置)中,闪存存储器通常被组织成含有多个页的擦除区块。每一页可呈三种状态中的一种:空闲(当前未存储任何数据)、有效(当前存储数据)及无效(先前存储有效数据,但不再存储有效数据且仍非空闲的)。
当向闪存存储器写入新的数据时,对空闲页进行定位并将数据写入到所述空闲页。然后,将所述页标记为存储有效数据。在擦除区块内,各页是有序的。然而,闪存存储器通常可在页层级上被一次写入;闪存存储器不能在页层级上被盖写。因此,当应用将改变存储在闪存存储器中的数据时,含有所述数据的整个页被写入到闪存存储器中新的页。然后,原始页被标记为无效。无用单元收集是SSD以页为擦除区块粒度(granularity)来回收无效页的过程。此种过程包括重置区块中的所有页并再一次将所述页标记为空闲的。
页可具有三种而非仅两种可能状态的原因被归于无用单元收集是如何执行的。如果无用单元收集是在单独的页上执行,则将不需要无效状态:数据一失效,便可发生无用单元收集,且所述页被立即腾空。然而,无用单元收集通常是在比单独的页大的组块(chunk)上运作。这些组块被称为擦除区块或超级区块(superblock),且可包含任何数目的页。当区块经受无用单元收集时,所述区块中的每一页被置成空闲状态。因此,所述区块中任何当前有效的数据必须在当前区块中的页可被擦除之前被写入到闪存存储器中处于某一其他区块中的另一空闲页(此种过程被称为编程)。如果区块中的任何数据一失效便起始无用单元收集,则SSD将花费显著量的时间来将数据从所述区块中的有效页移动到其他区块。除了编程来自擦除区块的有效数据本身可增添显著开销(overhead)的事实之外,通常在闪存存储器仅被存取有限次数后,所述存储器便可能变得不可靠(或者更糟地,不能使用)。因此,期望将编程来自擦除区块的有效数据所花费的时间量最小化。然而,与此同时,无用单元收集不能被推迟至擦除区块中的每一页均被标记为无效:闪存存储器可能最终会导致每一区块仅含有被标记为有效或无效的页(即,无空闲的页),这将意味着不能向闪存存储器写入其他数据。
区块链算法通常是逐区块(区块链的区块)地运作。举例来说,区块链感知型存储装置100的FPGA 130可一次单个区块地或者以区块链的整数个区块为单位来接收并验证区块链的传入区块。同样地,可一次仅使用单个区块的信息或者以区块链的整数个区块为单位来执行挖矿。
如果与非区块的大小不与区块链区块的大小一致,则例如写入命令可能使区块链区块跨两个或更多个不同的与非区块延伸且可能使与非区块中的一些与非区块仅部分地填充有来自区块链区块的数据。因此,如果区块链区块稍后被从非易失性存储器140删除,则在无用单元收集器对非易失性存储器140进行碎片重组(defragment)时,可发生写入放大问题。
因此,本发明各实施例的一些方面涉及存储模块142及闪存转换逻辑144,其中存储模块142的与非区块的大小及/或与非页的大小与区块链的区块的单位大小一致。举例来说,与非区块的大小可被设定成使得区块链区块的大小是与非区块的大小的倍数。在一些实施例中,所述倍数是1(例如,与非区块的大小与区块链区块的大小是相同的大小)。举例来说,根据预期在区块链感知型存储装置100上使用的区块链协议,与非区块可具有例如1MiB、2MiB或20MiB的大小。这样一来,可减少或避免写入放大,因为数据的删除将是以和与非区块的大小一致的方式执行,从而减少或避免与非区块的数据仅部分地被删除的问题。此外,将页读取与单个区块一致还可在读取速度上提供一些改善。此外,在区块链系统中,一旦区块成为区块链的一部分,所述区块便是不可变的,这意味着区块链算法不需要在正常操作中盖写或修改现有的区块。区块的此种不可变性改善与非闪存存储模块142的耐久性(因为严格来说不需要进行重写),且减少或消除无用单元收集的开销。在其中与非区块大小与区块链的区块的大小一致的一些实施例中,根本不需要在区块链的与非存储区块上运行无用单元收集过程,从而容许存储控制器提供更好且更稳定的I/O性能,因为将需要更少的时间或实质上不需要时间来执行无用单元收集。
用作键值储存器
在本发明的一些实施例中,区块链感知型存储装置100实现其中基于唯一“键”来存取数据“值”的键值接口,而非传统的“逻辑区块”接口。对于键值数据存储装置的更具体实例,请参见在2018年1月19日在美国专利与商标局提出申请且名为“键值SSD(Key ValueSSD)”的美国专利申请第15/876,028号,所述美国专利申请的全部公开内容并入本文中供参考。
根据本发明的一个实施例,存储在区块链感知型存储装置100中的区块链(或其部分)的每一区块对应于单个“值”,且区块的散列(或散列值)被视为其键。因此,键值接口容许通过供应区块链的区块的散列作为键来检索所述区块。此外,如上所述,与非页及/或与非区块的大小可被选择成与区块链的区块的大小相匹配,且每一键(或散列值)可用于查找单个对应的与非区块,从而在区块链区块的大小和与非区块的大小之间实现精密的或准确的逻辑-物理映射,从而进一步改善区块链感知型存储装置100的速度及持久性,如上所述。
用作标准SSD
根据本发明的一些实施例,区块链感知型存储装置100仍可运作以存储非区块链专用数据,例如用于重新配置FPGA 130的前述位文件、用于操作处理器110(例如,用于对固件进行重新刷写)的程序指令、用户数据、非区块链相关的键与值等。在一些实施例中,在向非易失性存储器140存储及/或从非易失性存储器140检索非区块链数据时不涉及FPGA130。
区块链感知型存储装置100的应用(包括存储非区块链专用数据)的一个实例是基于区块链的经加密分布式云存储方案,例如斯托瑞(Storj)(例如,参见威尔金森·肖恩(Wilkinson,Shawn)等人的“斯托瑞对等云存储网络(Storj a peer-to-peer cloudstorage network)”(2014))。斯托瑞的用户可将其自身的存储空间出租给其他用户,以接收奖励。相反地,斯托瑞的用户还可向其他用户支付以将所述用户的数据存储在所述其他用户的存储装置上。通常,应用专用客户端软件(例如,StorjShare守护进程)在用户的节点上运行,以设置所述节点并在斯托瑞网络上对所述节点进行注册。
根据本发明的一个实施例,在区块链感知型存储装置100的处理器110及/或FPGA130上安装并运行应用专用客户端软件,以使得区块链感知型存储装置100自身变为区块链网络上的节点,而非设置完整的计算机系统、将一个或多个标准存储装置附接到计算机系统及在网络上对所述计算机系统进行注册。因此,区块链感知型存储装置100容许用户在不设置完整计算机系统的情况下轻易地对节点进行注册以加入区块链网络,同时还获得由FPGA 130及密码加速器132提供的更高效挖矿的益处。(举例来说,如上所述,由斯托瑞系统的其他用户存储的数据可作为非区块链数据来进行存储,而斯托瑞系统的分布式分类账部分可作为区块链数据来进行处理及存储。)
此外,在一些实施例中,FPGA 130及密码引擎132使得对数据的加密及解密能够被加速,从而进一步改善系统的速度及/或能效。另外,FPGA 130还可被配置成对用户数据进行压缩及解压缩,从而潜在地容许将更多的用户数据存储在区块链感知型存储装置100上。
网络交换机
本发明各实施例的方面涉及被配置成管理区块链感知型存储装置的可编程网络硬件。图3是根据本发明一个实施例连接到多个区块链感知型存储装置的区块链联网装置的示意图。如图3中所示,网络硬件200连接到三个不同的区块链感知型存储装置100,所述三个不同的区块链感知型存储装置100中的每一者经由网络(例如,以太网)连接而连接到网络硬件200。网络硬件200连接到网络20(例如,互联网),网络20提供对不同对等区块链网络(例如比特币30a、以太币30b及斯托瑞30c)的存取。在本发明的一些实施例中,网络硬件200被实现为软件定义网络(software defined network,SDN)。在本发明的一些实施例中,网络硬件200包括处理器及存储器,且被配置成基于存储在网络硬件200的存储器中的逻辑及数据(例如,路由表)而在区块链感知型存储装置100与网络20之间交换或路由数据(例如,数据包)。
在本发明的一些实施例中,网络硬件200(例如,路由器或交换机)以直通模式(pass-through mode)运作,在所述直通模式中,网络硬件200充当不进行额外计算的虚设装置。而是,网络硬件200后面的单独的驱动器100被注册到区块链网络30a、30b、30c中的各者上。在一些实施例中,区块链感知型存储装置100使用存储在区块链感知型存储装置100的固件中并由处理器110执行的程序逻辑来独立地判断将要加入哪些区块链网络30a、30b、30c(例如,基于通过网络20所检索的关于以下的信息:网络中的任一者上的当前挖矿经济值、使区块链感知型存储装置100运作的当前电力成本、以及区块链感知型存储装置100的当前状态(例如非易失性存储器140中的空闲空间量))。
在本发明的一些实施例中,所述网络硬件被配置成用作区块链感知型业务路由器模块,并根据特定策略来从相连的区块链感知型存储装置分配计算资源及存储资源以执行挖矿操作。图4是根据本发明一个实施例的区块链联网装置的示意图,所述区块链联网装置具有连接到多个区块链感知型存储装置的区块链感知型业务路由器。如图4中所示,网络硬件200可包括区块链感知型业务路由器220。在一些实施例中,区块链感知型业务路由器220是使用被集成到网络硬件200中的处理器210来实现,例如被配置成执行区块链感知型业务路由决策的通用中央处理器(CPU),如以下更详细地阐述。
如图4中所示,在一些实施例中,业务路由器220包括策略引擎222、负载平衡器224、资源管理器226及虚拟IP提供者228。虚拟IP提供者228被配置成为网络存储节点分配虚拟IP地址。资源管理器226被配置成跟踪有多少个区块链感知型存储装置100连接到网络硬件200,其中执行“添加(Add)”命令以将区块链感知型存储装置100向资源管理器226注册,“移除(Remove)”命令是将区块链感知型存储装置100从资源管理器226解除注册,且“更新状态(UpdateStatus)”命令用于检查相连的区块链感知型存储装置100的当前状态。策略引擎222存储并实现用于向特定区块链网络(例如,比特币30a、以太币30b及斯托瑞30c)注册的策略,且主动地监视不同网络的奖励系统以确定任何给定网路上的挖矿值。负载平衡器224管理相连的资源(例如,相连的区块链感知型存储装置100)以共享并重引导传入的区块链请求230(例如,要验证比特币区块的请求、要存储来自斯托瑞网络的数据的请求等等)。
在图4所示的实施例中,区块链感知型存储装置100a被配置成处置比特币请求,区块链感知型存储装置100b被配置成处置以太币请求,且区块链感知型存储装置100c被配置成处置斯托瑞请求:每一区块链感知型存储装置100的FPGA 130均被编程或配置成实现其被指派来处置的对应区块链算法。根据本发明的一些实施例,策略引擎222基于其对各种网路上的当前挖矿值的监视来确定区块链感知型存储装置100可被重新指派成在不同的区块链网络上运作。举例来说,如果以太币挖矿值已增加而比特币挖矿值未对应地增加,则策略引擎222可确定将区块链感知型存储装置100中的额外一者(例如,区块链感知型存储装置100a)重新配置成也挖掘以太币将更具成本效益。因此,业务路由器220识别更高效或更有价值的重新指派并向区块链感知型存储装置100a传输应将其FPGA 130重新配置或重新编程为实现以太币挖矿算法(例如,加载位文件以将FPGA重新编程为实现以太币挖矿算法,如上所述)的命令,且在资源管理器226中更新区块链感知型存储装置100a的状态以指示区块链感知型存储装置100a现在被配置成在以太币网络上运作。因此,与以太币网络有关的任何新的请求均可由业务路由器220路由到被配置成处置以太币请求的区块链感知型存储装置100(在此实例中,为区块链感知型存储装置100a及区块链感知型存储装置100b)中的任一者。
在本发明的一些实施例中,网络硬件200还包括可从相连的区块链感知型存储装置100创建挖矿池的额外计算单元240(其可包括图3所示处理器210),例如FPGA、基板管理控制器(baseboard management controller,BMC)及/或CPU。在一些实施例中,所述计算单元也执行挖矿操作(例如,网络硬件200也可为矿工,且在一些实施例中,也包括密码加速器)。在一些此类实施例中,由网络硬件200实现的挖矿节点通过由网络硬件200创建的虚拟IP地址被公开,以存取内部挖矿节点。如上所述,区块链感知型存储装置100中的不同者可被配置成处置来自不同区块链网络的请求且实现不同的区块链算法,并且业务管理器220相应地将请求路由到不同的节点。被配置成处置来自同一区块链网络的请求的不同区块链感知型存储装置100可被视为同一挖矿池的成员。
另外,在其中网络硬件200自身被视为挖矿节点的一些实施例中,网络硬件200的业务管理器220被配置成将与执行区块链挖矿算法有关的一些或全部计算及存储任务卸载给与网络硬件200连接的区块链感知型存储装置100中的一者或多者。在一些实施例中,传入的区块链请求被直接路由到被配置成处置那些类型的请求的区块链感知型存储装置100(例如,装置的FPGA 130被配置成执行对应的区块链挖矿算法)。在一些实施例中,挖矿请求的各种子任务在被配置成处置那些类型的请求的一个或多个区块链感知型存储装置100当中被划分。
因此,本发明各实施例的方面涉及可编程区块链感知型存储装置,其被配置成执行与区块链网络相关联的操作,例如挖掘区块链的区块及验证区块链的区块。根据本发明一些实施例的区块链感知型存储装置的非易失性存储器可被配置成使得对存储器的存取与区块链的区块的大小一致,从而减少存储器分段存储(fragmentation)、减少对无用单元收集的需要并减少写入放大效应。在本发明的一些实施例中,区块链感知型网络硬件(例如网络路由器或网络交换机)被配置成通过例如将挖矿任务分发到一个或多个区块链感知型存储装置并基于需求将所述区块链感知型存储装置重新配置成实现不同的算法来管理所述装置。
尽管已结合某些示例性实施例阐述了本发明,然而,应理解,本发明并非仅限于所公开的实施例,而是相反,旨在涵盖被包含在所附权利要求书及其等效内容的精神及范围内的各种修改及等效构造。
Claims (21)
1.一种可编程数据存储装置,包括:
第一非易失性存储器;
第一存储控制器,被配置成控制所述第一非易失性存储器;
第一网络接口;且
第一现场可编程门阵列,被配置成:
实现第一区块链算法;且
通过所述第一存储控制器将与所述第一区块链算法对应的区块链的至少一个区块存储在所述第一非易失性存储器中;以及
第一处理器,包括第一存储器,所述第一存储器被配置成存储第一指令,且
其中所述第一指令在由所述第一处理器执行时使所述第一处理器:
通过所述第一网络接口发送及接收所述区块链的一个或多个区块;且
控制所述第一现场可编程门阵列对所述区块链的所述一个或多个区块执行所述第一区块链算法。
2.根据权利要求1所述的可编程数据存储装置,其中所述第一存储控制器实现键值储存器,且
其中所述第一存储控制器被配置成将所述区块链的所述至少一个区块存储为所述键值储存器的值并且将区块的散列值存储为键。
3.根据权利要求1所述的可编程数据存储装置,其中所述第一存储控制器被配置成将第一类型的数据及第二类型的数据存储在所述第一非易失性存储器中,其中所述第一类型的所述数据是区块链数据,且所述第二类型的所述数据不同于所述第一类型的所述数据。
4.根据权利要求1所述的可编程数据存储装置,其中所述第一存储器进一步被配置成存储第二指令,所述第二指令在由所述第一处理器执行时使所述第一处理器将所述可编程数据存储装置用作区块链网络的区块链节点。
5.根据权利要求1所述的可编程数据存储装置,其中所述第一存储控制器被配置成根据第一大小将数据存储在所述第一非易失性存储器中,
其中所述区块链的每一区块具有第二大小,且
其中所述第二大小是所述第一大小的倍数。
6.根据权利要求5所述的可编程数据存储装置,其中所述第二大小等于所述第一大小。
7.根据权利要求5所述的可编程数据存储装置,其中所述第一非易失性存储器包括与非闪存,
其中所述第一存储控制器包括闪存转换逻辑模块,且
其中所述第一大小是与非区块大小。
8.根据权利要求1所述的可编程数据存储装置,其中所述第一存储器进一步被配置成存储第三指令,
其中所述第三指令在由所述第一处理器执行时使所述第一处理器:
加载用于将所述第一现场可编程门阵列编程为实现与所述第一区块链算法不同的第二区块链算法的位文件;以及
使用所述位文件来对所述第一现场可编程门阵列进行编程,以将所述第一现场可编程门阵列重新配置成实现所述第二区块链算法。
9.根据权利要求8所述的可编程数据存储装置,其中所述位文件存储在所述第一非易失性存储器中。
10.根据权利要求8所述的可编程数据存储装置,其中所述位文件是通过所述第一网络接口而接收。
11.根据权利要求1所述的可编程数据存储装置,其中所述第一现场可编程门阵列包括密码加速器,且进一步被配置成使用所述密码加速器来实现所述第一区块链算法。
12.根据权利要求1所述的可编程数据存储装置,进一步包括:
第二非易失性存储器;
第二存储控制器,被配置成控制所述第二非易失性存储器;
第二网络接口;且
第二现场可编程门阵列,被配置成:
实现所述第一区块链算法;且
通过所述第二存储控制器将与所述第一区块链算法对应的所述区块链的至少一个区块存储在所述第二非易失性存储器中;以及
第二处理器,包括第二存储器,所述第二存储器被配置成存储第四指令,且
其中所述第四指令在由所述第二处理器执行时使所述第二处理器:
通过所述第二网络接口发送或接收所述区块链的所述一个或多个区块;且
控制所述第二现场可编程门阵列对所述区块链的所述一个或多个区块执行所述第一区块链算法。
13.一种可编程网络数据存储系统,包括:
第一可编程数据存储装置,包括:
第一非易失性存储器,
第一存储控制器,被配置成控制所述第一非易失性存储器,
第一网络接口,
第一现场可编程门阵列,被配置成实现第一区块链算法并通过所述第一存储控制器将与所述第一区块链算法对应的第一区块链的至少一个区块存储在所述第一非易失性存储器中;以及
第一处理器,包括第一存储器,所述第一存储器被配置成存储第一指令;
第二可编程数据存储装置,包括:
第二非易失性存储器,
第二存储控制器,被配置成控制所述第二非易失性存储器,
第二网络接口,且
第二现场可编程门阵列,被配置成实现第二区块链算法并通过所述第二存储控制器将与所述第二区块链算法对应的第二区块链的至少一个区块存储在所述第二非易失性存储器中;以及
第二处理器,包括第二存储器,所述第二存储器被配置成存储第二指令;以及
网络硬件,被配置成通过所述第一网络接口与所述第一可编程数据存储装置进行通信,通过所述第二网络接口与所述第二可编程数据存储装置进行通信,并与至少两个区块链网络进行通信,且包括第三处理器及第三存储器,所述第三存储器被配置成存储第三指令,
其中所述第一指令在由所述第一处理器执行时使所述第一处理器通过所述第一网络接口发送及接收所述第一区块链的一个或多个区块并控制所述第一现场可编程门阵列对所述第一区块链的所述一个或多个区块执行所述第一区块链算法,
其中所述第二指令在由所述第二处理器执行时使所述第二处理器通过所述第二网络接口发送及接收所述第二区块链的一个或多个区块并控制所述第二现场可编程门阵列对所述第二区块链的所述一个或多个区块执行所述第二区块链算法,且
其中所述第三指令在由所述第三处理器执行时使所述第三处理器从所述至少两个区块链网络接收区块链请求并将所述区块链请求发布到所述第一可编程数据存储装置及所述第二可编程数据存储装置中的至少一者。
14.根据权利要求13所述的系统,其中所述第一区块链算法不同于所述第二区块链算法,
其中所述网络硬件的所述第三存储器进一步存储第四指令,
其中所述第四指令在由所述第三处理器执行时使所述第三处理器:
判断所述区块链请求是否与所述第一区块链算法及所述第二区块链算法中的至少一者相关联,
在其中所述区块链请求与所述第一区块链算法相关联的情形中,将所述区块链请求发布到所述第一可编程数据存储装置,且
在所述区块链请求与所述第二区块链算法相关联的情形中,将所述区块链请求发布到所述第二可编程数据存储装置。
15.根据权利要求14所述的系统,其中所述第四指令包括第五指令,
其中所述第五指令在由所述第三处理器执行时使所述第三处理器将所述区块链请求划分成多个子任务并将所述子任务发布到所述第一可编程数据存储装置及所述第二可编程数据存储装置。
16.根据权利要求13所述的系统,其中所述第一存储器进一步存储第六指令,且所述第三存储器进一步存储第七指令,
其中所述第六指令在由所述第一处理器执行时使所述第一处理器加载用于将所述第一现场可编程门阵列编程为实现与所述第一区块链算法不同的第三区块链算法的位文件并使用所述位文件对所述第一现场可编程门阵列进行编程以将所述第一现场可编程门阵列重新配置成实现所述第三区块链算法,且
其中所述第七指令在由所述第三处理器执行时使所述第三处理器控制所述第一处理器执行所述第七指令以将所述第一现场可编程门阵列重新配置成实现所述第三区块链算法。
17.根据权利要求13所述的系统,其中所述第三存储器进一步存储第八指令,
其中所述第八指令在由所述第三处理器执行时使所述第三处理器:
监视所述至少两个区块链网络中的每一者的状态,
跟踪所述第一可编程数据存储装置的第一状态及所述第二可编程数据存储装置的第二状态,
基于所述至少两个区块链网络中的每一者的所述状态、所述第一状态及所述第二状态来识别对所述第二可编程数据存储装置的重新指派,且
根据所述重新指派将所述第二现场可编程门阵列重新配置成实现所述第一区块链算法。
18.根据权利要求13所述的系统,其中所述第一存储控制器实现键值储存器,且
其中所述第一存储控制器被配置成将所述第一区块链的所述至少一个区块存储为所述键值储存器的值并且将区块的散列值存储为键。
19.根据权利要求13所述的系统,其中所述第一存储器进一步存储第九指令,
其中所述第九指令在由所述第一处理器执行时使所述第一处理器将所述第一可编程数据存储装置用作所述至少两个区块链网络中的区块链网络处的区块链节点。
20.根据权利要求13所述的系统,其中所述第一存储控制器被配置成根据第一大小将数据存储在所述第一非易失性存储器中,
其中所述第一区块链的每一区块具有第二大小,且
其中所述第二大小是所述第一大小的倍数。
21.根据权利要求20所述的系统,其中所述第一非易失性存储器包括与非闪存,
其中所述第一存储控制器包括第一闪存转换逻辑模块,且
其中所述第一大小是与非区块大小。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862634651P | 2018-02-23 | 2018-02-23 | |
US62/634,651 | 2018-02-23 | ||
US15/981,460 US10880071B2 (en) | 2018-02-23 | 2018-05-16 | Programmable blockchain solid state drive and switch |
US15/981,460 | 2018-05-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110187827A true CN110187827A (zh) | 2019-08-30 |
CN110187827B CN110187827B (zh) | 2021-10-15 |
Family
ID=67686267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910111731.6A Active CN110187827B (zh) | 2018-02-23 | 2019-02-12 | 可编程数据存储装置及可编程网络数据存储系统 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10880071B2 (zh) |
JP (1) | JP7169208B2 (zh) |
KR (1) | KR102670922B1 (zh) |
CN (1) | CN110187827B (zh) |
TW (1) | TWI781248B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110751555A (zh) * | 2019-09-25 | 2020-02-04 | 支付宝(杭州)信息技术有限公司 | 基于fpga实现合约调用的方法及装置 |
CN112564924A (zh) * | 2020-11-12 | 2021-03-26 | 深圳宏芯宇电子股份有限公司 | 计算机扩展卡及区块链终端设备 |
CN113254372A (zh) * | 2020-08-07 | 2021-08-13 | 广东高云半导体科技股份有限公司 | 用两阶段配置过程提供可编程微控制器的方法和系统 |
WO2022141561A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳大学 | 一种面向区块链用户节点的数据存储方法及装置 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10419225B2 (en) | 2017-01-30 | 2019-09-17 | Factom, Inc. | Validating documents via blockchain |
US10411897B2 (en) | 2017-02-17 | 2019-09-10 | Factom, Inc. | Secret sharing via blockchains |
US10817873B2 (en) | 2017-03-22 | 2020-10-27 | Factom, Inc. | Auditing of electronic documents |
US10880071B2 (en) * | 2018-02-23 | 2020-12-29 | Samsung Electronics Co., Ltd. | Programmable blockchain solid state drive and switch |
US11134120B2 (en) * | 2018-05-18 | 2021-09-28 | Inveniam Capital Partners, Inc. | Load balancing in blockchain environments |
US10783164B2 (en) | 2018-05-18 | 2020-09-22 | Factom, Inc. | Import and export in blockchain environments |
US11170366B2 (en) | 2018-05-18 | 2021-11-09 | Inveniam Capital Partners, Inc. | Private blockchain services |
KR102288045B1 (ko) * | 2018-05-21 | 2021-08-10 | 성신여자대학교 연구 산학협력단 | 블록 체인 기반 대상 데이터 관리 방법 및 장치 |
US10972279B2 (en) * | 2018-06-07 | 2021-04-06 | International Business Machines Corporation | Efficient validation for blockchain |
US11328290B2 (en) | 2018-08-06 | 2022-05-10 | Inveniam Capital Partners, Inc. | Stable cryptocurrency coinage |
US11989208B2 (en) | 2018-08-06 | 2024-05-21 | Inveniam Capital Partners, Inc. | Transactional sharding of blockchain transactions |
US11276056B2 (en) | 2018-08-06 | 2022-03-15 | Inveniam Capital Partners, Inc. | Digital contracts in blockchain environments |
US11520773B2 (en) | 2018-10-09 | 2022-12-06 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
US11303442B2 (en) * | 2018-10-09 | 2022-04-12 | International Business Machines Corporation | Blockchain notification board storing blockchain resources |
US11436046B2 (en) * | 2018-10-11 | 2022-09-06 | Powerchip Semiconductor Manufacturing Corporation | Electronic device with memory processor-based multiprocessing architecture and operation method thereof |
US11296894B2 (en) * | 2018-10-29 | 2022-04-05 | Seagate Technology Llc | Storage medium including computing capability for authentication |
US10861008B2 (en) * | 2018-12-21 | 2020-12-08 | Capital One Services, Llc | System and method for optimizing cryptocurrency transactions |
US10637644B1 (en) | 2018-12-21 | 2020-04-28 | Capital One Services, Llc | System and method for authorizing transactions in an authorized member network |
CN110716724B (zh) * | 2019-09-25 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 基于fpga实现隐私区块链的方法及装置 |
US11444749B2 (en) | 2020-01-17 | 2022-09-13 | Inveniam Capital Partners, Inc. | Separating hashing from proof-of-work in blockchain environments |
CN111309482B (zh) * | 2020-02-20 | 2023-08-15 | 浙江亿邦通信科技有限公司 | 基于哈希算法的区块链任务分配系统、装置及可存储介质 |
US11935120B2 (en) | 2020-06-08 | 2024-03-19 | Liquid-Markets GmbH | Hardware-based transaction exchange |
CN111782656B (zh) * | 2020-06-30 | 2024-04-12 | 京东科技信息技术有限公司 | 数据读写方法及装置 |
KR20220020717A (ko) * | 2020-08-12 | 2022-02-21 | 삼성전자주식회사 | 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 메모리 시스템 |
CN112235425B (zh) * | 2020-12-14 | 2021-03-09 | 长沙理工大学 | 一种区块链的矿池形成方法、装置、系统及可读存储介质 |
US12008526B2 (en) | 2021-03-26 | 2024-06-11 | Inveniam Capital Partners, Inc. | Computer system and method for programmatic collateralization services |
US12007972B2 (en) | 2021-06-19 | 2024-06-11 | Inveniam Capital Partners, Inc. | Systems and methods for processing blockchain transactions |
US20230112448A1 (en) * | 2021-10-12 | 2023-04-13 | Seagate Technology Llc | Computational storage drive using fpga implemented interface |
US11880568B2 (en) | 2021-11-17 | 2024-01-23 | Seagate Technology Llc | On demand configuration of FPGA interfaces |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102089746A (zh) * | 2008-05-13 | 2011-06-08 | 微软公司 | 采用事务日志的闪存恢复 |
CN103777972A (zh) * | 2012-10-24 | 2014-05-07 | 上海联影医疗科技有限公司 | 基于现场可编程门阵列的系统、配置方法以及升级方法 |
US20170337534A1 (en) * | 2015-11-06 | 2017-11-23 | Cable Television Laboratories, Inc | Systems and methods for blockchain virtualization and scalability |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008041978A1 (en) * | 2006-10-03 | 2008-04-10 | Lucent Technologies Inc. | Method and apparatus for reconfiguring ic architectures |
US20140281587A1 (en) * | 2013-03-14 | 2014-09-18 | Ologn Technologies Ag | Systems, methods and apparatuses for using a secure non-volatile storage with a computer processor |
US20170228731A1 (en) | 2016-02-09 | 2017-08-10 | Fmr Llc | Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems |
US20170236104A1 (en) * | 2016-02-12 | 2017-08-17 | D+H Usa Corporation | Peer-to-Peer Financial Transactions Using A Private Distributed Ledger |
US11270303B2 (en) | 2016-05-20 | 2022-03-08 | Fujitsu Limited | Cryptocurrency-based event participation verification |
US10142098B2 (en) | 2016-06-29 | 2018-11-27 | Intel Corporation | Optimized SHA-256 datapath for energy-efficient high-performance Bitcoin mining |
US10185550B2 (en) * | 2016-09-28 | 2019-01-22 | Mcafee, Inc. | Device-driven auto-recovery using multiple recovery sources |
US10013246B2 (en) * | 2016-12-03 | 2018-07-03 | Dell Products, Lp | Distributed information handling systems and methods for automatic object code replacement and patching |
US9934138B1 (en) * | 2016-12-07 | 2018-04-03 | International Business Machines Corporation | Application testing on a blockchain |
CN107005574B (zh) * | 2016-12-23 | 2020-08-28 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN107046542B (zh) | 2017-04-24 | 2020-04-14 | 杭州云象网络技术有限公司 | 一种在网络级采用硬件实现共识验证的方法 |
US10976962B2 (en) * | 2018-03-15 | 2021-04-13 | Pure Storage, Inc. | Servicing I/O operations in a cloud-based storage system |
WO2018231255A1 (en) * | 2017-06-16 | 2018-12-20 | Visa International Service Association | Blockchain network interaction controller |
US10880071B2 (en) * | 2018-02-23 | 2020-12-29 | Samsung Electronics Co., Ltd. | Programmable blockchain solid state drive and switch |
-
2018
- 2018-05-16 US US15/981,460 patent/US10880071B2/en active Active
- 2018-11-13 TW TW107140281A patent/TWI781248B/zh active
-
2019
- 2019-01-15 KR KR1020190005439A patent/KR102670922B1/ko active IP Right Grant
- 2019-01-25 JP JP2019011394A patent/JP7169208B2/ja active Active
- 2019-02-12 CN CN201910111731.6A patent/CN110187827B/zh active Active
-
2020
- 2020-12-22 US US17/131,060 patent/US11750370B2/en active Active
-
2023
- 2023-07-28 US US18/227,861 patent/US20230379141A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102089746A (zh) * | 2008-05-13 | 2011-06-08 | 微软公司 | 采用事务日志的闪存恢复 |
CN103777972A (zh) * | 2012-10-24 | 2014-05-07 | 上海联影医疗科技有限公司 | 基于现场可编程门阵列的系统、配置方法以及升级方法 |
US20170337534A1 (en) * | 2015-11-06 | 2017-11-23 | Cable Television Laboratories, Inc | Systems and methods for blockchain virtualization and scalability |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110751555A (zh) * | 2019-09-25 | 2020-02-04 | 支付宝(杭州)信息技术有限公司 | 基于fpga实现合约调用的方法及装置 |
CN110751555B (zh) * | 2019-09-25 | 2021-01-12 | 支付宝(杭州)信息技术有限公司 | 基于fpga实现合约调用的方法及装置 |
CN113254372A (zh) * | 2020-08-07 | 2021-08-13 | 广东高云半导体科技股份有限公司 | 用两阶段配置过程提供可编程微控制器的方法和系统 |
CN112564924A (zh) * | 2020-11-12 | 2021-03-26 | 深圳宏芯宇电子股份有限公司 | 计算机扩展卡及区块链终端设备 |
CN112564924B (zh) * | 2020-11-12 | 2023-01-03 | 深圳宏芯宇电子股份有限公司 | 计算机扩展卡及区块链终端设备 |
WO2022141561A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳大学 | 一种面向区块链用户节点的数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
TW201946413A (zh) | 2019-12-01 |
JP7169208B2 (ja) | 2022-11-10 |
US20230379141A1 (en) | 2023-11-23 |
KR20190101869A (ko) | 2019-09-02 |
US10880071B2 (en) | 2020-12-29 |
CN110187827B (zh) | 2021-10-15 |
JP2019144540A (ja) | 2019-08-29 |
US20210111868A1 (en) | 2021-04-15 |
KR102670922B1 (ko) | 2024-05-31 |
US11750370B2 (en) | 2023-09-05 |
TWI781248B (zh) | 2022-10-21 |
US20190268141A1 (en) | 2019-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110187827A (zh) | 可编程数据存储装置及可编程网络数据存储系统 | |
US10901796B2 (en) | Hash-based partitioning system | |
US20160350146A1 (en) | Optimized hadoop task scheduler in an optimally placed virtualized hadoop cluster using network cost optimizations | |
US10305815B2 (en) | System and method for distributed resource management | |
CN103608796A (zh) | 大规模存储系统 | |
US20130304774A1 (en) | Determining File Allocation Based on File Operations | |
Peddi | Design of Simulators for Job Group Resource Allocation Scheduling In Grid and Cloud Computing Environments | |
Ranjan et al. | Binary decision diagrams on network of workstations | |
Xiahou et al. | Multi-datacenter cloud storage service selection strategy based on AHP and backward cloud generator model | |
CN114143090B (zh) | 基于网络安全架构的防火墙部署方法、装置、设备及介质 | |
CN108491271A (zh) | 动态管理云端虚拟化ca配置资源的方法 | |
Khargharia et al. | vGrid: A Framework For Building Autonomic Applications. | |
Khan et al. | EDGESTORE: A single namespace and resource-aware federation file system for edge servers | |
CN114138898A (zh) | Smg-vme-afs可迭代分布式存储系统 | |
Gawande et al. | Improving network traffic in MapReduce for big data applications | |
Vijayakumar et al. | FIR3: A fuzzy inference based reliable replica replacement strategy for cloud Data Centre | |
Csorba et al. | A bio-inspired method for distributed deployment of services | |
Kimura et al. | Residual capacity-aware virtual machine assignment for reducing network loads in multi-tenant data center networks | |
Mershad et al. | A mathematical model to analyze the utilization of a cloud datacenter middleware | |
US12008130B1 (en) | Secure data access management system | |
Bibi | Cost Aware Resource Selection in IaaS Clouds | |
Kokkinos et al. | Efficient data consolidation in grid networks and performance analysis | |
Cruz et al. | Securely and automatically deploying micro-services in an hybrid cloud infrastructure | |
Çavdar | A utilization based genetic algorithm for virtual machine placement in cloud computing systems | |
Mershad et al. | Cloud providers collaboration for a higher service level in cloud computing |
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 |