fabric-block-archiving

module
v0.0.0-...-ea48f79 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2019 License: Apache-2.0

README

Lab Name

Hyperledger Fabric Block Archiving

Short Description

  • Reduce the total amount of storage space required for an organisation to operate a Hyperledger fabric network by archiving block data into repository.
  • For organisations to operate a Hyperledger fabric network with low resourced nodes such as a IoT edge devices.

Scope of Lab

This feature is aimed primarily at Hyperledger Fabric network administrators who have been running their own network and have resource shortage problems. When considering the long term operation of service which makes use of Hyperledger Fabric as an underlying blockchain, Scalability is one of the most important factors for future business expansion while resource planning is critical in determining future capability. Calculating the required disk space is one of the key challenges faced by our partners. In the Blockchain community, there are a lot options to address this issue. In Bitcoin, Lightweight Node has already been introduced as an option for non-miners which download just the block headers so as to reduce disk space usage. Ethereum, the community has defined the Light client protocol for almost the same purpose as bitcoin's one. While in Hyperledger Fabric, there is a feature request for this issue as well. Unless this kind of feature is available, the business stakeholders will not be able to start their service in production on a large scale. This is one of the main reasons why most of the business stakeholders have considered making use of Blockchain as a Service (BaaS) managed by the cloud service providers despite it incurring more costs.

In our proposal, Hyperledger Fabric Block Archiving, data is handled in the unit of a certain amount of chunk of blocks called blockfiles. By default in Hyperledger Fabric, each peer node in an organisation needs to store block data into the blockfiles one by one from the genesis block to the latest one. So they have the exact same series of blockfiles through all peer nodes which are connecting to the same channel. BlockVault uses this characteristic to realize our concept. This functionality makes redundant the notion that every peer node is required to retain all blockfiles in the local file system indefinitely. And more importantly this preserves the Blockchain characteristics even after archiving the blockfiles. By enabling the block archiving feature not all peer nodes need to keep maintaining all the blockfiles. Simply, even devices which don't have much disk space could be a peer node of the blockchain network. For example, in an IoT system, you would be able to construct a blockchain network using edge devices with attached sensors in order to store sensor data and track information. This feature will make the target areas of the blockchain system broader than ever. Therefore BlockVault provides new possibilities for Blockchain applications.

Please refer to the technical overview for more detail.

Initial Committers

Sponsors

Pre-existing Repository

Directories

Path Synopsis
idemix/handlers/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
sw
cmd
common
deliver/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
flogging/httpadmin/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
flogging/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
grpclogging/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
grpcmetrics/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
ledger/blockledger/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
metrics/metricsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
semaphore
Package semaphore provides an implementation of a counting semaphore.
Package semaphore provides an implementation of a counting semaphore.
core
aclmgmt/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
cclifecycle/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
chaincode/fake
Code generated by counterfeiter.
Code generated by counterfeiter.
chaincode/lifecycle/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
chaincode/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
chaincode/persistence/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
chaincode/platforms/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
committer/txvalidator/v14/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
committer/txvalidator/v20/valinforetriever/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
container/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
deliverservice/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
dispatcher/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
endorser/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
handlers/endorsement/builtin/mocks
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
ledger/customtx/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
ledger/kvledger/txmgmt/queryutil/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
ledger/kvledger/txmgmt/statedb/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
ledger/kvledger/txmgmt/txmgr/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
ledger/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
ledger/pvtdatapolicy/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
middleware/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
operations/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
scc
scc/ascc
Package ascc implements handlers for our newly created system chaincode (ascc: archiving system chaincode) of archiving features.
Package ascc implements handlers for our newly created system chaincode (ascc: archiving system chaincode) of archiving features.
scc/cscc
Package cscc chaincode configer provides functions to manage configuration transactions as the network is being reconfigured.
Package cscc chaincode configer provides functions to manage configuration transactions as the network is being reconfigured.
scc/cscc/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
scc/lscc/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
scc/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
cmd
cmd/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
support/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
api
mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
service/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
images
integration
nwo
internal
configtxgen/encoder/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
peer/blockfile
Package blockfile implements a new subcommand (blockfile) for manipulating blockfiles to peer command.
Package blockfile implements a new subcommand (blockfile) for manipulating blockfiles to peer command.
peer/chaincode/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
peer/channel/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
peer/common/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
peer/gossip/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
peer/lifecycle/chaincode/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
peer/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
msp
Package main is the entrypoint for the orderer binary and calls only into the server.Main() function.
Package main is the entrypoint for the orderer binary and calls only into the server.Main() function.
common/blockcutter/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
common/broadcast/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
common/cluster/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
common/msgprocessor
Package msgprocessor provides the implementations for processing of the assorted message types which may arrive in the system through Broadcast.
Package msgprocessor provides the implementations for processing of the assorted message types which may arrive in the system through Broadcast.
common/msgprocessor/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
common/multichannel
Package multichannel tracks the channel resources for the orderer.
Package multichannel tracks the channel resources for the orderer.
common/multichannel/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
common/server/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
consensus/etcdraft/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
consensus/kafka/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
consensus/mocks
Code generated by counterfeiter.
Code generated by counterfeiter.
protos
msp
fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
client/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
cmd
cmd/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
identity/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
ledger/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
server/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
tms
transaction/mock
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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