#replication #ssb #db #sqlite #basic #backed

ssb-db

用于在ssb上进行复制的最基础的sqlite支持的数据库

4个版本

0.1.7 2022年1月13日
0.1.6 2020年10月16日
0.1.5 2020年4月18日
0.1.4 2020年10月16日

#2303 in 数据库接口

LGPL-3.0

2MB
645 代码行

Build Status

ssb-db

用于在ssb上进行复制的最基础的sqlite支持的数据库

文档

Rust文档


lib.rs:

ssb-db

这是在ssb上进行(旧版)复制所需的最基本的数据库。

旧版复制

"旧版复制"是ssb在ebt之前用于复制的方式

它比ebt简单,但需要更多的带宽。

要进行旧版复制,客户端需要对其想要复制的每个源调用createHistoryStream,并传递它所知道的最大的序列号。

SsbDb

ssb-db定义了一个特质[SsbDb],它提供了制作和处理旧版复制请求所需的所有功能。

架构

[SqliteSsbDb]实现了[SsbDb]特质。

底层架构基于flume-db

ssb-db将数据存储在追加日志中。它使用sqlite维护索引以查询日志。追加日志是事实来源,索引是从日志派生出来的。如果索引损坏或需要迁移,可以删除sqlite数据库并从日志重建。

验证

ssb-db 在追加之前不会验证任何消息。调用者必须首先验证它们。请参阅ssb-validatessb-verify-signatures

依赖

~29–39MB
~634K SLoC