MCPcopy Index your code
hub / github.com/dsrvlabs/vatz

github.com/dsrvlabs/vatz @v1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.0 ↗ · + Follow
262 symbols 816 edges 58 files 65 documented · 25%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

VATZ (Validators' A To Z)

v_black_square_800px

<img alt="Version"  src="https://img.shields.io/badge/version-v1.2.0-blue.svg?cacheSeconds=2592000"  />    
<a href="https://www.gnu.org/licenses/lgpl-3.0.en.html"  target="_blank"><img alt="License: GPL 3.0"  src="https://img.shields.io/badge/License-GPL 3.0-yellow.svg" /></a>

What is VATZ?

VATZ is a tool for building, analyzing, and managing blockchain node infrastructure safely and efficiently. You can set up VATZ to manage existing or new blockchain nodes and integrate with popular services like PagerDuty, Discord, or Telegram as well as custom in-house solutions.

How does VATZ Project work?

This project is primarily designed to check node states in real time and receive alert notifications for all blockchain protocols, including metrics that the protocol itself might not support.

To this end, it consists of 3 components:

  1. VATZ-Proto: API specification for VATZ (SVC) and VATZ Plugins that implements protobuf allowing users to develop in the language they wish.
  2. VATZ (SVC): Service that executes plugin APIs based on configs, checks plugin health, and sends notifications to configured channels.
  3. VATZ Plugins (with SDK): Plugins that integrate with VATZ to support features like node status checks, metric collection, and command execution.

For further information, check VATZ Project Design

What is the key feature of VATZ Project?

Multi-Protocol Support

Any protocol can be managed through VATZ with plugins. Even unsupported protocols can be integrated through simple plugin development.

Infrastructure as Code

VATZ is described using a high-level configuration syntax. You can divide your plugins into modular components that can then be combined in different ways to behave through automation.

Monitoring

Various logs and node data are collected and exported by a node exporter, then monitored through the 3rd party applications like Grafana.

Data Analysis

VATZ helps build datasets for your protocols, and transfer your data into popular services like Prometheus, Kafka, Google BigQuery, and more. In this way, VATZ aims to optimize your node infrastructure, and operators get insight into dependencies in their infrastructure. (Exp. 2023-Q3)

Change Automation

Complex node operation tasks can be executed through VATZ with minimal human interaction. (Exp. 2023-Q4)

Our Mission

We're on a mission to both transform the way people experience blockchain technology, and help them shape it. As validators, we provide tools for low-cost and low-effort node management for anyone wanting to onboard next-generation blockchain technology.


Usage of VATZ

How to get started with VATZ

Check out the Installation Guide to install and start using VATZ. - You can get started with simple scripts, Please check install scripts instructions

How to use VATZ CLIs

Refer to the VATZ CLIs guide to find available CLI arguments.

Official Plugins

Our team is developing official plugins for easier operation, including basic monitoring metrics.

1. vatz-plugin-sysutil

vatz-plugin-sysutil is VATZ plugin for system utilization monitoring, i.e.: - CPU - DISK - Memory - Network Traffic

2. vatz-plugin-comoshub

vatz-plugin-comoshub is VATZ plugin for cosmoshub node monitoring for followings: - Node Block Sync - Node Liveness - Peer Count - Active Status - Node Governance Alarm

Community Plugins

We encourage everyone to share their plugins to make node operating easier.


Release Note

Please check the Release Note for details of the latest releases. - VATZ - vatz-plugin-comoshub - vatz-plugin-sysutil


We welcome your feedback

We're constantly striving to enhance and build on open-source resources. Feel free to share your thoughts or feedback with us regarding VATZ. You can start by registering any issues you might find!

Let’s continue building VATZ together!

Contributing

VATZ welcomes contributions! If you are looking to contribute, please check the following documents. - Contributing explains what kinds of contributions we look for and how to contribute. - Project Workflow Instructions explains how to build and test.

License

The VATZ library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the LICENSE.LESSER file.

The VATZ binaries (i.e. all code inside of the cmd directory) are licensed under the GNU General Public License v3.0, also included in our repository in the LICENSE file.

Contact us

Please don’t hesitate to contact us if you need any further information about VATZ.

Who are we

A leading blockchain technology company, DSRV validates for 40+ global networks and provides infrastructure solutions for next-level building. This includes All That Node (enterprise-grade NaaS supporting 24+ protocols) and WELLDONE Studio (multi-chain product suite for developers and retail users alike).

Our ethos is to adapt to what the market and community need; our mission to advance the next internet and enable every player to build what they envision.

Homepage Medium Github Youtube Twitter

Extension points exported contracts — how you extend this code

Executor (Interface)
Executor provides interfaces to execute plugin features. [5 implementers]
manager/executor/executor.go
VatzRPC (Interface)
VatzRPC provides RPC interfaces. [4 implementers]
rpc/rpc.go
Dispatcher (Interface)
Dispatcher Notification provides interfaces to send alert dispatcher message with variable channel. [4 implementers]
manager/dispatcher/dispatcher.go
HealthCheck (Interface)
HealthCheck provides interfaces to check health. [2 implementers]
manager/healthcheck/healthcheck.go
Plugin (Interface)
Plugin provides interfaces to manage plugin. [1 implementers]
sdk/sdk.go
VatzPluginManager (Interface)
VatzPluginManager provides management functions for plugin. [1 implementers]
manager/plugin/plugin.go
GCP (Interface)
(no doc) [1 implementers]
monitoring/gcp/gcp.go

Core symbols most depended-on inside this repo

Get
called by 22
manager/plugin/db.go
GetConfig
called by 16
manager/config/config.go
InitConfig
called by 15
manager/config/config.go
AbsoluteHomePath
called by 12
manager/config/config.go
NewManager
called by 10
manager/plugin/plugin.go
newWriter
called by 8
manager/plugin/db.go
MakeUniqueValue
called by 7
utils/utils.go
Start
called by 7
manager/plugin/plugin.go

Shape

Method 99
Function 89
Struct 56
Interface 11
TypeAlias 7

Languages

Go100%

Modules by API surface

manager/plugin/db.go22 symbols
manager/plugin/plugin.go21 symbols
manager/config/config.go17 symbols
types/manager.go16 symbols
manager/config/config_test.go11 symbols
sdk/sdk.go10 symbols
utils/utils.go9 symbols
rpc/rpc.go7 symbols
monitoring/prometheus/prometheus.go7 symbols
mocks/HealthCheck.go7 symbols
monitoring/prometheus/prometheus_test.go6 symbols
monitoring/gcp/gcp_client.go6 symbols

For agents

$ claude mcp add vatz \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page