npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@kyvejs/protocol

v1.0.12

Published

<div align="center"> <h1>@kyvejs/protocol</h1> </div>

Downloads

213

Readme

banner

Architecture Overview

The KYVE protocol node is in general responsible for collecting data from various sources and submitting them for validation to the KYVE network. It does that by transforming the data, packaging it in bundles and storing them on permanent storage providers like Arweave, where other protocol nodes can retrieve and validate them for their correctness.

During all that time KYVE protocol nodes are communicating with the KYVE blockchain, a cosmos-sdk based PoS chain providing the main KYVE logic of registering bundle proposals and keeping track of votes.

General protocol node architecture

The basic architecture of a protocol node can be found below:

Overview

  • KYVE blockchain - a cosmos-sdk based PoS blockchain which has all the KYVE logic and is responsible for scheduling bundle proposal rounds and keeping track of bundle proposals and their respected votes from protocol nodes
  • Permanent Storage - usually web3 permanent storage providers like Arweave. This is the place where all validated data from KYVE will be archived
  • Local Node Cache - a local Key-Value-Store on the protocol node for caching all the data which is currently in the validation process
  • Data Sources - data sources defined by the storage pool. There can be multiple data sources or only one. Examples for data sources can be blockchain rpc endpoints or web2 api endpoints which need to be validated and archived
  • Proposal Round Cyclic Updates - schedules both main threads when to start collecting data or when to start validating/uploading bundle proposals. This schedule is dictated by the KYVE blockchain
  • Data Collection Thread - the main thread collecting the required data for the current proposal round. It requests all given data sources defined on the storage pool and writes them to the local node cache
  • Data Indexing Thread - the main thread validating proposed bundles proposals from other protocol nodes and proposing new bundle proposals to the network. It communicates closely with the KYVE blockchain and reads all the cached items for validation and proposition. Also for validation and proposition it reads and writes data to the permanent storage provider

Data collection thread overview

A more detailed architecture overview of the data collection thread can be found below:

  • core logic (red) - all the logic controlled by @kyve/core
  • runtime logic (blue) - all the custom logic defined by the runtime. This is very application specific
  • external data sources (green) - data sources defined on the storage pool which should be validated and archived
  • Key-Value-Store (yellow) - a local Key-Value-Store which serves as cache for the protocol node

Data indexing thread overview

A more detailed architecture overview of the data indexing thread can be found below:

  • core logic (red) - all the logic controlled by @kyve/core
  • runtime logic (blue) - all the custom logic defined by the runtime. This is very application specific
  • external data sources (green) - data sources defined on the storage pool which should be validated and archived
  • Key-Value-Store (yellow) - a local Key-Value-Store which serves as cache for the protocol node
  • Permanent Storage (grey) - a web3 permanent storage provider like Arweave where all the validated data from KYVE gets archived
  • KYVE blockchain (orange) - the KYVE chain which keeps track of bundle proposals and votes