vStore is a Go application built using Cosmos SDK. It focusses on providing:
- data integrity: attaching timestamp and signature information to data ; and
- data redundancy: running a vstore application on top of CometBFT nodes ; and
- data availability: data is available from any supporting CometBFT nodes ; and
- data security: the blockchain is not used to store your data!
The vStore is released as an ABCI application which commits cryptographic proof alongside data sets to ensure that they are untouched and always verifiable.
This software implements a first draft of vfs as an integral part of the vstore application, this may change in the future.
A reference documentation is deployed at https://vfs.zone.
Usage documentation can be found in this document or in the cmd
package documentation
which also lists some examples here.
To start running an instance of vstore
, execute the following command:
go install github.com/securesharelabs/vstore@latest
vstore --home /tmp/.vfs-home --socket unix://vfs.sock
You can interact with vfs using any ABCI client implementation or you can run a CometBFT node from the same directory that connects with this ABCI application:
export COMETBFT="github.com/cometbft/cometbft/cmd/cometbft@v0.38.10"
go run ${COMETBFT} init --home /tmp/.cometbft-home
go run ${COMETBFT} node --home /tmp/.cometbft-home --proxy_app unix://vfs.sock
Your vstore
instance is now available through the CometBFT RPC, and using the
different subcommands available with vstore, e.g.:
# Sending a transaction
vstore factory --home /tmp/.vfs-home --data "Data that will be signed" --commit
# Querying app info (includes AppHash)
vstore info --home /tmp/.vfs-home
# Querying a transaction hash (as returned by factory)
vstore query --home /tmp/.vfs-home --hash TRANSACTION_HASH_HEX
This package is released as github.com/securesharelabs/vstore
and is composed
of two implementation subpackages:
github.com/securesharelabs/vstore/vfs
: A first draft implementation forvfs
.github.com/securesharelabs/vstore/cmd
: A CLI for storing data with vStore.
Note that it is probable that the vfs
subpackage implementation gets extracted
in later iterations of the project.
You can install dependencies and run the unit test suite using:
go get
go build
go test github.com/securesharelabs/vstore/vfs -v -count=1
You can generate the reference documentation locally using github.com/johnstarich/go/gopages
.
Install gopages
using go install -u github.com/johnstarich/go/gopages
. Then generate the
static reference documentation in a docs
folder using the following command:
gopages -out docs/
The authors of this package cannot be held responsible for any loss of money or any malintentioned- or harmful- usage forms of this package. Please use this package with caution.
Copyright vStore Authors Copyright 2024 SecureShareLabs (https://vfs.zone)
vStore © 2024 by SecureShareLabs is licensed under CC BY-SA 4.0.