pelldvs

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2025 License: Apache-2.0

README

PellDVS

PellDVS is a security engine designed to provide economic security for DVS applications based on the Pell Chain. Developers can use PellDVS to quickly build DVS applications, leveraging its network and security capabilities as the underlying layer for these applications.

PellDVS is structured around three major technical components:

  • Network Layer: PellDVS offers a standard RPC interface and P2P communication interface. It provides a unified user interface for upper-layer applications and facilitates the interconnection of different DVS networks.
  • Security Layer: PellDVS includes a unified signature service and aggregation service, ensuring secure operations for upper-layer applications.
  • Application Layer (AVSI Interface): PellDVS exposes an Abstract Validated Service Interface (AVSI), allowing upper-layer applications to implement the interface specification in any language and use the underlying capabilities of PellDVS.

Quick Start

Follow the steps below to set up PellDVS locally and run an end-to-end (e2e) test.

1. Clone the Repository

First, clone this repository and navigate to the e2e test directory:

git clone https://github.com/0xPellNetwork/pelldvs && cd pelldvs/test/e2e
2. Build the Docker Image

Build the necessary Docker images:

GITHUB_TOKEN=<YOUR_GITHUB_TOKEN> make docker-build-all
3. Start All Dependent Nodes

Start all required nodes in detached mode, ensuring that unused containers are removed:

docker compose up operator -d --remove-orphans
4. Run the Local e2e Test

Run the end-to-end test:

make docker-test-pelle2e
5. Clean Up the Node Environment

Once the e2e test completes, clean up the node environment:

make docker-down

Documentation

For detailed documentation, visit the official PellDVS Documentation.

Releases

To ensure stability, avoid using the main branch for production. Instead, rely on the latest releases.

For production environments or if you need assistance, please feel free to reach out to us via one of the following methods, listed in order of preference:

For more details on how releases are managed, check here.

Security

To report security vulnerabilities, please refer to our bug bounty program.

Contributing

We encourage contributions to PellDVS! Please review our Code of Conduct and familiarize yourself with the contributing guidelines and style guide before getting involved. Additionally, you may find it useful to read the specifications to better understand the project.

Additional Notes:
  • Issue Tracker: For any issues or bugs, please check the Issues page and report new issues if necessary.
  • Testing: We rely on automated tests to maintain code quality. Please ensure that any changes are thoroughly tested.

Thank you for contributing to PellDVS!

Directories

Path Synopsis
aggregator
rpc
avsi
server
Package server is used to start a new AVSI server.
Package server is used to start a new AVSI server.
cmd
bls
merkle
Package merkle computes a deterministic minimal height Merkle tree hash.
Package merkle computes a deterministic minimal height Merkle tree hash.
xchacha20poly1305
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
libs
cli
events
Package events - Pub-Sub in go with event caching
Package events - Pub-Sub in go with event caching
flowrate
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
json
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
log
net
os
query
Package query implements the custom query format used to filter event subscriptions in PellDVS.
Package query implements the custom query format used to filter event subscriptions in PellDVS.
query/syntax
Package syntax defines a scanner and parser for the PellDVS event filter query language.
Package syntax defines a scanner and parser for the PellDVS event filter query language.
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
p2p
pex
pkg
Package privval provides different implementations of the types.PrivValidator.
Package privval provides different implementations of the types.PrivValidator.
proto
rpc
jsonrpc
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
jsonrpc/server
Commons for HTTP handling
Commons for HTTP handling
scripts
metricsgen
metricsgen is a code generation tool for creating constructors for PellDVS metrics types.
metricsgen is a code generation tool for creating constructors for PellDVS metrics types.
metricsgen/metricsdiff
metricsdiff is a tool for generating a diff between two different files containing prometheus metrics.
metricsdiff is a tool for generating a diff between two different files containing prometheus metrics.
Package security provides functionality for managing the security aspects of the distributed validation system, including request storage and operator state
Package security provides functionality for managing the security aspects of the distributed validation system, including request storage and operator state
state
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL