hyperledger-fabric

module
v0.0.0-...-3d6c228 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2021 License: Apache-2.0

README

Fabric Machine

This project introduces Fabric Machine, an FPGA-based hardware accelerator for Hyperledger Fabric. It is based upon a more general "Blockchain Machine" hardware acceleration technology, which may be extended beyond Fabric to other Hyperledger projects in the future.

Introduction

This project explores the use of network-attached hardware acceleration for Hyperledger Fabric to improve its performance beyond what is achievable by software-only implementation on a multi-core server. It leverages FPGA accelerator cards (such as Xilinx Alveo), which are being increasingly adopted for accelerating cloud workloads and are also available from major public cloud providers such as AWS and Microsoft Azure.

The scalability and peak performance of Fabric is primarily limited by the bottlenecks present in its block validation/commit phase. The validation phase is run by either an endorser peer (which also endorses transactions) or validator peer. This repo provides an implementation of Fabric Machine, a hardware/software co-designed platform with hardware accelerator and modified Fabric software to act as the hardware-accelerated validator peer in a Fabric network.

The Fabric Machine peer is targeted for a server with a network-attached FPGA card in contrast to existing validator peers which run Fabric software on just a multi-core server. The Fabric Machine peer receives blocks from the orderer through a hardware-friendly protocol, and the block data is retrieved in FPGA without any involvement of the host CPU. The extracted block and its transactions are then passed through an efficient block-level and transaction-level pipeline in FPGA, which implements the bottleneck operations of the validation phase. Finally, Fabric software running on the host CPU accesses the block validation results from hardware, and then commits the block to disk-based ledger just like the software-only validator peer. Overall, a Fabric Machine peer is a hardware/software co-designed peer, leveraging both CPUs and FPGA-based acceleration to deliver significantly better performance than just using CPUs in a multi-core server.

For more details about Blockchain/Fabric Machine architecture, see the publications section below.

Stay tuned for more updates soon!

Publications

  • [Paper] H. Javaid, J. Yang, N. Santoso, M. Upadhyay, S. Mohan, C. Hu, G. Brebner. 2021. Blockchain Machine: A Network-Attached Hardware Accelerator for Hyperledger Fabric. arXiv:2104.06968.
  • [Talk] H. Javaid. 2020. Hyperledger Performance Improvements (Presentation, Demo and Discussion). Hyperledger Sydney Meetup.
  • [Talk] S. Mohan. 2020. Hyperledger Performance Improvements (Demo and Discussion). Hyperledger San Francisco Meetup.

Directories

Path Synopsis
common
bcm
fabricmachine
config.go implements utilities to read Fabric machine's configuration data.
config.go implements utilities to read Fabric machine's configuration data.
fabricmachine/pcieutil
Package pcieutil contains utilities to read from and write to registers of a PCIe device.
Package pcieutil contains utilities to read from and write to registers of a PCIe device.
core

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL