11 个版本 (6 个重大变更)

0.8.0 2024年6月26日
0.7.1 2024年1月26日
0.7.0 2023年11月19日
0.4.0 2022年9月7日
0.1.0 2021年10月25日

#150数据库接口

AGPL-3.0-or-later

1MB
25K SLoC

aquadoggo

可嵌入的 p2panda 网络节点


aquadoggop2panda 的参考节点实现。它旨在使本地第一、协作式 p2p 应用程序的设计和构建尽可能简单,甚至可能有些有趣!

aquadoggo 可在您的设备上运行,用于本地第一的应用程序,或作为共享社区基础设施在公共服务器上运行。像 aquadoggo 这样的节点执行多项任务,包括核心 p2panda 数据复制和验证,帮助边缘节点之间的发现和连接建立,并提供用于构建应用程序的开发者友好的 API。

📖 在我们的 学习 部分,了解更多关于节点的内容
🐬 访问主仓库 README 获取更多信息

功能

  • 通过 GraphQL 等待来自客户端的签名操作。
  • 验证操作的完整性、格式和签名,拒绝无效的操作。
  • 将网络的操作存储在您选择的 SQL 数据库中(SQLite、PostgreSQL)。
  • 在已知数据之上实现视图。
  • 通过 GraphQL 响应过滤、排序和分页的数据查询。
  • 在本地网络和互联网中发现其他节点。
  • 通过 UDP 穿孔或通过中继建立点对点连接。
  • 与其他节点高效复制数据。

安装

要在您的Rust项目中使用aquadoggo,您可以使用以下命令将其添加为依赖项

cargo add aquadoggo

示例

直接在您正在构建的前端旁边运行节点,以实现完整的点对点应用。查看我们的Tauri示例,了解如何编写桌面应用程序。

use aquadoggo::{Configuration, Node};
use p2panda_rs::identity::KeyPair;

let config = Configuration::default();
let key_pair = KeyPair::new();
let node = Node::start(key_pair, config).await;

FFI绑定

如果您不使用Rust,可以从aquadoggo包创建FFI绑定到您首选的编程语言。处理FFI绑定可能有点繁琐,我们还没有为您准备太多(目前),但请查看我们的Meli Android项目,了解我们如何处理Dart / Flutter的FFI绑定。

命令行应用程序

请查看我们的Releases部分,我们在这里发布了Linux、RaspberryPi、MacOS和Windows的二进制文件。

开发

要编译aquadoggo,必须安装Protocol Buffers编译器。

在基于Debian的操作系统上运行

$ sudo apt install -y protobuf-compiler

有关更多选项,请参阅安装文档

许可

GNU Affero通用公共许可证v3.0 AGPL-3.0-or-later

支持者



本项目已获得欧盟“地平线2020”研究和创新计划的支持,该计划在NGI-POINTER项目的框架内,由资助协议号871528和NGI-ASSURE No 957073资助。

依赖项

~63–100MB
~2M SLoC