Tools for building applications on KYVE
KYVE, the Web3 data lake solution, is a protocol that enables data providers to standardize, validate, and permanently store blockchain data streams. By leveraging permanent data storage solutions like Arweave, KYVE’s Cosmos SDK chain creates permanent backups and ensures the scalability, immutability, and availability of these resources over time.
Common:
- @kyvejs/types - holds all types for the KYVE application in typescript
- @kyvejs/sdk - development kit for communicating with the KYVE blockchain
- @kyvejs/protocol - core functionality for running validators on the KYVE network
Tools:
- @kyvejs/kysor - The Cosmovisor of KYVE
Integrations:
- @kyvejs/tendermint - The official KYVE Tendermint sync integration
- @kyvejs/tendermint-ssync - The official KYVE Tendermint state-sync integration
- @kyvejs/tendermint-bsync - The official KYVE Tendermint block sync integration
Clone and checkout repository:
git clone git@github.com:KYVENetwork/kyvejs.git
cd kyvejs
Checkout desired version:
git checkout tags/@kyvejs/<integration>@x.x.x -b @kyvejs/<integration>@x.x.x
Example: git checkout tags/@kyvejs/tendermint-bsync@1.0.0 -b @kyvejs/tendermint-bsync@1.0.0
Install dependencies and setup project:
yarn setup
Checkout integration and build binaries:
cd integrations/<integration>
yarn build:binaries
The binaries can then be found in the /out
folder
This is still in alpha and not recommended for production use!
The easiest way to run a KYVE integration is by using the provided Docker images via docker compose.
Prerequisites
- Copy the
docker-compose.yml.template
asdocker-compose.yml
and fill in the required environment variables. - Instead of environment variables, you can also provide a
.env
file in the root directory of the repository. Just copy the.env.template
file as.env
and fill in the required environment variables.
cp docker-compose.yml.template docker-compose.yml
cp .env.template .env
Execution
docker compose up # add -d to run in background; add --build to rebuild images
Checkout new branch to implement new features/fixes there
git checkout -b [feat/fix]/[my-branch-name]
Install dependencies and setup project:
yarn setup
Apply your changes and create a Pull Request to main
. Once the team has
reviewed and approved your PR it can be merged and used.
NOTE: The usage of Conventional Commits is required when creating PRs and committing to this repository
Prerequisites:
- Docker
- yarn (optional)
Run the following command to start the integration wizard:
# with yarn
yarn bootstrap:integration
# or without yarn
sh ./tools/kystrap/start.sh
Follow the instructions to create a new integration.
The wizard will create a new folder in integrations
with the integration name you provided.
In order to release new changes which got merged into main
lerna can be used. Lerna will look into every change and create a new release tag if necessary. After the user has approved the new version tags (bumped according to Semantic Versioning) lerna will push those new tags to main
, starting the CI/CD pipeline and creating the releases.
Release with lerna:
yarn lerna version