Skip to content

pietgeursen/aquadoggo

 
 

Repository files navigation

aquadoggo

Embeddable p2p network node


Configurable node server implementation for the p2panda network running as a command line application or embedded via the library inside your Rust program.

Features

  • Awaits signed operations from clients via a JSON RPC API.
  • Verifies the consistency, format and signature of operations and rejects invalid ones.
  • Stores operations of the network in a SQL database of your choice (SQLite, PostgreSQL or MySQL).
  • Materializes views on top of the known data.
  • Answers filterable and paginated data queries.
  • Discovers other nodes in local network and internet.
  • Replicates data with other nodes.

Example

Embed the node server in your Rust application or web container like Tauri:

use aquadoggo::{Configuration, Runtime};

let config = Configuration::new(None)?;
let node = Runtime::start(config).await;

You can also run the node server simply as a command line application:

$ aquadoggo --help

USAGE:
    aquadoggo [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -d, --data-dir <data-dir>    Path to data folder, $HOME/.local/share/aquadoggo by default on Linux

Installation

With cargo-edit installed run:

$ cargo add aquadoggo

License

GNU Affero General Public License v3.0 AGPL-3.0-or-later

Supported by


This project has received funding from the European Union’s Horizon 2020 research and innovation programme within the framework of the NGI-POINTER Project funded under grant agreement No 871528

About

Node server for the p2panda network handling validation, storage, aggregation and replication of bamboo append-only logs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.5%
  • Dockerfile 0.5%