Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
964 changes: 964 additions & 0 deletions ARCHITECTURE.md

Large diffs are not rendered by default.

737 changes: 737 additions & 0 deletions CONTRIBUTING.md

Large diffs are not rendered by default.

971 changes: 971 additions & 0 deletions DEVELOPMENT.md

Large diffs are not rendered by default.

119 changes: 110 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,82 @@ KYVE, the Web3 data lake solution, is a protocol that enables data providers to
- [@kyvejs/tendermint](integrations/tendermint/README.md) - The official KYVE Tendermint sync integration
- [@kyvejs/tendermint-ssync](integrations/tendermint-ssync/README.md) - The official KYVE Tendermint state-sync integration
- [@kyvejs/tendermint-bsync](integrations/tendermint-bsync/README.md) - The official KYVE Tendermint block sync integration
- [@kyvejs/evm](integrations/evm/README.md) - The official KYVE EVM integration for Ethereum and EVM-compatible chains
- [@kyvejs/avail](integrations/avail/README.md) - The official KYVE Avail integration for Avail data availability
- [@kyvejs/ethereum-blobs](integrations/ethereum-blobs/README.md) - The official KYVE Ethereum EIP-4844 blobs integration

## Quick Architecture Overview

```mermaid
graph LR
subgraph "Integrations (Runtimes)"
T[Tendermint]
E[EVM]
A[Avail]
B[Ethereum Blobs]
end

subgraph "Core Packages"
P[Protocol]
S[SDK]
Type[Types]
C[Coins]
end

subgraph "Tools"
K[KYSOR]
end

T --> P
E --> P
A --> P
B --> P

P --> S
P --> Type
P --> C
S --> Type

K -.manages.-> T
K -.manages.-> E
K -.manages.-> A

style P fill:#ffd700
style S fill:#87ceeb
style K fill:#90ee90
```

**How it works:**

1. **Integrations** implement data source-specific logic (runtimes)
- Each runtime knows how to fetch and validate data from a specific blockchain
- Examples: Tendermint for Cosmos chains, EVM for Ethereum, Avail for data availability

2. **Protocol** provides core validation and bundle management
- Orchestrates data collection, validation, and storage
- Manages economic calculations and bundle optimization
- Handles communication with KYVE chain

3. **SDK** handles KYVE blockchain interactions
- Signing and broadcasting transactions
- Querying blockchain state
- Supporting multiple wallet types (Keplr, Cosmostation, etc.)

4. **Types** provides TypeScript definitions for all modules
- Auto-generated from Protocol Buffers
- Used by SDK and Protocol packages
- Includes both KYVE and Cosmos SDK types

5. **Coins** provides coin arithmetic utilities
- Multi-denomination calculations
- Similar to sdk.Coins in Cosmos SDK Go implementation

6. **KYSOR** manages protocol node lifecycle and upgrades
- Auto-downloads runtime binaries
- Handles automatic upgrades
- Manages multiple validator accounts (valaccounts)

For detailed architecture documentation, see [ARCHITECTURE.md](ARCHITECTURE.md).

## Build Integration Binaries

Expand Down Expand Up @@ -91,22 +167,47 @@ then compile into a final binary.

## How to contribute

Checkout new branch to implement new features/fixes there
We welcome contributions from the community! Please see our comprehensive guides:

```bash
git checkout -b [feat/fix]/[my-branch-name]
```
- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Full contributor guidelines including:
- Development workflow and branch strategy
- Coding standards and best practices
- Testing requirements
- Creating pull requests
- Building new runtimes

Install dependencies and setup project:
- **[DEVELOPMENT.md](DEVELOPMENT.md)** - Local development setup:
- Prerequisites and installation
- Building and testing packages
- Debugging techniques
- Troubleshooting common issues

- **[ARCHITECTURE.md](ARCHITECTURE.md)** - System architecture:
- Core components and interfaces
- Data flow and bundle lifecycle
- Plugin system and extensibility
- Economic and security models

**Quick Start:**

```bash
# Fork and clone the repository
git clone git@github.com:YOUR_USERNAME/kyvejs.git
cd kyvejs

# Install dependencies and build
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.
# Create a feature branch
git checkout -b feat/my-new-feature

# Make changes, run tests
yarn test

# Submit a PR
```

**NOTE**: The usage of [Conventional Commits](https://conventionalcommits.org) is required when creating PRs and committing to this repository
**NOTE**: We use [Conventional Commits](https://conventionalcommits.org) for all commits and PRs.

## How to release

Expand Down
Loading
Loading