Tools for building applications on KYVE
KYVE, a protocol that enables data providers to standardize, validate, and permanently store blockchain data streams, is a solution for Web3 data lakes. For more information check out the KYVE documentation.
Common:
- common/goutils - go utility functions for this repository
- common/proto - protocol buffer definitions for this repository
Protocol:
- protocol/core - core functionality for running validators on the KYVE network
Runtime:
- runtime/tendermint - The official KYVE Tendermint sync runtime
- runtime/tendermint-ssync - The official KYVE Tendermint state-sync runtime
- runtime/tendermint-bsync - The official KYVE Tendermint block sync runtime
Tools:
- tools/kysor - The Cosmovisor of KYVE
- tools/kystrap - A bootstrap tool for creating new KYVE runtimes
Test
- test/e2e - end-to-end tests for the KYVE protocol and runtimes
A KYVE data validator requires an integration to validate and store data.
An integration consists of the protocol core (client) and the runtime (server).
The protocol core is responsible to communicate between the KYVE blockchain and the runtime and store data blobs on a storage provider (Arweave).
You can choose to write a runtime in Go, Python, or TypeScript. The following steps will guide you through the process of creating a new runtime.
Prerequisites:
Step 1: Clone the repository and checkout a new branch
git clone [email protected]:KYVENetwork/kyve-rdk.git
# Checkout a new branch
# git checkout -b [feat/fix]/runtime/[my-branch-name]
git checkout -b feat/runtime/fancypants
Step 2: Run kystrap
make bootstrap-runtime
Follow the instructions to create a new runtime.
The wizard will create a new folder in runtime/
with the name you provided.
The new runtime will contain a README.md
with further instructions on how to get started.
NOTE: The usage of Conventional Commits is required when creating PRs and committing to this repository
Step1: Create a new PR
Before creating a new release, you need to create a new PR to the main
branch. The PR should contain the changes you want to release.
Step2: Review and merge PR
The CI pipeline will run some checks and tests on the PR.
After the PR is reviewed and merged, the CI pipeline will bump the version, create changelogs and create a new release-PR.
Step3: Merge the release-PR
After the release-PR is merged, the CI pipeline will create a new release and publish it to the GitHub release page.
NOTE: The version bump is done by Release Please with following rules:
- Commits with
fix:
will trigger a patch release - Commits with
feat:
will trigger a minor release - Commits with
feat!:
,fix!:
,refactor!:
, etc. will trigger a major release (breaking change)
It is recommended to use squash-merge for PRs to keep the commit history clean and to avoid unnecessary version bumps.