OstrichGram

欢迎来到 OstrichGram,一款用于 Nostr 网络的聊天软件。通过 OstrichGram,您可以加入 Nostr 上的群聊室,也可以给您的朋友发送消息。

OstrichGram

警告

如果您是 Nostr 的新手,请注意:通常没有“删除按钮”。虽然 nostr 协议有“请求移除”功能,但尚未广泛实现,并且不能保证所有中继都支持它。OstrichGram 没有删除消息的功能。总的来说,Nostr 是去中心化的。它是一个开放协议,没有公司可以打电话寻求帮助。请谨慎使用 nostr 和 OstrichGram,不要用于任何敏感、令人尴尬或有害的内容。

OstrichGram 这样的开源软件可能存在 bug,并且根据其许可证,“不提供适销性保证”。OstrichGram 的早期版本被认为是“Beta”软件,因为它们尚未经过广泛测试。请自行谨慎使用。

概述与功能

通过 OstrichGram,您可以创建自己的密钥和身份,存储朋友的公钥,浏览中继上的聊天室,参与群聊,并向您的朋友发送直接加密消息。简而言之就是这些。它使用了 NIP-01(基础协议)以及 NIP-28(群聊)、NIP-04(直接消息)和 NIP-10(回复)。

屏幕截图

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

一些细节和注意事项

OstrichGram 有一个主 WebSocket 连接,它会管理并一次只打开一个连接。有一个内容管理器会按定时器运行,以跟上缓存除活动窗口外的消息,但这只是部分实现,因此目前一次只有一个连接到一个中继。最终,并且理想情况下在 Nostr 中,聊天室应该是分布式和冗余的,但我们会将其留给未来版本。

每个联系人(朋友)都有一个字段,您可以在其中填写指定您与他们在哪一个中继上聊天。建议每个朋友使用一个中继,并且不要更改它,因为旧消息可能不会显示,尽管理论上 OstrichGram 的缓存系统应该仍然存储旧消息。

总的来说,OstrichGram 有一个缓存功能,但这是一个基本实现,旨在在用户离线时显示旧消息。它还不是一个基于时间戳的缓存系统,未来将需要它来处理大量数据。

OstrichGram 附带了一些安全功能——对获取事件的数量、事件的大小以及您可以从 WebSocket 下载的过载负载的大小都有限制。将来这些将是可定制的。

OstrichGram 是新软件,而且许多中继都不稳定,所以不要期望体验会像中心化服务那样流畅。

头像

OstrichGram 使用 multiAvatar 库,为每个 npub 密钥创建确定性的头像,为每个用户提供独特外观的图标。在 OstrichGram 中,您可以从 16 种头像样式中选择一种来定制您的朋友的头像。在添加朋友时看到的预览头像在联系人保存后的最终头像可能与您看到的略有不同。OstrichGram 还会将群聊中非联系人的颜色变暗,以便在联系人和非联系人之间进行视觉区分。

用户自己的图标由一只鸵鸟表示,如果您创建多个别名,应用程序将循环使用几种颜色。未来,用户和联系人的图标将可定制。

数据库

该应用程序将在您的“我的文档”文件夹中创建 OstrichGram_DB.hive。建议定期备份数据库。如果您想了解更多关于数据库结构的信息,可以阅读 og_hive_interface.dart 中的代码注释块。

如何下载和运行 OstrichGram

首先,下载文件。发布文件在这里:https://ostrichgram.com/Downloads/

对于 Linux 桌面版,下载 linux-build.zip 文件,解压缩,然后导航到 build/linux/x64/release/bundle 目录,然后通过单击图标运行 Ostrichgram。

对于 Windows 桌面版,下载 windows-build.zip 文件,解压缩,然后导航到 build/windows/runner/Release 目录,然后通过单击图标运行 Ostrichgram。

请注意,您不能简单地复制单个文件并将其移动到另一个位置。您需要整个构建文件夹,因为它包含必需的库和 dll 文件等。这显然是部署 Flutter 项目的标准方法。

如何使用 OstrichGram

启动应用程序,然后单击左侧面板导航(左上角的三个条形图标),然后转到“管理我的 ID”。这将带您到 ID 屏幕,您可以在其中创建新用户。之后,您可以单击主屏幕上的蓝色加号图标添加中继,并单击主屏幕上的红色加号图标添加联系人。

如果您想加入群聊,您必须先浏览中继,然后右键单击或左键单击您想加入的聊天室。(目前,您无法输入聊天室 ID 来查找它)。

如果您拥有一台运行缓慢的机器或大量的消息,可以在设置中关闭“验证签名”。

使用 OstrichGram 时,顶部面板在右侧显示网络连接状态。如果您看到“已连接”但没有任何反应,请稍等片刻,因为内容可能正在后台加载。如果它卡住或显示“离线”,您可以单击重新加载图标以重新建立连接并再次发送查询。

如果您发送一条消息但它没有立即显示,请尝试等待至少 10 秒钟再发送。您键入的消息不会立即回显到屏幕。而是应用程序应从中继获取消息,这提供了已成功上传的确认。

如何从源代码自行构建 OstrichGram

OstrichGram 是一个 Flutter 项目。

适用于 Linux 桌面

确保您拥有 Flutter SDK。导航到项目文件夹(ostrichgram),然后运行

flutter config --enable-linux-desktop.

接下来,使用以下命令创建所需的支持文件

flutter create .

最后,使用以下命令构建它

flutter build linux.

这将创建 build 文件夹。

如果遇到问题,可以使用以下命令进行诊断

flutter doctor

您也可以使用以下命令处理某些问题

flutter clean.

适用于 Windows 桌面

首先安装必要的构建工具。安装 Flutter 的常规建议是通过安装 Visual Studio 并选择桌面开发 C++ 工作负载,尽管您无需打开 Visual Studio 即可构建项目。安装 Visual Studio 后,运行

flutter doctor 以确保没有问题。

然后,打开命令提示符并导航到项目文件夹(ostrichgram)。运行此命令

flutter config --enable-windows-desktop

然后运行

flutter create .

最后,

flutter build windows

GitHub

查看 Github