shifty11 / kyve-rdk-fork

Tools for building applications on KYVE

Home Page:https://kyve.network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@kyvejs

banner

Tools for building applications on KYVE


License: Apache-2.0 License: Apache-2.0 License: Apache-2.0 License: Apache-2.0

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.

Project Overview

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:

Tools:

Test

  • test/e2e - end-to-end tests for the KYVE protocol and runtimes

What is a KYVE integration?

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).

protocol-validator

How to write a KYVE runtime

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 git@github.com: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

How to release

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.

About

Tools for building applications on KYVE

https://kyve.network

License:Apache License 2.0


Languages

Language:TypeScript 87.4%Language:Go 8.9%Language:Makefile 1.5%Language:Shell 1.1%Language:Dockerfile 0.6%Language:Python 0.5%Language:JavaScript 0.0%