JP7169208B2 - プログラム可能なデータストレージデバイス、及びネットワークデータストレージシステム - Google Patents

プログラム可能なデータストレージデバイス、及びネットワークデータストレージシステム Download PDF

Info

Publication number
JP7169208B2
JP7169208B2 JP2019011394A JP2019011394A JP7169208B2 JP 7169208 B2 JP7169208 B2 JP 7169208B2 JP 2019011394 A JP2019011394 A JP 2019011394A JP 2019011394 A JP2019011394 A JP 2019011394A JP 7169208 B2 JP7169208 B2 JP 7169208B2
Authority
JP
Japan
Prior art keywords
blockchain
data storage
processor
storage device
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019011394A
Other languages
English (en)
Other versions
JP2019144540A (ja
Inventor
パンデュランガン ラジニカンス
バラークリッシュナン ビジャイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019144540A publication Critical patent/JP2019144540A/ja
Application granted granted Critical
Publication of JP7169208B2 publication Critical patent/JP7169208B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/76Protecting 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)

Description

本発明は、データストレージデバイス、及びネットワークデータストレージシステムに係り、より詳しくは、プログラム可能なデータストレージデバイス、及びネットワークデータストレージシステムに関する。
ブロックチェーンの技術は、P2P(peer-to-peer)ネットワークを介して共有、セキュリティ、不変及び分散レジャー(ledger)を構築できるようにする。資産の所有権及びその資産の所有権を交換する取引のような記録は、「ブロックチェーン」に記録され、このような記録は、ネットワークのピア(peers)(ユーザーら)によって検証・維持される。
一般的に、ブロックチェーンは、二つのタイプを含む。つまり、ユーザーらが匿名であり、各ユーザーがレジャー(ledger)のコピーを有して、独立的に取引の承認に参加する公開ブロックチェーン(public blockchain)と、ユーザーが匿名ではなく、権限がネットワークの一部になるように要求される私的ブロックチェーン(private blockchain)である(ユーザーらは、依然として各自のレジャーのコピーを有して取引の承認に参加する)。
ブロックチェーンの採掘者は新しいブロックをブロックチェーンに追加するための作業証明(proof-of-work)を生成するための暗号化ハッシュ(hash)のような採掘オペレーションを遂行するP2Pネットワークのノードである。いくつかのネットワークにおいて、採掘者は採掘を遂行することに対する報償(reward)が提供される。採掘者は採掘プールを形成することにコラボレーション(collaboration)し、採掘能力(例えば、ハッシュを計算するための計算能力)がプーリングされて(pooled)、採掘の遂行に対する報償がプールで共有される。
ブロックチェーンネットワークの例示は、ビットコイン(Bitcoin)、イーサリアム(Ethereum)、ダッシュ(Dash)およびリップル(Ripple)を含む。他の暗号化技術は、ブロックが線形チェーンに配列される必要性を緩和させる「タングル(Tangle)」またはDAG(Directed Acyclic Graph)チェーンを含む。
米国公開特許第2017/0228731A1号公報 中国公開特許第CN107046542A号公報
TRUYENS, DRIES, ‘‘FPGA based hardware accelerator for Dash mining’’, Ku Leuven, Master of Science in Electrical Engineering, Thesis, Academic year 2015-2016, 62 pages.
本発明の実施形態は、ブロックチェーンのブロックを格納して、ブロックチェーンネットワーク(「ブロックチェーン認識ストレージデバイス」)で、採掘ノードとして参加するための特徴を具現するように構成された、プログラム可能なネットワークストレージデバイスに関する。本発明の実施形態は、ブロックチェーン認識ストレージデバイスを管理するように構成された、プログラム可能なネットワークハードウェアにも関連する。
本発明の実施形態は、ブロックチェーンのブロックを格納してブロックチェーンネットワーク(「ブロックチェーン認識ストレージデバイス」)で、採掘ノードとして参加するための特徴を具現するように構成されたプログラム可能なネットワークストレージデバイスに関するものである。本発明の実施形態は、ブロックチェーン認識ストレージデバイスを管理するように、構成されたプログラム可能なネットワークハードウェアにも関連される。
本発明の一実施例によると、プログラム可能なデータストレージデバイスは、第1不揮発性メモリと、第1不揮発性メモリを制御するように構成される第1ストレージコントローラと、第1ネットワークインターフェースと、第1ブロックチェーンアルゴリズムを具現して第1ストレージコントローラを介して第1不揮発性メモリに前記第1ブロックチェーンアルゴリズムに対応するブロックチェーンの少なくとも一つのブロックを格納するように構成される第1FPGA(Field Programmable Gate Array )と、第1コマンドを格納するように構成される第1メモリを含む第1プロセッサと、を包含し、第1コマンドは、第1プロセッサによって実行されるとき、前記第1プロセッサが第1ネットワークインタフェースを介して善意ブロックチェーンの少なくとも一つのブロックを送受信して前記ブロックチェーンの少なくとも一つのブロック上で前記第1ブロックチェーンアルゴリズムを実行するために第1FPGAを制御するように惹起する。
前記第1ストレージコントローラは、キーバリューストア(key-value store)を具現し、前記第1ストレージコントローラは、キーとしてのブロックのハッシュバリューと関連して、キーバリューストアのバリューとしてのブロックチェーンの少なくとも一つのブロックを格納するように構成される。
前記第1ストレージコントローラは、前記第1不揮発性メモリにデータの第1タイプのデータ及び第2タイプのデータを格納するように構成され、前記第1タイプのデータは、ブロックチェーンデータであり、前記第2タイプのデータは、第1タイプと異なる。
前記第1メモリは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが前記プログラム可能なデータストレージデバイスを、ブロックチェーンネットワークのブロックチェーンのノードとしてオペレーションさせるように惹起する第2コマンドを格納するように、さらに構成される。
前記第1ストレージコントローラは、第1サイズと関連して、前記第1不揮発性メモリにデータを格納するように構成され、前記ブロックチェーンの各ブロックは、第2サイズを有し、前記第2サイズは、前記第1サイズの倍数であり得る。前記第2サイズは、前記第1サイズと同じであり得る。
前記第1不揮発性メモリは、NANDフラッシュを含み、前記第1ストレージコントローラは、フラッシュ変換ロジックモジュールを含み、前記第1サイズは、NANDブロックサイズであり得る。
前記第1メモリは、第3コマンドを格納するようにさらに構成され、前記第3コマンドは、前記第1プロセッサによって実行されるとき、第1プロセッサは、前記第1ブロックチェーンアルゴリズムとは異なる第2ブロックチェーンアルゴリズムを具現するための前記第1FPGAをプログラムするためのビットファイルをロード(load)し、前記第2ブロックチェーンアルゴリズムを具現するための前記第1FPGAを再構成するための前記ビットファイルを使用して前記第1FPGAをプログラムするように惹起する。
前記ビットファイルは、前記第1不揮発性メモリに格納される。前記ビットファイルは、前記第1ネットワークインターフェースを通して受信される。
前記第1FPGAは、暗号化アクセラレーターを含み、前記暗号化アクセラレーターを使用して、第1ブロックチェーンアルゴリズムを具現するように、さらに構成される。
第2不揮発性メモリと、前記第2不揮発性メモリを制御するように構成される第2ストレージコントローラと、第2ネットワークインターフェースと、前記第1ブロックチェーンアルゴリズムを具現して前記第2ストレージコントローラを介して前記第2不揮発性メモリに前記第1ブロックチェーンアルゴリズムに対応する前記ブロックチェーンの少なくとも一つのブロックを格納するように構成される第2FPGA(Field Programmable Gate Array )と、第4コマンドを格納するように構成される第2メモリを含み、前記第4コマンドは、第2プロセッサによって実行されるとき、前記第2プロセッサが前記第2ネットワークインターフェースを介して前記ブロックチェーンの少なくとも一つのブロックを伝送又は受信して前記ブロックチェーンの少なくとも一つのブロック上で前記第1ブロックチェーンアルゴリズムを実行するように前記第2FPGAを制御するように惹起できる。
本発明の一実施例によれば、第1不揮発性メモリと、前記第1不揮発性メモリを制御するように構成される第1ストレージコントローラと、第1ネットワークインターフェースと、第1ブロックチェーンアルゴリズムを具現して、前記第1ストレージコントローラを介して前記第1不揮発性メモリに前記第1ブロックチェーンアルゴリズムに対応する第1ブロックチェーンの少なくとも一つのブロックを格納するように構成される第1FPGAと、第1コマンドを格納するように構成される第1メモリを含む第1プロセッサを含む第1プログラム可能なデータストレージデバイスと、第2不揮発性メモリと、前記第2不揮発性メモリを制御するように構成される第2ストレージコントローラと、第2ネットワークインターフェースと、
第2ブロックチェーンアルゴリズムを具現して、前記第2ストレージコントローラを介して前記第2不揮発性メモリに前記第2ブロックチェーンアルゴリズムに対応する第2ブロックチェーンの少なくとも一つのブロックを格納するように構成される第2FPGAと、第2コマンドを格納する第2メモリを含む第2プロセッサを含む第2プログラム可能なデータストレージデバイスと、前記第1ネットワークインターフェースを介して、前記第1プログラム可能なデータストレージデバイスと通信し、前記第2ネットワークインターフェースを介して前記第2プログラム可能なデータストレージと通信し、少なくとも2つのブロックチェーンのネットワークと通信するように構成され、第3プロセッサ、及び第3コマンドを格納する第3メモリを含むネットワークハードウェアと、を含み、前記第1コマンドは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが前記第1ネットワークインターフェースを介して前記ブロックチェーンの少なくとも一つのブロックを伝送・受信し、前記第1ブロックチェーンの少なくとも一つのブロック上で第1ブロックチェーンアルゴリズムを実行するための第1FPGAを制御するように惹起し、前記第2コマンドは、前記第2プロセッサによって実行されるとき、前記第2プロセッサが前記第2ネットワークインターフェースを介して前記ブロックチェーンの少なくとも一つのブロックを伝送・受信し、前記第2ブロックチェーンの少なくとも一つのブロック上で前記第2ブロックチェーンアルゴリズムを実行するために前記第2FPGAを制御するように惹起し、前記第3コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサが、少なくとも2つのブロックチェーンネットワークからブロックチェーンの要請を受信し、前記第1プログラム可能なデータストレージデバイス及び前記第2プログラム可能なデータストレージデバイスのうち、少なくとも一つに前記ブロックチェーンの要請を分配するように惹起できる。
前記第1ブロックチェーンアルゴリズムは、前記第2ブロックチェーンアルゴリズムと異なり、前記ネットワークハードウェアの前記第3メモリは、第4コマンドをさらに格納し、前記第4コマンドは、前記第3プロセッサによって実行されるとき、第3プロセッサは、前記ブロックチェーンの要請が前記第1ブロックチェーンアルゴリズム及び前記第2ブロックチェーンアルゴリズムのうち、少なくとも1つに関連しているか否かを判別し、前記ブロックチェーンの要請が前記第1ブロックチェーンアルゴリズムと関連される場合には、前記ブロックチェーンの要請を前記第1プログラム可能なデータストレージデバイスに分配し、前記ブロックチェーンの要請が前記第2ブロックチェーンアルゴリズムと関連される場合には、前記ブロックチェーンの要請を前記第2プログラム可能なデータストレージデバイスに分配する。
前記第4コマンドは、第5コマンドを包含し、前記第5コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサが前記ブロックチェーンの要請を、複数のサブタスクに分割し、前記サブタスクを、前記第1プログラム可能なデータストレージデバイス及び前記第2プログラム可能なデータストレージデバイスに分配する。
前記第1メモリは、第6コマンドをさらに格納し、前記第3メモリは、第7コマンドをさらに格納し、前記第6コマンドは、第1プロセッサによって実行されるとき、前記第1プロセッサが前記第1ブロックチェーンアルゴリズムとは異なる第3ブロックチェーンアルゴリズムを具現するために前記第1FPGAをプログラムするためのビットファイルをロードし、前記第3ブロックチェーンアルゴリズムを具現するための前記第1FPGAを再構成するためのビットファイルを使用して前記第1FPGAをプログラムするように惹起し、前記第7コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサが、前記第1プロセッサを制御して前記第3ブロックチェーンアルゴリズムを具現するために、前記第1FPGAを再構成するための第7コマンドを実行する。
前記第3メモリは、第8コマンドをさらに格納し、前記第8コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサは、前記少なくとも2つのブロックチェーンネットワークのそれぞれの状態をモニタリングし、前記第1プログラム可能なデータストレージデバイスの第1状態及び前記第2プログラム可能なデータストレージデバイスの第2状態を追跡し、前記少なくとも2つのブロックチェーンネットワークのそれぞれの状態である前記第1状態及び前記第2状態に基づいて、前記第2プログラム可能なデータストレージデバイスの再割り当てを識別し、前記再割り当てにより、前記第1ブロックチェーンアルゴリズムを具現するために、前記第2FPGAを再構成するように惹起する。
前記第1ストレージコントローラは、キーバリューストアを具現して、前記第1ストレージコントローラは、キーとしてのブロックのハッシュバリューに基づいて、前記キーバリューストアのバリューとして前記第1ブロックチェーンの少なくとも一つのブロックを格納する。
前記第1メモリは、第9コマンドをさらに格納し、前記第9コマンドは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが、前記少なくとも2つのブロックチェーンネットワークのブロックチェーンネットワークにおけるブロックチェーンのノードとして、前記第1プログラム可能なデータストレージデバイスを動作させるように惹起する。
前記第1ストレージコントローラは、第1サイズにより、前記第1不揮発性メモリにデータを格納し、前記第1ブロックチェーンの各ブロックは、第2サイズを有し、前記第2サイズは、前記第1サイズの倍数であり得る。
前記第1不揮発性メモリは、NANDフラッシュを包含し、前記第1ストレージコントローラは、第1フラッシュ変換ロジックモジュールを含み、前記第1サイズは、NANDブロックのサイズであり得る。
ブロックチェーン認識ストレージデバイスの速度及び寿命を向上できる。
本発明の一実施例によるブロックチェーン認識ストレージデバイスのブロック図である。 本発明の一実施例を基に不揮発性メモリがNANDフラッシュとして具現されたブロックチェーン認識ストレージデバイスのフラッシュ変換ロジック及びフラッシュストレージモジュールの構成図である。 本発明の一実施例による複数のブロックチェーン認識ストレージデバイスに連結されたブロックチェーンのネットワーキングデバイスの構成図である。 本発明の一実施例による複数のブロックチェーン認識ストレージデバイスに連結されたブロックチェーン認識トラフィックルータを有するブロックチェーンのネットワーキングデバイスの構成図である。
以下、例示的な実施例においては、類似の参照番号は類似の構成要素を指称する添付図面を参照して、詳細に説明する。しかし、本発明は、多様な形態で具現でき、本明細書において単に例示した実施例に限定されるものではない。むしろ、斯かる実施例は、この開示が徹底で完全になるための例として提供され、当業者に本発明の特徴及び機能を完全に伝達する。したがって、本発明の技術分野における通常の知識を有する者が本発明の特徴と機能を完璧に理解するために、必要としないプロセス、エレメントおよび技術は、説明しない可能性がある。特に言及しない限り、類似の参照番号は、添付した図面及び記載した説明で類似の構成要素を示し、従ってその説明は繰り返さない。
本明細書において使用する用語は、単に特定の実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書で使用したように、文脈上明らかに別のものを意味しない限り、単数形態「一つ」は、複数の形態も含むと意図する。「構成される」、「構成されている」、「包含する」、そして「包含している」という用語が、本明細書で使用するとき、このような用語は、定められた特徴、整数、ステップ、オペレーション、エレメント及び/又はコンポネントの存在を明示するものの、一つまたはそれ以上の他の特徴、整数、ステップ、オペレーション、エレメント、コンポネント及び/又はそれらのグループの追加または存在を不可能にしない。本明細書で使用したように、「及び/又は」という用語は、一つまたはそれ以上の列挙された項目と関連された任意及びすべての組み合わせを含む。「少なくとも一つ」のような表現は、エレメント全体のリストを修正し、そしてリストの個々のエレメントを修正しない。
ネットワークSSD(Solid State Drive)は、入力/出力(I/O)パケットを処理し、読み取り及び書き込みコマンドを不揮発性メモリ又はNANDフラッシュメモリのような永久的なストレージに伝送する。各ネットワークSSDは、ネットワークインターフェースを外部に露出させる専用のプロセッサを有する(例えば、プロセッサは、TCP/IP(Transmission Control Protocol / Internet Protocol)スタックのようなネットワークスタックを具現するように構成される)。ネットワークSSDは、付加的な処理を遂行するための中央処理装置(CPU)、FPGA(Field Programmable Gate Array)などの処理ユニットを含むこともできる。
FPGAは、プログラム可能な論理ブロックの集合(set)と構成ファイル(しばしば、「ビットファイル」と称される)によって特定されるプログラム可能な論理ブロックを選択的に、ともに連結されるようにする再構成可能な相互連結の階層を含む。したがって、FPGAは、ASIC(Application Specific Integrated Circuit)に匹敵する性能(例えば、速度及びエネルギー効率)を可能にしつつ、多様な機能(汎用プロセッサと類似した)を遂行するように構成および再構成される。
ブロックチェーンの採掘ノードを具現するための比較システムは、一般的に演算能力が強力なコンピュータシステム上で実行される採掘ソフトウェアの使用を含む。ビットコイン採掘は、初期に、汎用中央処理装置(Central Processing Unit:CPU)において有益に遂行されるが(例えば、採掘に対する報償がプロセッサのオペレーションコストを超える)、多くのブロックチェーンのプロトコルで採掘の難しさ(例えば、ブロックを採掘するために遂行されるべき演算タスクの量)は、一般的にブロックチェーンのブロックの数に応じて増加する。結果的に、時間がたつにつれ、ブロックチェーン採掘は、特定のブロックチェーンのプロトコルによって要求される計算に対するワット当たり、より高い性能を提供するプロセッサに移動したので、計算が経済的かつ合理的(例えば、収益的な)になるようにする。例として、グラフィックス処理装置(Graphical Processing Unit:GPU)のアーキテクチャは、ビットコインを採掘するのに適している。
いくつかのブロックチェーンプロトコルの場合には、GPUベースの具現さえFPGA及びASICでの採掘と比較するとき、相対的に非効率的である。ASICは、一般的にFPGAよりも速いが、ASICによって具現される回路は、永久的(例えば、ASICは、再構成できない)であり、それに応じて新たなアルゴリズムや他のアルゴリズムを具現するのには適していないが、FPGAは、他のビットのファイルへのプログラムを使用して再構成される。
演算能力に加えて、採掘アルゴリズムを実行するために、ブロックチェーンの採掘ノードは、一般的に分散レジャー(distributed ledger)(例えば、ブロックチェーン)の少なくとも一部を格納するための永久のデータストレージに対するアクセスを必要とする。
採掘ノードは、一般的にそれらのプロセッサに対する使用が多く、プロセッサを標準のオペレーション範囲に維持するために必要な、かなりの量の冷却のため相当な量の電力を消費するのに対し、FPGAは、一般的にそれと類似の性能を提供するのに、その分の多くの電力を必要としないため、一般的に多くの冷却を必要としない。
従って、本発明の実施形態は、ブロックチェーンのブロックを格納して、ピア・ツー・ピア(peer-to-peer)ブロックチェーンネットワークに採掘ノード(「ブロックチェーン認識(blockchain-aware)ストレージデバイス」)として参加するための特徴を具現するように構成された、ネットワークSSDのようなプログラム可能なネットワークデータストレージデバイスを指示する。
図1は、本発明の一実施例によるブロックチェーン認識ストレージデバイスのブロック図である。図1に示した実施例で、ブロックチェーン認識ストレージデバイス100は、一つのデバイスに統合された(例えば、単一の回路基板に配置されたり、または単一の筐体にハウジングされたりした)いくつかの構成要素を含む。図1のブロックチェーン認識ストレージデバイス100は、ブロックチェーン認識ストレージデバイス100の動作を制御するように構成されたプロセッサ110を含む。プロセッサ110は、ブロックチェーン認識ストレージデバイス100を制御するためのファームウェアプログラムコマンドを格納する不揮発性メモリ(例えば、以下で説明する不揮発性メモリ140と分離された消去可能でプログラム可能な読み取り専用メモリ(EPROM)、またはフラッシュメモリ)に連結される。プロセッサ110は、メモリコントローラユニット(MCU、122)を介してDRAM(Dynamic Random Access Memory、120)からのデータを格納・検索するように構成される。また、プロセッサ110は、暗号化アクセラレーター132を包含するFPGA(Field Programmable Gate Array)130と通信も行う。本発明のいくつかの実施例で、暗号化アクセラレーター132は、FPGA130(例えば、分離された独立のチップ)から分離され、FPGA130と通信する。FPGA130は、MCU122を介してDRAM120にアクセスもできる。プロセッサ110、DRAM120及びFPGA130は全部ストレージモジュール142を含む不揮発性メモリ140または永久のストレージからストレージコントローラ144を介してデータを格納・検索するように構成される。さらに具体的に、いくつかの実施例で、不揮発性メモリ140のストレージモジュール142は、NANDフラッシュメモリを含み、ストレージコントローラ144は、論理的読み取りおよび書き込みコマンドとNANDフラッシュメモリを含むストレージモジュール142のデータの基本的な表現または格納との間で変換するように構成されたフラッシュ変換ロジック(Flash Translation Logic:FTL)モジュール(例えば、NANDページのNANDブロック、図2を参照)を含む。プロセッサ110及びFPGA130は、ネットワーク20(例えば、イーサネット(登録商標)接続)上でデータを送信・受信するためのネットワークインターフェース150と通信する。
本発明の実施形態は、分散レジャー(例えば、ブロックチェーン)を配置するために、ネットワーク20に連結されたブロックチェーン認識ストレージデバイス100のFPGA130をレバレッジ(leveraging)するものに関する。ブロックチェーン認識ストレージデバイス100は、ブロックチェーン(例えば、採掘ノード)として登録され、ブロックチェーン認識ストレージデバイス100は、ブロックチェーンのブロック(例えば、全体レジャー又はその一部のコピー)を不揮発性メモリ140に格納する。
特定のブロックチェーンのプロトコル(例えば、ビットコイン(Bitcoin)、イーサリアム(Ethereum)、またはダッシュ(Dash))に関連される特定の採掘のアルゴリズムは、不揮発性メモリ140からブロックチェーンデータのブロックを読取り、不揮発性メモリ140にブロックチェーンデータのブロックを書き込むFPGA130で具現される。ブロックチェーンアルゴリズムは、一般的に採掘プロトコルのPoW(Proof-of-Work)の部分を遂行し、他のノードから受信されたブロックチェーンのブロックを検証するために、「sha-256」、「sha-1」、「Keccak」、「scrypt」などの暗号化ハッシュの計算を含む。
従って、ブロックチェーンアルゴリズムと暗号化ハッシュをハードウェアで具現することにより、エネルギーの使用と冷却量の大きな減少が達成される。例として、「Mittal、Sparsh及びJeffrey S. Vetter 「A survey of methods for analyzing and improving GPU energy efficiency」のsection 3.2、 ACM Computing Surveys(CSUR)47.2(2015):19.汎用CPU上のアルゴリズムを具現することに対するGPU及びFPGAのような特殊なハードウェア上での具現アルゴリズムのエネルギー効率性を比較する参照リスト」を参照ください。
なお、採掘アルゴリズムがFPGA130で具現されるので、FPGA130は、相異なる採掘アルゴリズムを具現するように再構成される。いくつかの実施例で、不揮発性メモリ140は、異なるビットファイルを格納したり、各ビットのファイルは、異なる採掘アルゴリズム(例えば、ビットコイン、イーサリアムまたはダッシュ)の具現に対応し、プロセッサ110は、FPGA130をビットファイル中の特定の一つと結合するように構成される。例として、ブロックチェーン認識ストレージデバイス100のユーザーは、ビットコインの代わりにイーサリアムを採掘するためにブロックチェーン認識ストレージデバイス100を再構成することに決定し、ブロックチェーン認識ストレージデバイス100にコマンドを伝送することにより、そのように行うことができ、ブロックチェーン認識ストレージデバイス100は、イーサリアム採掘アルゴリズムに対応するビットファイルをロードしてロードされたビットファイルを使用してFPGA130を再プログラム(例えば、フラッシュ(flash))する。ビットファイルを読み取り、ロードされたビットファイルを使用してFPGA130を再プログラム(例えば、フラッシュ)する。いくつかの実施例で、ビットファイルが(例えば、ネットワークインターフェース150を介してネットワーク20上で)外部ソースからブロックチェーン認識ストレージデバイス100に供給されることにより、FPGA130にプログラムされて及び/又は非揮発性メモリ140に格納される、新しい(または修正された)アルゴリズムに対応する新しいビットファイルを許容する。
図2は、本発明の一実施例を基に不揮発性メモリ140がNANDフラッシュとして具現されたブロックチェーン認識ストレージデバイス100のフラッシュ変換ロジック及びフラッシュストレージモジュールの構成図である。図2に示すように、NANDフラッシュストレージモジュール142は、ブロック142Bに構成されたデータページ142Pを含み、各ブロックは、複数のページを含む。NANDフラッシュストレージテクノロジーの具現に対する詳細事項のため、データは、一般的にページ単位で読取られかつ書き込まれるが、データ消去は、ブロック単位で行われる。フラッシュ変換ロジック144は、論理セクターの書き込み及び読み取りと、特定具現向けの書き込み及び読み取りコマンド(例えば、ページ書き込み、ブロック消去、およびページの読み取り)との間を変換する。ストレージデバイスにアクセスする論理ブロックモードにおいて、論理セクターは、例として512バイトであり得る。いくつかの比較的なNANDフラッシュデバイス(例えば、SSD(Solid State Drive))で、各ページには4KiBのサイズを有することができ、各ブロックは、4MiBのサイズを有する。
フラッシュメモリ(及びガベージコレクションを遂行する他のデバイス)を使用するSSDにおいて、フラッシュメモリは、一般的に数多くのページを含む消去ブロックで構成される。各ページには3つの状態、つまりフリー(free)(現在、データを格納せず)、有効(現在、データを格納する)及び有効ではないこと(以前に有効なデータを格納したが、これ以上の有効なデータを格納せず、まだフリーではない)のいずれか一つであり得る。
新しいデータがフラッシュメモリにライト(write)されるとき、フリーページが配置され、そのフリーページにデータがライトされる。ページは、有効なデータを格納することでマークされる。ページは、消去ブロック内に順番にある。しかし、フラッシュメモリは、一般的にページレベルで一回記録される。ページレベルで上書きはできない。従って、フラッシュメモリに格納されたデータがアプリケーションによって変更されるとき、データを含むページ全体がフラッシュメモリの新しいページにライト(write)される。元のページは有効ではないとマークされる。ガベージコレクションは、SSDがページの消去ブロック単位で有効ではないページを回収するためのプロセスである。このプロセスは、ブロックのすべてのページを再設定するステップ及びページをフリーにもう一度マークするステップを含む。
理由(reason)ページは、ガベージコレクションが遂行される方法のために、3つの可能な状態を有する。個別のページでガベージコレクションが実行されると、有効ではない状態を必要としなくなる。つまり、データが無効化され、ページがフリーになるやいなやガベージコレクションが発生する。しかし、ガベージコレクションは、一般的に、個々のページより大きなチャンク(chunk)上で動作する。これらのチャンクは、消去ブロックまたはスーパーブロックと呼ばれ、任意の数のページを含む。ブロックがガベージコレクションの対象となると、ブロックのすべてのページがフリーの状態に置かれる。従って、現在のブロックのページが消去される前にブロックの現在有効な任意のデータが他の複数のブロックのフラッシュメモリのフリーページにライト(write)されなければならない(このプロセスは、プログラミングと呼ばれる)。ブロックの任意のデータが無効化された後、ガベージコレクションが開始された場合には、SSDはブロックの有効なページから他のブロックにデータを移動するのにかなりの時間を消費する。消去ブロックから有効なデータをプログラムすることが、それ自体でかなりのオーバーヘッドを追加するという事実に加えて、フラッシュメモリは、一般的に、メモリが信頼できなく(または悪化したり、使用できなかったりする)なる前に有限回数のみアクセスされる。したがって、消去ブロックから有効なデータをプログラムするために消費される時間を最小化することが望ましい。しかし、同時に、消去ブロックのすべてのページが有効でないとマークされるまでに、ガベージコレクションが遅延されない可能性がある。つまり、フラッシュメモリは、有効または有効でないと(つまり、フリーページがないこと)マークされたページだけを含むすべてのブロックで終わることができ、これは、これ以上のデータがフラッシュメモリにライト(write)できないことを意味する。
ブロックチェーンアルゴリズムは、一般的にブロック(ブロックチェーンのブロック)単位でオペレーションする。例として、ブロックチェーン認識ストレージデバイス100のFPGA130は、ブロックチェーンの入力ブロックを一度に一つずつ、またはブロックチェーンのブロックの整数単位で受信して検証する。同様に、採掘は一度に1つのブロックまたはブロックチェーンの整数単位の情報だけを使用して遂行される。
NANDブロックのサイズがブロックチェーンブロックのサイズに対応しない場合には、例として、書き込みコマンドは、ブロックチェーンブロックが二つ以上の相異なるNANDブロックにかけて延長されるようにし、NANDブロックのうちのいくつかがブロックチェーンブロックからデータで部分的に満たされるようにする。したがって、ブロックチェーンブロックが不揮発性メモリ140から、後で削除されると、ガベージコレクターが不揮発性メモリ140をデフラグ(defragment)するにつれ、書き込み増幅の問題が発生する。
したがって、本発明の実施例のいくつかの形態は、ストレージモジュール142及びフラッシュ変換ロジック144に関するもので、NANDブロックのサイズ及び/又はストレージモジュール142のNANDページのサイズは、ブロックチェーンのブロックの単位サイズのサイズに整列される。例えば、NANDブロックのサイズは、ブロックチェーンのサイズがNANDブロックのサイズの倍数になるように設定される。一部の実施例で、倍数は1である(例えば、NANDブロックは、ブロックチェーンブロックと同じサイズである)。例として、NANDブロックのサイズは、ブロックチェーンブロックのサイズがNANDブロックのサイズの倍数になるように設定される。いくつかの実施例で、倍数は「1」である(例えば、NANDブロックのサイズは、ブロックチェーンブロックのサイズと同じである)。例としては、NANDブロックは、ブロックチェーン認識ストレージデバイス100上で使用されると予想されるブロックチェーンのプロトコルに基づいて、例えば、1 MiB、2 MiBまたは20 MiBのサイズを有し得る。そうすることで、データの削除がNANDブロックのサイズと整列される方式で行われ、これにより、部分的に削除されたデータのみを有するNANDブロックの問題を減らすか、または回避するため、書き込み増幅は減少するか、回避できる。なお、ページの読み取りを単一のブロックで整列するのは、読み取り速度で若干の改善を提供する。また、ブロックチェーンシステムにおいて、ブロックは、ブロックチェーンの一部になると変更されることができなく、これはブロックチェーンアルゴリズムは、通常の動作において、既存のブロックを上書きしたり、修正したりする必要がないことを意味する。ブロックのこのような不変性は、NANDフラッシュストレージモジュール142の耐久性を向上させ(厳密に言えば、再記録がないので)、ガベージコレクションのオーバーヘッドを減少または除去する。NANDブロックサイズがブロックチェーンのブロックサイズで整列されるいくつかの実施例で、ガベージコレクションを遂行するのに必要な時間が少なかったり、時間がほとんど必要でなかったりするので、ガベージコレクションプロセスは、ブロックチェーンのNANDストレージブロック上で全く動作する必要がないので、ストレージコントローラが、よりよく且つより安定的なI/Oパフォーマンスを提供する。
キーバリューストア(key value store)としてのオペレーション。
本発明のいくつかの実施例で、ブロックチェーン認識ストレージデバイス100は、データ「バリュー」が、伝統的な「論理ブロック」インターフェースではなく、独自の「キー」に基づいてアクセスされるキーバリューのインターフェースを具現する。キーバリューのデータストレージデバイスのより具体的な例として、2018年1月19日、米国特許庁(United States Patent and Trademark Office)に提出された「Key Value SSD」の米国特許出願第15/876,028号を参照のこと、これの全体の開示は参照として本明細書と統合される。
本発明の一実施例によると、ブロックチェーン認識ストレージデバイス100に格納されたブロックチェーン(またはその一部)の各ブロックは、一つの「バリュー」に対応し、ブロックのハッシュ(またはハッシュバリュー)は、キーとして扱われる。したがって、キーバリューのインターフェースは、ブロックのハッシュをキー提供することでブロックチェーンのブロックが検索されるようにする。また、以上で述べたように、NANDページ及び/又はNANDブロックのサイズは、ブロックチェーンのブロックのサイズと一致するように選択され、各キー(またはハッシュバリュー)は、一つの対応するNANDブロックを検索するように使用され、これにより、ブロックチェーンブロックとNANDブロックのサイズとの間に近接したり、正確な論理・物理マッピングを許容することで、以上で説明したように、ブロックチェーン認識ストレージデバイス100の速度及び寿命を向上させる。
標準SSDとしてのオペレーション。
本発明のいくつかの実施例によると、ブロックチェーン認識ストレージデバイス100は、FPGA130を再構成するために以上で説明したビットファイル、プロセッサ110をオペレーションさせるための(例えば、ファームウェアを再フラッシュ(re-flash)するための)プログラムコマンド、ユーザーデータ、非ブロックチェーン関連キー及びバリューなどの非ブロックチェーンの特定のデータを格納するために、変わらずオペレーションする。いくつかの実施例で、FPGA130は、不揮発性メモリ140に及び/又は不揮発性メモリ140から、非ブロックチェーンデータの格納及び/又は検索に関与しない。
ブロックチェーン認識ストレージデバイス100のアプリケーションの一例は、非ブロックチェーンの特定のデータの格納を含むことがストレージ(Storj)のようなブロックチェーンベースの暗号化された、分散されたクラウドストレージ方式にある(Wilkinson 、Shawn、et al。、「Storj a peer-to-peer cloud storage network」(2014)を参照のこと)。ストレージ(Storj)のユーザーは、ユーザー自身のストレージスペースを他のユーザーにレント(rent)して報償を受けることができる。逆に、ストレージ(Storj)ユーザーは、他のユーザーに、他のユーザーのストレージデバイスにユーザーのデータを格納するのに料金を支払うこともできる。一般的に、特定用途むけのクライアントソフトウェア(例えば、「StorjShareデーモン」)は、ユーザーのノード上で実行され、ストレージ(Storj)ネットワーク上でノードを設定し、ノードを登録する。
本発明の一実施例によると、ブロックチェーン認識ストレージデバイス100は、完全なコンピュータシステムを設定し、一つ以上の標準的なストレージデバイスをコンピュータシステムに連結し、コンピュータシステムをネットワーク上に登録するよりは、自らブロックチェーンネットワーク上のノードになるように、ブロックチェーン認識ストレージデバイス100のプロセッサ110及び/又はFPGA130上での特定用途むけのクライアントソフトウェアが設置されて実行される。したがって、ブロックチェーン認識ストレージデバイス100は、ユーザーがFPGA130及び暗号化アクセラレータ132によって提供される、より効率的な採掘の利点を得るうちにコンピュータシステム全体を設定せずにブロックチェーンネットワークに参加するためにノードを容易に登録できるようにする(例えば、以上で説明したように、ストレージ(Storj)システムの分散レジャー部分はブロックチェーンデータとして処理されて格納されるが、ストレージ(Storj)システムの他のユーザーにより格納されたデータは、非ブロックチェーンデータとして格納される)。
なお、いくつかの実施例で、FPGA130及び暗号化アクセラレータ132は、データの加速された暗号化及び復号化を可能にし、それに応じてシステムの速度及び/又はエネルギー効率をさらに向上させる。また、FPGA130は、ユーザーのデータを圧縮および圧縮解除するように構成されることもでき、これにより、より多くのユーザーのデータがブロックチェーン認識ストレージデバイス100上に格納されることを潜在的に許容する。
ネットワークスイッチ。
本発明の実施例の形態は、ブロックチェーン認識ストレージデバイスを管理するように構成されたプログラム可能なネットワークハードウェアと関連される。図3は、本発明の一実施例による、複数のブロックチェーン認識ストレージデバイス100に連結されたブロックチェーンのネットワーキングデバイスの構成図である。図3に示したように、ネットワークハードウェア200は、ビットコイン30a、イーサリアム30b、およびストレージ(Storj)30cのような相異なるピア・ツー・ピアのブロックチェーンネットワーク30へのアクセスを提供するネットワーク(例えば、イーサネット(登録商標))接続を介してネットワークハードウェア200にそれぞれ連結された三つの相異なるブロックチェーン認識ストレージデバイス100に接続される。本発明のいくつかの実施例で、ネットワークハードウェア200は、SDN(Software Defined Network)として具現される。本発明のいくつかの実施例で、ネットワークハードウェア200は、プロセッサ及びメモリを含み、ネットワークハードウェア200のメモリに格納されたロジック及びデータ(例えば、ルーティングテーブルの)に基づいてブロックチェーン認識ストレージデバイス100とネットワーク20との間のデータ(例えば、パケット)を交替またはルーティングするように構成される。
本発明のいくつかの実施例で、ネットワークハードウェア200(例えば、ルータまたはスイッチ)は、パス・スルー(pass-through)モードでオペレーションし、ネットワークハードウェア200は、追加的な計算なしにダミーデバイスとして動作する。代わりに、ネットワークハードウェア200の背後の個々のドライブには、ブロックチェーンネットワークの中で、多様なブロックチェーンネットワークに登録される。いくつかの実施例で、ブロックチェーン認識ストレージデバイス100は、ブロックチェーン認識ストレージデバイス100のファームウェアに格納され、プロセッサ110によって実行されたプログラムロジックを使用して(例えば、いずれか一つのネットワーク上の採掘の現在の経済的価値を考慮して、ネットワーク20を介して検索された情報、ブロックチェーン認識ストレージデバイス100をオペレーションさせる現在の電気的なコスト、および不揮発性メモリ140のフリースペースの量などのブロックチェーンを認識ストレージデバイス100の現在の状態に基づいて)どのようなブロックチェーンネットワーク30に結合するか否かを、独立的に決定する。
本発明のいくつかの実施例で、ネットワークハードウェア200は、ブロックチェーン認識トラフィックルータモジュールとしてオペレーションするように構成され、特定のポリシーに基づいて採掘オペレーションを遂行するために連結されたブロックチェーン認識ストレージデバイス100からの計算リソース及びストレージリソースを割り当てる。図4は、本発明の実施例による、複数のブロックチェーン認識ストレージデバイスに連結されたブロックチェーン認識トラフィックルータを有するブロックチェーンのネットワーキングデバイスの構成図である。図4に示したように、ネットワークハードウェア200は、ブロックチェーン認識トラフィックルータ220を含む。以下、より具体的に説明するように、いくつかの実施例で、ブロックチェーン認識トラフィックルータ220は、ブロックチェーン認識トラフィックルーティングの決定を遂行するように構成される汎用の中央処理装置などのネットワークハードウェア200に統合されたプロセッサ210を使用して具現できる。
図4に示したように、いくつかの実施例で、トラフィックルータ220は、ポリシーエンジン222、ロードバランサー224、リソースマネージャー226、及び仮想IPプロバイダ228を含む。仮想IPプロバイダ228は、仮想IPアドレスをネットワークストレージノードに割り当てるように構成される。リソースマネージャー226は、ブロックチェーン認識ストレージデバイス100をリソースマネージャー226に登録するために「Add」コマンドが実行されるネットワークハードウェア100にどのくらい多くのブロックチェーン認識ストレージデバイス100が接続されているか否かを追跡するように構成され、「Remove」コマンドは、リソースマネージャー226からブロックチェーン認識ストレージデバイス100を登録解除するものであり、「UpdateStatus」コマンドは、連結されたブロックチェーン認識ストレージデバイス100の現在の状態を確認するために使用される。ポリシーエンジン222は、特定のブロックチェーンのネットワークに(例えば、ビットコイン30a、イーサリアム30b及びストレージ(Storj)30c)を登録するための政策を格納・具現し、任意の与えられたネットワークで採掘の価値を決定するために、相異なるネットワークへの報償システムを能動的に監視する。ロードバランサー224は、入力ブロックチェーン要請230(例えば、ビットコインブロックを検証するための要請、ストレージ(Storj)ネットワークからのデータを格納するための要請など)を共有し、リダイレクトするように連結されたリソース(例えば、接続されたブロックチェーン認識ストレージデバイス100)を管理する。
図4の実施例において、各ブロックチェーン認識ストレージデバイス100が、処理するために割り当てられた、対応するブロックチェーンアルゴリズムをプログラムまたは具現するように構成されるという意味で、FPGA130ブロックチェーン認識ストレージデバイス100aは、ビットコインの要請を処理するように構成され、ブロックチェーン認識ストレージデバイス100bは、イーサリアム要請を処理するように構成され、ブロックチェーン認識ストレージデバイス100cは、ストレージ(Storj)要請を処理するように構成される。本発明のいくつかの実施例によると、ポリシーエンジン222は、多様なネットワーク上の採掘の現在価値のモニタリングに基づいて、ブロックチェーン認識ストレージデバイス100が、他のブロックチェーンのネットワーク上でオペレーションするように再び割り当てられることを決定する。例として、採掘ビットコインの価値の増加なしに対応する採掘イーサリアムの価値が増加すると、ポリシーエンジン222は、ブロックチェーン認識ストレージデバイス100の中の一つ(例えば、ブロックチェーン認識ストレージデバイス100a)を、また再構成することが費用的に、より効率的であると判断する。したがって、トラフィックルータ220は、より効率的であるか又は価値のある再割り当てを識別し、イーサリアム採掘アルゴリズムを具現するためにFPGA130を再構成したり、再プログラムするためにブロックチェーン認識ストレージデバイス100aにコマンドを伝送(例えば、以上で説明したように、イーサリアム採掘アルゴリズムを具現するためのFPGAを再プログラムするためにビットファイルをロード)したりして、ブロックチェーン認識ストレージデバイス100aが、現在のイーサリアムネットワーク上でオペレーションするように構成されたことを指示するために、リソースマネージャー226のブロックチェーン認識ストレージデバイス100aの状態をアップデートする。イーサリアムネットワークに関連された任意の新しい要請は、トラフィックのルーター220によってイーサリアム要請を処理するように構成されたブロックチェーン認識ストレージデバイス100(この例示で、ブロックチェーン認識ストレージデバイス100a及びブロックチェーン認識ストレージデバイス100b)のいずれか一つにルーティングされる。
本発明のいくつかの実施例において、ネットワークハードウェア200は、連結されたブロックチェーン認識ストレージデバイス100から採掘プールを生成できるFPGA、BMC(Baseboard Management Controller)及び/又はCPUのような(図3のプロセッサ210を包含できる)、追加的計算ユニット240も含む。いくつかの実施例で、計算ユニット240は、採掘オペレーションを遂行することもできる(例えば、ネットワークハードウェア200は、採掘者でもあり得る、いくつかの実施例は、暗号化アクセラレータを含むこともできる)。いくつかの実施例で、ネットワークハードウェア200によって具現される採掘ノードは、内部の採掘ノードにアクセスするためにネットワークハードウェア200によって生成された仮想IPアドレスを介してあらわされる。以上で言及したように、相異なるブロックチェーン認識ストレージデバイス100のうち、他のブロックチェーンは、相異なるブロックチェーンネットワークからの要請を処理し、相異なるブロックチェーンアルゴリズムを具現するように構成され、トラフィックルーター220は、これにより、相異なるノードに要請をルーティングする。同じブロックチェーンネットワークからの要請を処理するように構成された相異なるブロックチェーン認識ストレージデバイス100は、同じ採掘プールのメンバーとしてみなされる。
なお、ネットワークハードウェア200自体が採掘ノードとして扱われるいくつかの実施例で、ネットワークハードウェア200のトラフィックルーター220は、ブロックチェーン採掘アルゴリズムの実行に関連された演算及び格納の中のタスクの一部または全部をネットワークハードウェア200と連結されたブロックチェーン認識ストレージデバイス100のいずれか一つ以上でオフロード(offload)するように構成される。いくつかの実施例で、入力ブロックチェーンの要請は、このようなタイプの要請を処理するように構成されたブロックチェーン認識ストレージデバイス100に直接にルーティングされる(例えば、デバイスのFPGA130は、対応するブロックチェーン採掘アルゴリズムを遂行するように構成される)。いくつかの実施例で、採掘要請の多様なサブタスクは、このようなタイプの要請を処理するように構成された一つ以上のブロックチェーン認識ストレージデバイス100に分割される。
このように、本発明の実施例は、ブロックチェーンのブロックを採掘してブロックチェーンのブロックを検証するような、ブロックチェーンネットワークと関連されたオペレーションを遂行するように構成された、プログラム可能なブロックチェーン認識ストレージデバイスに関するものである。本発明のいくつかの実施例によるブロックチェーン認識ストレージデバイスの不揮発性メモリは、メモリへのアクセスがブロックチェーンのブロックのサイズに対応するようにすることで、メモリの断片化(fragmentation)を減らし、ガベージコレクションの必要性を減らし、および書き込み増幅の影響を減らすように構成できる。本発明のいくつかの実施例で、ネットワークルーター、ネットワークスイッチのようなブロックチェーン認識ネットワークハードウェアは、例として、需要に基づいて相異なるアルゴリズムを具現するために、デバイスに採掘タスクを分配してブロックチェーン認識ストレージデバイスを再構成することにより、一つ以上のブロックチェーン認識ストレージデバイスを管理するように構成される。
本発明は、例示的な実施例に関連して説明したが、本発明が、開示した実施例に限定されず、逆に、添付した請求項及びそれと同等のものの思想及び範囲内に含まれる多様な変形及び均等な構成をカバーするように意図するものと理解される。
本発明は、ブロックチェーンのブロックを格納してブロックチェーンネットワークにおいて、採掘ノードとして参加できる、プログラム可能なネットワークストレージデバイスの具現に有用である。
20 ネットワーク
30 ブロックチェーンネットワーク
30a ビットコイン
30b イーサリアム
30c ストレージ(Storj)
100、100a,100b,100c ブロックチェーン認識ストレージデバイス
110 プロセッサ
120 DRAM
122 メモリコントローラーユニット(MCU)
130 FPGA
132 暗号化アクセラレータ
140 不揮発性メモリ
142 ストレージモジュール
142P データページ
142B ブロック
144 ストレージコントローラー、フラッシュ変換ロジック
150 ネットワークインターフェース
200 ネットワークハードウェア
210 統合されたプロセッサ
220 トラフィックルーター
222 ポリシーエンジン
224 ロードバランサー
226 リソースマネージャー
228 仮想IPプロバイダ
230 入力ブロックチェーン要請
240 追加的計算ユニット

Claims (21)

  1. 第1不揮発性メモリと、
    前記第1不揮発性メモリを制御するように構成される第1ストレージコントローラと、
    第1ネットワークインターフェースと、
    第1ブロックチェーンアルゴリズムを具現して前記第1ストレージコントローラを介して前記第1不揮発性メモリに前記第1ブロックチェーンアルゴリズムに対応するブロックチェーンの少なくとも一つのブロックを格納するように構成される第1FPGA(Field Programmable Gate Array )と、
    第1コマンドを格納するように構成される第1メモリを含む第1プロセッサと、を包含し、
    前記第1コマンドは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが前記第1ネットワークインタフェースを介して前記ブロックチェーンの少なくとも一つのブロックを伝送及び受信して前記ブロックチェーンの前記少なくとも一つのブロック上で前記第1FPGAを制御して前記第1ブロックチェーンアルゴリズムを実行するように惹起することを特徴とするプログラム可能なデータストレージデバイス。
  2. 前記第1ストレージコントローラは、キーバリューストア(key-value store)を具現し、
    前記第1ストレージコントローラは、キーとしてのブロックのハッシュバリューと関連して、前記キーバリューストアのバリューとしての前記ブロックチェーンの前記少なくとも一つのブロックを格納するように構成される、ことを特徴とする請求項1に記載のプログラム可能なデータストレージデバイス。
  3. 前記第1ストレージコントローラは、前記第1不揮発性メモリにデータの第1タイプのデータ及び第2タイプのデータを格納するように構成され、
    前記第1タイプの前記データは、ブロックチェーンデータであり、前記第2タイプの前記データは、前記第1タイプの前記データと異なる、ことを特徴とする請求項1に記載のプログラム可能なデータストレージデバイス。
  4. 前記第1メモリは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが前記プログラム可能なデータストレージデバイスを、ブロックチェーンネットワークのブロックチェーンのノードとしてオペレーションさせるように惹起する第2コマンドを格納するように、さらに構成される、ことを特徴とする請求項1に記載のプログラム可能なデータストレージデバイス。
  5. 前記第1ストレージコントローラは、第1サイズと関連して、前記第1不揮発性メモリにデータを格納するように構成され、
    前記ブロックチェーンの各ブロックは、第2サイズを有し、
    前記第2サイズは、前記第1サイズの倍数である、ことを特徴とする請求項1に記載のプログラム可能なデータストレージデバイス。
  6. 前記第2サイズは、前記第1サイズと同一である、ことを特徴とする請求項5に記載のプログラム可能なデータストレージデバイス。
  7. 前記第1不揮発性メモリは、NANDフラッシュを包含し、
    前記第1ストレージコントローラは、フラッシュ変換ロジックモジュールを包含し、
    前記第1サイズは、NANDブロックサイズである、ことを特徴とする請求項5に記載のプログラム可能なデータストレージデバイス。
  8. 前記第1メモリは、第3コマンドを格納するようにさらに構成され、
    前記第3コマンドは、前記第1プロセッサによって実行されるとき、前記第1プロセッサは、
    前記第1ブロックチェーンアルゴリズムと異なる第2ブロックチェーンアルゴリズムを具現するための前記第1FPGAをプログラムするためのビットファイルをロード(load)し、
    前記第2ブロックチェーンアルゴリズムを具現するための前記第1FPGAを再構成するための前記ビットファイルを使用して前記第1FPGAをプログラムするように惹起する、ことを特徴とする請求項1に記載のプログラム可能なデータストレージデバイス。
  9. 前記ビットファイルは、前記第1不揮発性メモリに格納される、ことを特徴とする請求項8に記載のプログラム可能なデータストレージデバイス。
  10. 前記ビットファイルは、前記第1ネットワークインターフェースを通して受信される、ことを特徴とする請求項8に記載のプログラム可能なデータストレージデバイス。
  11. 前記第1FPGAは、暗号化アクセラレーターを包含し、前記暗号化アクセラレーターを使用して、前記第1ブロックチェーンアルゴリズムを具現するように、さらに構成される、ことを特徴とする請求項1に記載のプログラム可能なデータストレージデバイス。
  12. 第2不揮発性メモリと、
    前記第2不揮発性メモリを制御するように構成される第2ストレージコントローラと、
    第2ネットワークインターフェースと、
    前記第1ブロックチェーンアルゴリズムを具現して前記第2ストレージコントローラを介して前記第2不揮発性メモリに前記第1ブロックチェーンアルゴリズムに対応する前記ブロックチェーンの少なくとも一つのブロックを格納するように構成される第2FPGA(Field Programmable Gate Array )と、
    第4コマンドを格納するように構成される第2メモリを包含し、
    前記第4コマンドは、第2プロセッサによって実行されるとき、前記第2プロセッサが前記第2ネットワークインターフェースを介して前記ブロックチェーンの前記少なくとも一つのブロックを伝送又は受信して前記ブロックチェーンの前記少なくとも一つのブロック上で前記第1ブロックチェーンアルゴリズムを実行するように前記第2FPGAを制御するように惹起できる、ことを特徴とする請求項1に記載のプログラム可能なデータストレージデバイス。
  13. 第1不揮発性メモリと、
    前記第1不揮発性メモリを制御するように構成される第1ストレージコントローラと、
    第1ネットワークインターフェースと、
    第1ブロックチェーンアルゴリズムを具現して、前記第1ストレージコントローラを介して前記第1不揮発性メモリに前記第1ブロックチェーンアルゴリズムに対応する第1ブロックチェーンの少なくとも一つのブロックを格納するように構成される第1FPGAと、
    第1コマンドを格納するように構成される第1メモリを含む第1プロセッサを含む第1プログラム可能なデータストレージデバイスと、
    第2不揮発性メモリと、
    前記第2不揮発性メモリを制御するように構成される第2ストレージコントローラと、
    第2ネットワークインターフェースと、
    第2ブロックチェーンアルゴリズムを具現して、前記第2ストレージコントローラを介して前記第2不揮発性メモリに前記第2ブロックチェーンアルゴリズムに対応する第2ブロックチェーンの少なくとも一つのブロックを格納するように構成される第2FPGAと、
    第2コマンドを格納するように構成される第2メモリを含む第2プロセッサを含む第2プログラム可能なデータストレージデバイスと、
    前記第1ネットワークインターフェースを介して、前記第1プログラム可能なデータストレージデバイスと通信し、前記第2ネットワークインターフェースを介して前記第2プログラム可能なデータストレージと通信し、少なくとも2つのブロックチェーンのネットワークと通信するように構成され、第3プロセッサ、及び第3コマンドを格納するように構成される第3メモリを含むネットワークハードウェアと、を包含し、
    前記第1コマンドは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが前記第1ネットワークインターフェースを介して前記ブロックチェーンの少なくとも一つのブロックを伝送及び受信し、前記第1ブロックチェーンの前記少なくとも一つのブロック上で前記第1ブロックチェーンアルゴリズムを実行するための前記第1FPGAを制御するように惹起し、
    前記第2コマンドは、前記第2プロセッサによって実行されるとき、前記第2プロセッサが前記第2ネットワークインターフェースを介して前記ブロックチェーンの前記少なくとも一つのブロックを伝送及び受信し、前記第2ブロックチェーンの前記少なくとも一つのブロック上で前記第2ブロックチェーンアルゴリズムを実行するために前記第2FPGAを制御するように惹起し、
    前記第3コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサが、前記少なくとも2つのブロックチェーンネットワークからブロックチェーンの要請を受信し、前記第1プログラム可能なデータストレージデバイス及び前記第2プログラム可能なデータストレージデバイスのうち、少なくとも一つに前記ブロックチェーンの要請を分配するように惹起する、ことを特徴とするプログラム可能なネットワークデータストレージシステム。
  14. 前記第1ブロックチェーンアルゴリズムは、前記第2ブロックチェーンアルゴリズムと異なり、
    前記ネットワークハードウェアの前記第3メモリは、第4コマンドをさらに格納し、
    前記第4コマンドは、前記第3プロセッサによって実行されるとき、第3プロセッサは、
    前記ブロックチェーンの要請が前記第1ブロックチェーンアルゴリズム及び前記第2ブロックチェーンアルゴリズムのうち、少なくとも1つに関連しているか否かを判別し、
    前記ブロックチェーンの要請が前記第1ブロックチェーンアルゴリズムと関連される場合、前記ブロックチェーンの要請を前記第1プログラム可能なデータストレージデバイスに分配し、
    前記ブロックチェーンの要請が前記第2ブロックチェーンアルゴリズムと関連される場合、前記ブロックチェーンの要請を前記第2プログラム可能なデータストレージデバイスに分配する、ことを特徴とする請求項13に記載のプログラム可能なネットワークデータストレージシステム。
  15. 前記第4コマンドは、第5コマンドを包含し、
    前記第5コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサが前記ブロックチェーンの要請を、複数のサブタスクに分割し、前記サブタスクを、前記第1プログラム可能なデータストレージデバイス及び前記第2プログラム可能なデータストレージデバイスに分配する、ことを特徴とする請求項14に記載のプログラム可能なネットワークデータストレージシステム。
  16. 前記第1メモリは、第6コマンドをさらに格納し、前記第3メモリは、第7コマンドをさらに格納し、
    前記第6コマンドは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが前記第1ブロックチェーンアルゴリズムとは異なる第3ブロックチェーンアルゴリズムを具現するために前記第1FPGAをプログラムするためのビットファイルをロードし、前記第3ブロックチェーンアルゴリズムを具現するための前記第1FPGAを再構成するためのビットファイルを使用して前記第1FPGAをプログラムするように惹起し、
    前記第7コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサが、前記第1プロセッサを制御して前記第3ブロックチェーンアルゴリズムを具現するために、前記第1FPGAを再構成するための前記第7コマンドを実行する、ことを特徴とする請求項13に記載のプログラム可能なネットワークデータストレージシステム。
  17. 前記第3メモリは、第8コマンドをさらに格納し、
    前記第8コマンドは、前記第3プロセッサによって実行されるとき、前記第3プロセッサは、
    前記少なくとも2つのブロックチェーンネットワークのそれぞれの状態をモニタリングし、
    前記第1プログラム可能なデータストレージデバイスの第1状態及び前記第2プログラム可能なデータストレージデバイスの第2状態を追跡し、
    前記少なくとも2つのブロックチェーンネットワークのそれぞれの状態である、前記第1状態及び前記第2状態に基づいて、前記第2プログラム可能なデータストレージデバイスの再割り当てを識別し、
    前記再割り当てにより、前記第1ブロックチェーンアルゴリズムを具現するために、前記第2FPGAを再構成するように惹起する、ことを特徴とする請求項13に記載のプログラム可能なネットワークデータストレージシステム。
  18. 前記第1ストレージコントローラは、キーバリューストアを具現し、
    前記第1ストレージコントローラは、キーとしてのブロックのハッシュバリューに基づいて、前記キーバリューストアのバリューとして前記第1ブロックチェーンの前記少なくとも一つのブロックを格納するように構成される、ことを特徴とする請求項13に記載のプログラム可能なネットワークデータストレージシステム。
  19. 前記第1メモリは、第9コマンドをさらに格納し、
    前記第9コマンドは、前記第1プロセッサによって実行されるとき、前記第1プロセッサが、前記少なくとも2つのブロックチェーンネットワークのブロックチェーンネットワークにおけるブロックチェーンのノードとして、前記第1プログラム可能なデータストレージデバイスをオペレーションさせるように惹起する、ことを特徴とする請求項13に記載のプログラム可能なネットワークデータストレージシステム。
  20. 前記第1ストレージコントローラは、第1サイズにより、前記第1不揮発性メモリにデータを格納し、
    前記第1ブロックチェーンの各ブロックは、第2サイズを有し、
    前記第2サイズは、前記第1サイズの倍数である、ことを特徴とする請求項13に記載のプログラム可能なネットワークデータストレージシステム。
  21. 前記第1不揮発性メモリは、NANDフラッシュを包含し、
    前記第1ストレージコントローラは、第1フラッシュ変換ロジックモジュールを包含し、
    前記第1サイズは、NANDブロックのサイズである、ことを特徴とする請求項20に記載のプログラム可能なネットワークデータストレージシステム。
JP2019011394A 2018-02-23 2019-01-25 プログラム可能なデータストレージデバイス、及びネットワークデータストレージシステム Active JP7169208B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862634651P 2018-02-23 2018-02-23
US62/634651 2018-02-23
US15/981460 2018-05-16
US15/981,460 US10880071B2 (en) 2018-02-23 2018-05-16 Programmable blockchain solid state drive and switch

Publications (2)

Publication Number Publication Date
JP2019144540A JP2019144540A (ja) 2019-08-29
JP7169208B2 true JP7169208B2 (ja) 2022-11-10

Family

ID=67686267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019011394A Active JP7169208B2 (ja) 2018-02-23 2019-01-25 プログラム可能なデータストレージデバイス、及びネットワークデータストレージシステム

Country Status (4)

Country Link
US (3) US10880071B2 (ja)
JP (1) JP7169208B2 (ja)
CN (1) CN110187827B (ja)
TW (1) TWI781248B (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
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
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
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11620642B2 (en) 2018-08-06 2023-04-04 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
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
US10637644B1 (en) 2018-12-21 2020-04-28 Capital One Services, Llc System and method for authorizing transactions in an authorized member network
US10861008B2 (en) * 2018-12-21 2020-12-08 Capital One Services, Llc System and method for optimizing cryptocurrency transactions
CN112927077B (zh) * 2019-09-25 2022-05-24 支付宝(杭州)信息技术有限公司 基于fpga实现合约调用的方法及装置
CN110716724B (zh) * 2019-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 基于fpga实现隐私区块链的方法及装置
US11343075B2 (en) 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing 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 京东科技信息技术有限公司 数据读写方法及装置
CN113254372A (zh) * 2020-08-07 2021-08-13 广东高云半导体科技股份有限公司 用两阶段配置过程提供可编程微控制器的方法和系统
KR20220020717A (ko) * 2020-08-12 2022-02-21 삼성전자주식회사 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 메모리 시스템
CN112564924B (zh) * 2020-11-12 2023-01-03 深圳宏芯宇电子股份有限公司 计算机扩展卡及区块链终端设备
CN112235425B (zh) * 2020-12-14 2021-03-09 长沙理工大学 一种区块链的矿池形成方法、装置、系统及可读存储介质
WO2022141561A1 (zh) * 2020-12-31 2022-07-07 深圳大学 一种面向区块链用户节点的数据存储方法及装置
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017208085A (ja) 2016-05-20 2017-11-24 富士通株式会社 暗号通貨ベースのイベント参加検証
US20180006808A1 (en) 2016-06-29 2018-01-04 Intel Corporation Optimized sha-256 datapath for energy-efficient high-performance bitcoin mining

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979626B2 (en) * 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
CN103777972B (zh) * 2012-10-24 2018-08-31 上海联影医疗科技有限公司 基于现场可编程门阵列的系统、配置方法以及升级方法
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
US11941588B2 (en) * 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
US20170236104A1 (en) * 2016-02-12 2017-08-17 D+H Usa Corporation Peer-to-Peer Financial Transactions Using A Private Distributed Ledger
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017208085A (ja) 2016-05-20 2017-11-24 富士通株式会社 暗号通貨ベースのイベント参加検証
US20180006808A1 (en) 2016-06-29 2018-01-04 Intel Corporation Optimized sha-256 datapath for energy-efficient high-performance bitcoin mining

Also Published As

Publication number Publication date
JP2019144540A (ja) 2019-08-29
TW201946413A (zh) 2019-12-01
US20190268141A1 (en) 2019-08-29
KR20190101869A (ko) 2019-09-02
US20230379141A1 (en) 2023-11-23
TWI781248B (zh) 2022-10-21
CN110187827B (zh) 2021-10-15
US20210111868A1 (en) 2021-04-15
US10880071B2 (en) 2020-12-29
US11750370B2 (en) 2023-09-05
CN110187827A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
JP7169208B2 (ja) プログラム可能なデータストレージデバイス、及びネットワークデータストレージシステム
TWI789904B (zh) 控制非揮發性記憶體之記憶體系統及方法
US9342465B1 (en) Encrypting data in a flash-based contents-addressable block device
US9442941B1 (en) Data structure for hash digest metadata component
US9396243B1 (en) Hash-based replication using short hash handle and identity bit
US9665305B1 (en) Tiering data between two deduplication devices
US9208162B1 (en) Generating a short hash handle
US9418131B1 (en) Synchronization of volumes
US9286003B1 (en) Method and apparatus for creating a short hash handle highly correlated with a globally-unique hash signature
US9378106B1 (en) Hash-based replication
JP4303528B2 (ja) カウンタをインプリメントするシステムおよび方法
Zhang et al. Tagged-MapReduce: A general framework for secure computing with mixed-sensitivity data on hybrid clouds
US8572407B1 (en) GPU assist for storage systems
CN107077300A (zh) 用于平衡分段清除与i/o工作负载的速率匹配技术
EP4035012A1 (en) Network-accessible block-level snapshots
CN114143090B (zh) 基于网络安全架构的防火墙部署方法、装置、设备及介质
KR102670922B1 (ko) 프로그램 가능한 블록체인 ssd 및 스위치
JP2009110407A (ja) キャッシュ方法及びキャッシュ装置
Wang et al. Meta-Block: Exploiting Cross-Layer and Direct Storage Access for Decentralized Blockchain Storage Systems
US9921747B2 (en) Unifying memory controller
Kim et al. FlashLite: A user-level library to enhance durability of SSD for P2P file sharing
KR102338756B1 (ko) 블록 데이터를 공유하는 블록체인 네트워크의 시뮬레이션 방법 및 이를 이용하는 시스템
US20230112692A1 (en) Hybrid digital information storage method and hybrid digital information storage architecture
US11748272B2 (en) Shared keys for no PCBA cartridges
Watkins et al. GassyFS: An In-Memory File System That Embraces Volatility

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221028

R150 Certificate of patent or registration of utility model

Ref document number: 7169208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150