Parlons!一场没有中心的对话
中文
English简体中文РусскийУкраїнська
手册

Parlons Cloud Portal 手册

在手机上使用始终在线的账户,以及为自己和他人托管账户。

目录
  1. 1. Portal 的用途
  2. 2. 本手册使用的术语
  3. 3. 安装应用
  4. 4. 将应用与你的账户配对
  5. 5. 主屏幕
  6. 6. 聊天
  7. 7. 联系人
  8. 8. 钱包
  9. 9. 节点
  10. 10. 添加更多设备:所有者邀请
  11. 11. 为朋友托管:访客邀请
  12. 12. 节点工具:终端 IDE 和控制面板
  13. 13. 设置参考
  14. 14. 通知、通话和保持连接
  15. 15. 在其他 Parlons 应用中使用你的账户
  16. 16. 备份、恢复和迁移
  17. 17. 账户持有人故障排除
  18. 18. 你需要哪种主机?
  19. 19. 在自己的机器上运行一个账户:一行命令安装程序
  20. 20. 在 VPS 上运行一个账户:deploy-parlons-cloud.sh
  21. 21. 多个账户:parlons-tenants 服务
  22. 22. 创建、暂停和移除租户
  23. 23. 从服务器发出所有者邀请和访客邀请
  24. 24. 本地网页面板
  25. 25. 命令行参数参考
  26. 26. parlons 命令
  27. 27. 数据目录中的文件
  28. 28. 端口、防火墙、TLS 和反向代理
  29. 29. 升级和回滚
  30. 30. 日志
  31. 31. 运维人员安全须知
  32. 32. 运维人员故障排除
  33. 33. 术语表

你的 Parlons 账户,放在一台从不休眠的机器上保持在线,用手机来操作。

本手册涵盖:

两者都可以在发布页面下载:https://github.com/eurobuddha/maxima/releases。

程序发布标签要下载的文件
Portal(Android)portal-v0.2.90parlons-cloud-portal-0.2.90-release.apk
Parlons Cloud(主机)cloud-v0.11.124parlons-cloud-0.11.124.jar

parlons-cloud-0.11.124.jar 的 SHA-256 为:

0ae833429b641393f93b427695784b534e8a2a06a7194eba74e57aed4f19b231

A 部分面向通过 Portal 应用使用账户的人。B 部分面向托管账户的人。每项任务都有带编号的操作步骤。屏幕上显示的标签用粗体表示。需要输入的命令放在代码块中。

配套手册有 Parlons! 手册(完整版 Parlons! 应用)和 Parlons Node 手册(Parlons Node,即内置 Parlons 账户的完整 Minima 节点)。


1Portal 的用途

Parlons 账户是一个让你的身份保持在线的小程序。它保存你的联系人和聊天记录,在你的手机关机时接收消息,并让你配对的每台设备都看到同样的对话。它需要一台保持开机并能访问外网的机器。

Parlons Cloud Android 应用(本手册称之为 Portal)是通往这样一个账户的窗口。它自身不持有任何聊天身份。配对时,它只会创建自己的设备密钥,此后通过 Parlons 的端到端加密传输来操作账户。应用的第一个屏幕是这样说的:

你的身份、聊天和钱包都保存在你始终在线的节点上,每台设备都能访问。此手机作为安全客户端与节点配对。没有你的一次性配对码,任何人都无法配对,你也可以随时撤销此手机的访问权限。

谁会使用它

在 iPhone 上,Parlons 应用承担同样的工作;它用同样的邀请与同类账户配对。Android 上的完整版 Parlons! 应用则不同:它把身份保存在手机本身,不与账户配对(第 15 节)。

什么是账户,什么是租户

术语含义
账户一个 Parlons 身份(24 个单词),连同它的联系人、聊天、已配对设备、设置,通常还有一个钱包。它运行在 parlons-cloud、Parlons Node 或桌面节点应用中。
所有者账户属于运行这台机器的人的账户。在 Parlons Node 上,它就是节点自己的身份。
租户多账户主机中的一个账户。每个租户是一个文件夹 <dir>/<name>/,结构与单个账户相同。每个租户都有自己的身份、设备、联系人、聊天和备份。
托管账户(访客)为朋友创建的租户的日常叫法。访客无法访问所有者的账户、所有者的 Minima 终端或托管控制功能。
仅聊天账号由所有者账户的内置托管功能创建的访客账户(Parlons Node、minimaCore Desktop、minimaDesk,或启用了托管的独立 parlons-cloud)。它只有聊天、通话和文件功能;钱包、节点终端、NFT 托管和主机管理均已关闭。

主机能做什么,不能做什么


2本手册使用的术语

完整的术语表在末尾(第 33 节)。下面是马上就会用到的几个词:


A 部分:通过 Portal 应用使用账户

3安装应用

如何安装应用

  1. 在你的 Android 手机上打开 https://github.com/eurobuddha/maxima/releases,找到标签为 portal-v0.2.90 的发布版本。
  2. 下载其中附带的 APK:parlons-cloud-portal-0.2.90-release.apk。
  3. 打开下载的文件。如果 Android 提示,请允许你的浏览器或文件管理器安装应用,然后点按安装。
  4. 打开 Parlons Cloud。第一个屏幕的标题是在云端运行 Parlons。接着按第 4 节进行配对。

应用需要 Android 9 或更高版本。它会在首次需要时请求以下权限:相机(扫描二维码、视频通话、拍照)、麦克风(语音消息和通话)、通知,以及后台运行。

如何更新应用

  1. 从发布页面下载更新的 parlons-cloud-portal-<version>-release.apk。
  2. 打开它并点按安装。Android 会覆盖安装旧版本。
  3. 打开 Parlons Cloud。你的配对会保留,应用直接打开你的账户。

如何卸载应用

应用不使用 Android 的云端备份,因此卸载会删除此手机的设备密钥。账户本身不受影响。

  1. 在另一台已配对的设备上,打开节点 → 已配对设备,点按此手机旁边的撤销(第 9 节)。
  2. 在 Android 的应用设置中卸载 Parlons Cloud。
  3. 以后要再次使用这部手机,请安装应用,并用新的配对码进行配对(第 10 节)。

4将应用与你的账户配对

你需要从以下某处获得一个邀请(或一个地址加一个配对码):

你的账户运行在哪里邀请从哪里来
你自己的电脑,用一行命令安装程序安装安装结束时以文本和二维码形式打印出来(第 19 节)。之后可在那台电脑上运行 parlons invite 或 parlons newcode。
你自己的 VPS,用 deploy-parlons-cloud.sh 安装由部署脚本打印出来(第 20 节)。
Parlons Node在服务器上运行 sudo parlons-pair --admin(第 23 节)。
托管账户由主机运维人员给你,或由所有者通过显示邀请展示给你(第 11 节)。
你已在另一台设备上使用的账户在那台设备上:节点 → 配对我的其他设备(第 10 节)。

如何用邀请配对

  1. 打开 Parlons Cloud。第一个屏幕的标题是在云端运行 Parlons。
  2. 选择以下一种方式:
    • 点按扫描配对二维码,用相机对准邀请二维码。应用会填好两个字段,并显示地址和配对码已扫描。
    • 或者把完整的邀请粘贴到标有账号地址或配对邀请的字段中。点按连接并配对时,配对码部分会被拆分到配对码字段中。
    • 或者只把地址粘贴到第一个字段,再在配对码中输入配对码(例如 ABCD-EFGH-JKLM)。
  3. 点按连接并配对。
  4. 状态行先显示正在连接网络…,然后显示已找到账号,正在配对…。
  5. 配对码有效时,应用会直接打开你的账户。该配对码随即作废。不需要其他设备批准。

应用会记住你输入的地址,所以一次尝试失败后不必重新输入。

如何在没有配对码的情况下配对

当你有地址但没有配对码时使用此方法。必须由另一台已配对的设备批准这部手机。

  1. 把完整的 MAX# 地址粘贴到账号地址或配对邀请中。
  2. 配对码留空。
  3. 点按连接并配对。账户会把这部手机放入等待列表。应用显示:

    已请求配对。请在已配对的设备上批准,然后重新打开。

    随后显示此设备的密钥。

  4. 在一台已配对的设备上批准这部新手机。可以用以下任一方式:
    • 在 Portal 中:节点 → 等待批准,然后点按密钥旁边的批准。
    • 在装有 parlons 命令的终端中:
      parlons approve <key>
    • 在网页面板中:设备,然后点按等待批准下的批准。
  5. 回到新手机上,重新打开 Parlons Cloud,再次点按连接并配对。

如果配对失败

消息含义怎么办
无法连接:…,并附有 请确认账号在线且地址正确。账户已停止、没有网络,或者刚刚启动。检查地址是否完整。请运行账户的人确认它正在运行(第 17 节)。再试一次。
配对失败:…配对码错误、已被使用,或已被更新的配对码替换。获取一个新邀请,重新配对。
请输入或扫描您的账号地址地址字段为空。粘贴或扫描地址。

如何阅读服务器设置说明

  1. 在第一个屏幕上,点按初次使用?设置账号服务器 ▸。会展开一段简短说明,介绍如何运行你自己的账户服务器。其中显示部署命令以及完整指南的位置(仓库中的 cloud/SETUP.md)。
  2. 点按任一灰色框即可复制其中的文本。应用显示已复制。
  3. 点按设置账号服务器 ▾,将说明重新收起。

本手册的 B 部分更详细地介绍了同样的内容。

如何更改应用的语言

  1. 打开语言列表:
    • 在第一个屏幕上,点按顶部的更改语言。
    • 配对后,打开更多 → 设置,点按最上方的按钮,按钮上写着 English · 简体中文 · Русский · Українська。
  2. 点按你想要的语言。列表关闭,应用切换语言。此选择仅对这台设备生效。

5主屏幕

配对后,应用打开时有四个标签页:聊天、联系人、钱包和节点。左右滑动或点按即可切换。

顶部栏

项目作用
设置打开设置屏幕(第 13 节)。
设置账户名称跳转到“节点”标签页,并要求输入新的账户名称。
复制账户地址复制完整的 MAX# 地址。
节点状态跳转到“节点”标签页。
取消此设备的配对询问取消此设备的配对?,然后在此手机上忘记该账户。

如何搜索账户

  1. 点按顶部栏中的搜索。
  2. 在搜索消息…中输入内容。结果显示在联系人和群组和消息下。没有匹配结果。 表示没有搜到任何内容。
  3. 点按某个结果即可打开对应聊天。点按返回退出搜索。

如何更改主题

  1. 点按顶部栏中的主题。每点按一次就切换到下一个选项:浅色、深色、系统。
  2. 一条简短消息(例如 主题:深色)会确认你的选择。

如何复制账户地址

  1. 点按更多 → 复制账户地址。
  2. 应用显示账户地址已复制。剪贴板中是完整的 MAX# 地址。

如何取消此手机的配对

  1. 点按更多 → 取消此设备的配对。
  2. 取消此设备的配对?对话框会说明此手机将不再操作你的云端账户。
  3. 点按取消配对。应用返回第一个屏幕。
  4. 在另一台已配对的设备上,撤销此手机的条目(第 9 节)。在你撤销之前,账户仍将它列为已配对设备。

取消此设备的配对只会清除此手机上的配对。你的账户及其身份仍保留在节点上。其他设备照常工作,你也可以用新的配对码重新配对这部手机。


6聊天

聊天标签页列出你的对话,最新的排在最前,并显示未读数量。

还没有聊天时,标签页显示:还没有聊天。在“联系人”标签页添加联系人,然后发送消息。

如何打开或查找聊天

  1. 打开聊天标签页。
  2. 要缩小列表范围,可在顶部的搜索字段中输入名称的一部分。
  3. 点按聊天即可打开。

如何创建群组

你需要先至少有一个联系人。否则应用会显示 请先添加联系人,才能创建群组。

  1. 在聊天标签页上,点按新建群组按钮。
  2. 在群组名称中输入名称。
  3. 至少勾选一位成员。
  4. 点按创建。应用显示群组已创建,群组出现在列表中。

如果在没有名称或没有成员的情况下点按创建,应用会显示 请为群组命名并至少选择一位成员。

如何将聊天标为已读或清空聊天

  1. 在聊天标签页上,长按该聊天。
  2. 点按标为已读(有未读消息时显示)。应用显示已标为已读。
  3. 或者点按清空消息。会出现清空此聊天?对话框。点按清除确认。应用显示聊天已清空。

清空只会从你的账户中删除消息。它不会撤回消息,也不会退出群组,并且无法撤销。

聊天内部

副标题显示位于你的云账号:消息保存在账户上,这个屏幕只是查看它们的窗口。

如何发送消息

  1. 在底部的消息字段中输入内容。
  2. 点按发送按钮(有文字时它会显示一个箭头)。

如何发送语音消息

  1. 让消息字段保持为空。发送按钮会显示一个麦克风。
  2. 点按麦克风。语音消息对话框打开,显示计时器和最大时长。
  3. 开始说话。
  4. 点按发送发送,或点按取消丢弃。录音太短,请再录一会儿表示录音太短。

你也可以从添加附件 → 语音消息开始录制语音消息。

如何发送照片或文件

  1. 点按添加附件。
  2. 选择一项:
    • 照片图库:选择一张照片。发送照片对话框可让你添加说明…。点按发送。
    • 私密文件:打开 Android 的文件选择器。选择文件,即可将其发送到此聊天中。
    • 文件传输:打开此聊天中的文件传输列表。
  3. 如果要拍一张新照片,请点按消息字段旁边的相机按钮。

如何呼叫联系人

  1. 打开一个一对一聊天。
  2. 点按聊天顶部栏中的语音通话或视频通话。
  3. 应用首次请求时,允许使用麦克风(视频通话还需允许相机)。
  4. 通话中可使用静音、扬声器、翻转(切换摄像头)和挂断。

通话仅支持一对一。接听来电见第 14 节。

如何查看联系人或群组详情

  1. 点按聊天顶部栏中的信息按钮。
  2. 对于联系人,对话框显示对方的软件、上次在线时间、公钥、地址和收款地址。复制密钥会完整复制密钥。
  3. 对于群组,群组对话框列出成员。如果你是群组管理员,点按编辑成员,勾选或取消勾选联系人,然后点按保存。应用显示群组已更新。

如何对单条消息进行操作

  1. 长按该消息。
  2. 选择一项:
    • 复制消息(照片上为复制说明,分享的地址上为复制联系人地址)。
    • 图片上的保存照片或分享照片。已保存到照片表示保存成功。
    • 付款上的复制交易 ID。
    • 详情打开消息详情:发送和到达的时间、状态(正在发送…、已发送(中继已接收)、已送达、已读、发送失败),以及付款的交易 ID。

勾号的含义与所有 Parlons 应用相同:

标记含义
⋯排队中,尚未交给主机
✓已发送:有主机接收了它
✓✓已送达:收件人自己的设备已确认
蓝色 ✓✓已读
✗失败:没有主机愿意接收;它留在发件箱中

如何重新发送未送达的消息

如果你的账户在它知道的所有地址上都联系不到对方,失败的消息会显示 ✗。

  1. 点按失败的消息。消息未送达对话框会说明你的节点无法联系到该联系人。
  2. 点按重新连接(或点按暂不操作保持原样)。应用显示正在重新连接…,并向目录查询对方的当前地址。
  3. 已找到最新地址,即将重新发送表示失败的消息会自动重新发送。地址未变,对方可能暂时离线表示对方可能离线;消息在发件箱中等待。

在聊天中向联系人付款

  1. 在一对一聊天中,点按添加附件 → 发送付款。向 name 发送付款对话框显示 从你的云账号钱包付款。
  2. 选择 Minima 或 MxUSD。MxUSD 是 Minima 上与美元挂钩的代币,代币 ID 为 0x7D39745FBD29049BE29850B55A18BF550E4D442F930F86266E34193D89042A90。
  3. 输入金额(字段显示为金额(MINIMA)或金额(MxUSD)),如有需要,再填写备注(可选)。
  4. 点按发送。应用显示正在你的节点上构建付款…。

付款在运行你账户的机器上构建和签名,而不是在手机上。仅聊天账号无法付款(第 8 节)。

如果某笔付款显示 ⚠ 尚未确认,再次付款前请检查余额,请先查看“钱包”标签页,再决定是否重新发送。

MxUSD 需要最新的主机。发送 MxUSD 付款前,Portal 0.2.90 会询问账户的主机是否支持该代币 ID。无法证明支持的主机会忽略代币 ID,转而支付同样数量的 MINIMA,因此应用会拒绝发送并显示:

付款失败:此账户的主机版本过旧,无法发送 MxUSD — 请更新(Parlons Node 0.2.135+、Parlons Cloud 0.11.121+、minimaCore Desktop 0.18.21+)

不会发送任何东西。请运行主机的人将其更新到上述某个版本,然后再试。Minima 付款不受影响。


7联系人

联系人标签页分为三部分。

您的账号地址。完整的 MAX# 地址,带有复制、显示二维码和分享地址。分享此地址,让他人联系您。此地址在您所有设备上都相同。 账户仍在连接时,它显示(正在解析…)。

你的联系人。标题为联系人 · N,列表上方有搜索联系人。点按联系人可查看其详情:软件、上次在线(或当前在线)、公钥、对方的地址,以及对方发布了的话还有收款地址(MINIMA)。在那里:

添加联系人。在添加联系人下有一个字段和扫描二维码。

如何分享你的地址

  1. 打开联系人。
  2. 在您的账号地址下,点按以下任一项:
    • 复制:应用显示地址已复制。把它粘贴到发给对方的消息中。
    • 显示二维码:让对方扫描你屏幕上的二维码。
    • 分享地址:打开 Android 的分享面板。选择一个应用发送。

如何添加联系人

  1. 打开联系人,滚动到添加联系人。
  2. 把对方的地址填入字段。选择以下一种方式:
    • 粘贴完整地址。它以 MAX# 开头,或以 Mx 开头并以 @host:port 结尾。
    • 点按扫描二维码,用相机对准对方的地址二维码。
  3. 点按添加。应用先显示正在添加…,然后显示联系人已添加。

添加联系人是一次握手:你的账户向对方的地址介绍自己,对方回复自己的地址。如果添加失败,应用会显示无法添加:…以及原因,例如 该账号目前无法连接,请确认对方在线,或重新扫描其地址。如果文本根本不是地址,它会显示 这似乎不是 Parlons 地址,应以 Mx… 或 MAX#… 开头。

如何重命名联系人

  1. 打开联系人,点按该联系人。
  2. 点按更多 → 重命名。
  3. 在重命名联系人中,把新名称输入此联系人的名称。
  4. 点按重命名。应用显示已重命名。这个名称只在你的账户中使用。

如何重新连接联系人

  1. 打开联系人,点按该联系人。
  2. 点按更多 → 立即重新连接。应用显示正在重新连接…。
  3. 已找到新地址,已重新连接表示找到了对方的新地址。地址未变,对方可能暂时离线表示没有任何变化。

如何移除联系人

  1. 打开联系人,点按该联系人。
  2. 点按更多 → 移除联系人。
  3. 对话框询问移除 name?并说明:对方仍保留您的地址,也仍可向您发送消息。此操作仅将其从您的联系人列表中移除。
  4. 点按移除。应用显示已移除。

8钱包

钱包标签页显示的内容取决于你所配对的账户类型。

仅聊天账号

标签页显示仅聊天账号:此托管账号包含聊天、通话和文件功能。钱包和主机控制功能已禁用。 这里没有其他操作。

Parlons Cloud 账户(自己的服务器,或 parlons-tenants 主机上的租户)

账户有自己的钱包。它的密钥由账户的助记词派生,保存在运行账户的机器上。签名也在那里进行。

标签页显示:

如何收款

  1. 打开钱包。
  2. 在收款地址下,点按复制(应用显示地址已复制)或显示二维码。
  3. 把完整地址发给付款人,或让对方扫描二维码。

如何复制代币 ID

  1. 打开钱包,在代币下找到该代币。
  2. 点按它。应用显示代币 ID 已复制。剪贴板中是完整的代币 ID。

如何发送 Minima 或 MxUSD

  1. 打开钱包,点按发送。
  2. 在 Mx… 或 0x… 地址中输入收款人,或点按扫描二维码扫描。
  3. 选择 Minima 或 MxUSD。
  4. 输入金额(金额(MINIMA)或金额(MxUSD)),然后点按继续。
  5. 阅读确认信息发送 amount token?。它会显示完整地址,并说明 此操作将签署并广播真实交易,无法撤销。
  6. 点按签名并发送。状态依次显示正在你的节点上签名…、正在通过 … 广播、已发送。

如果失败,应用会显示发送失败:…以及原因。如果是在无法证明支持该代币 ID 的主机上发送 MxUSD,原因是 此账户的主机版本过旧,无法发送 MxUSD — 请更新(Parlons Node 0.2.135+、Parlons Cloud 0.11.121+、minimaCore Desktop 0.18.21+)。不会发送任何东西;请主机的运维人员更新主机(第 6 节)。

如何查看过去的付款

  1. 打开钱包,滚动到历史记录。这里列出此手机在配对期间看到的付款(发出和收到的付款),最新的排在最前。
  2. 点按一笔付款。对话框显示金额、对方、时间、备注和交易 ID。
  3. 点按复制交易 ID,复制完整的交易 ID。

如何设置已用签名计数

只有当这个助记词在另一台设备上签过交易时才需要这样做。计数只能调高。设置得过低可能会重复使用一次性密钥,导致密钥泄露。

  1. 打开钱包,在签名密钥下点按设置已用签名次数…。
  2. 在新的已用次数(> current)中输入新的次数,然后点按继续。
  3. 阅读调高至 N?。它会提醒你此操作无法撤销。
  4. 点按调高计数。应用先显示正在更新计数…,然后显示计数已调高。

如何将钱包转移到此手机

将钱包转移到此手机…会把全部可发送资金转到一个助记词保存在此手机上(Minima Core 应用中)的钱包。你的云端身份保持不变。服务器会保留对新地址的只读观察。

  1. 先安装 Minima Core:更多 → 设置 → 此手机上的 Minima Core → 获取 Minima Core。没有安装时,应用会显示需要 Minima Core。
  2. 在 Minima Core 中,打开 钱包 → 收款,复制你的地址。
  3. 在 Parlons Cloud 中,打开钱包,点按将钱包转移到此手机…。
  4. 把地址粘贴到 Minima Core 中的 Mx… 地址中,然后点按继续。
  5. 阅读转移全部 amount MINIMA?。它会显示完整地址,并说明云端随后将以只读方式观察该地址。
  6. 点按转移全部资金并分离钱包。所有可发送资金将通过一笔交易转到该地址。

如果应用显示 目前没有可发送资金,请先同步或等待确认,请稍候再试。

Parlons Node 账户

节点自己的 Minima 钱包就是账户的钱包。

如何打开完整的节点钱包

  1. 打开钱包。
  2. 点按打开钱包。完整钱包打开,有自己的标签页,分别用于余额、发送、收款、币、历史记录和铸造。

如何将节点钱包重新同步到新助记词

当节点的签名密钥已用完,或你想要一个新的助记词时使用此功能。你的身份、已配对设备和联系人保持不变。旧助记词上的资金仍归旧助记词所有,所以请先把它们转走。

  1. 打开钱包,点按将钱包重新同步到新助记词…。
  2. 在 24 个单词,以空格分隔中输入新的助记词。如果不是 24 个单词,会显示 必须输入 24 个单词。
  3. 点按重新同步。应用显示 重新同步已开始,节点约一分钟后重启;账号保持不变,钱包地址将更新。
  4. 等待大约一分钟。应用会自动重新连接。

如果标签页之后显示 上次重新同步未成功,钱包未更改,后面会附上原因。旧钱包仍在使用中。

只读观察地址

如果账户没有自己的钱包地址,标签页会提供只读钱包。用于付款的密钥始终保留在你的设备上;节点只能查看,无法付款。

  1. 打开钱包。
  2. 在 Mx… 收款地址中输入一个 Mx… 地址。
  3. 点按设置观察地址。应用先显示正在设置…,然后显示观察地址已设置。
  4. 标签页现在以只读方式显示该地址的余额。

9节点

节点标签页是账户的控制室。下拉或重新进入该标签页即可刷新。

从上到下依次为:

  1. 您的名称。你在联系人列表中显示的名字,所有设备上都一样。点按编辑,输入新名称(例如 eurobuddha)并保存。显示给您的联系人,并立即向所有联系人重新发布。
  2. 状态。持续运行 — 在线(或节点无法连接),以及运行时间、已连接中继和邮箱已保留。在较旧的主机上,卡片会显示 将节点更新至 parlons-cloud 0.4.1 或更高版本,以查看完整状态。
  3. VPS 节点的优势。提醒你账户为你做了什么:持续运行、一个账户,所有设备,以及它是否是中继(您正在充当中继,并显示网状网络节点数,或中继已关闭)。
  4. 永久地址。卡片显示 地址永不改变,可通过它联系您使用的任何设备。 以及复制和显示二维码。
  5. 托管账户(仅当此账户管理一台主机时显示):管理托管账户(第 11 节)。
  6. 节点工具和传输与主机(仅当主机提供节点控制台时显示,Parlons Node 会提供):打开终端 IDE和打开控制面板(第 12 节)。
  7. 已配对设备(N)。每台可以操作该账户的设备。这部手机标记为此设备;其他设备显示已配对。点按撤销可切断某台设备。它将失去对你账户的访问权限。你的身份不会改变,其他设备照常工作。此操作无法撤销(对方需要新的配对码才能重新配对)。 主机自己的网页面板也作为本地设备列在这里;撤销它会把面板锁在外面。
  8. 等待批准(N)。在没有配对码的情况下请求配对的设备(有设备请求配对)。只有在你认得这个密钥时才点按批准。
  9. 配对我的其他设备(第 10 节),并附有设备配对含义的提示。

如果账户没有响应,标签页会显示无法连接您的节点。以及原因。

如何设置你的账户名称

  1. 打开节点,或点按更多 → 设置账户名称。
  2. 在您的名称下,点按编辑。
  3. 输入新名称(例如 eurobuddha)。对话框显示:显示给您的联系人,并立即向所有联系人重新发布。
  4. 点按设置。应用显示名称已设置 — 正在通知联系人…。

如何复制或显示你的永久地址

  1. 打开节点,找到永久地址。
  2. 点按复制复制完整的 MAX# 地址,或点按显示二维码以二维码形式显示。

如何撤销已配对设备

  1. 打开节点,滚动到已配对设备(N)。
  2. 找到该设备。这部手机标记为此设备。
  3. 点按撤销。
  4. 阅读撤销此设备的访问权限?,然后点按撤销。应用显示已撤销。

设备会立即失去访问权限。你的身份不会改变,其他设备照常工作。设备要重新加入,需要新的配对码。撤销主机自己的网页面板会把面板锁在外面(第 24 节)。

如何批准请求配对的设备

  1. 打开节点,滚动到等待批准(N)。每个条目显示有设备请求配对以及它的密钥。
  2. 把这个密钥与新设备上显示的密钥进行比对(第 4 节“如何在没有配对码的情况下配对”)。
  3. 只有在密钥一致时才点按批准。应用显示已批准。

10添加更多设备:所有者邀请

配对一台设备会赋予它对此账户的完全控制权:它的聊天、联系人,以及(如有)它的钱包。设备邀请只能分享给应当控制此账户的人。 要邀请朋友,请另行创建一个托管账户(第 11 节)。

从 Portal 操作

  1. 打开节点,点按配对我的其他设备。
  2. 接下来的情况取决于主机:
    • 没有管理员密码服务的主机(parlons-tenants 主机上的租户,或访客账户):立即生成一个新的配对码。
    • 有管理员密码服务的主机(独立的 parlons-cloud 账户、Parlons Node 0.2.118 或更高版本,以及桌面节点应用):应用会询问邀请设备。输入管理员密码,以授予其他设备对此所有者账户和 Minima 终端的访问权限。留空则可为朋友创建独立的托管账户。
      • 输入管理员密码并点按继续,即可生成所有者邀请。
      • 留空并点按继续,则会打开托管账户管理(如果尚未设置托管,则显示此服务器尚未启用托管)。
  3. 应用显示新配对码已生成,以及一次性配对码和完整邀请。点按复制邀请,或点按二维码将其显示为二维码,供新设备扫描。

密码在服务器上验证,从不保存在手机上。密码错误时绝不会发出配对码。输错一次后,请等几秒再试(请等待几秒后再尝试输入管理员密码)。如果还没有设置管理员密码,服务器会回复 请在主机应用的 Parlons“设备”页面设置管理员密码。命令行服务器请运行:sudo parlons-pair --set-admin-password(第 23 节说明了如何在各类主机上设置)。

没有管理员密码:改为批准

你随时都可以不用任何配对码来添加设备。批准不需要管理员密码。

  1. 在新设备上,让配对码字段留空进行配对(第 4 节“如何在没有配对码的情况下配对”)。
  2. 在一台已配对的设备上,打开节点 → 等待批准(N)。
  3. 点按新设备密钥旁边的批准。
  4. 在新设备上,再次点按连接并配对。

从服务器操作

见第 23 节:在 Parlons Node 上运行 sudo parlons-pair --admin,在用一行命令安装程序安装的账户上运行 parlons newcode,或在任何带面板的主机上使用网页面板的设备 → 新建配对码。

如何切断丢失或已更换的手机

撤销不会改变你身份的任何方面。

  1. 在任何其他已配对的设备上,打开节点 → 已配对设备(N)。
  2. 找到丢失的手机,点按撤销,再点按撤销确认。

或者,在装有 parlons 命令的终端中:

  1. 列出设备及其完整密钥:
    parlons devices
  2. 按完整密钥撤销丢失的手机:
    parlons revoke <key>

11为朋友托管:访客邀请

如果你的账户管理一台主机,“节点”标签页会显示托管账户卡片:在此服务器上为朋友托管账户。每个人都有独立的账户和邀请,无法访问您的账户或 Minima 终端。 所有者就是用这个功能为不打算自己运行服务器的人创建账户。

这里会出现两种主机:

主机访客获得什么由谁设置
Parlons Node、minimaCore Desktop、minimaDesk 或独立 parlons-cloud 账户中的内置聊天托管仅聊天账号:聊天、通话和文件。没有钱包、终端或主机控制功能。最多十个账户。所有者在应用或主机面板中启用。
连接到 Parlons Node 的 parlons-tenants 服务(--manage-from-node,第 21 节)完整的租户账户,有自己的聊天和钱包。他们无法控制所有者账户或节点。由服务器运维人员安装。

如何为朋友托管账户

  1. 打开节点 → 管理托管账户。会出现一个列表,标题为托管账户(N/limit),或显示托管服务离线。
  2. 仅限内置托管:第一次使用时,点按托管选项 → 启用托管。启用托管?对话框说明:您的电脑将存储访客账户的密钥和消息,必须保持运行。请先在主机应用的 Parlons“设备”页面中设置管理员密码。 点按启用。设置管理员密码之前无法启用托管(第 23 节)。几秒后点按刷新(托管服务正在启动。请稍等几秒后刷新。)。
  3. 点按创建账户。在为朋友托管账户下输入账户名称(例如 alice),然后点按创建。名称为 1 到 64 个字母、数字、点、下划线或连字符,必须以字母或数字开头。
  4. 反复点按刷新,直到账户显示运行中。它的状态会从正在启动变为运行中(如果启动失败,则显示正在重试)。
  5. 点按该账户,然后点按显示邀请。name 的邀请对话框显示完整邀请。此邀请可将设备配对到 name 的账户。使用前请勿公开。 点按复制邀请并私下发送,或让对方扫描。
  6. 你的朋友安装 Parlons Cloud(Android)或 Parlons(iPhone),扫描或粘贴邀请,然后点按连接并配对。有效的配对码会立即完成配对。他们的邀请无法访问你的账户。

如何暂停或恢复托管账户

  1. 打开节点 → 管理托管账户。
  2. 点按该账户。
  3. 点按暂停账户。暂停 name?对话框显示 此账户将离线,其身份和聊天记录将保留。 点按暂停。
  4. 要恢复,点按该账户,然后点按恢复账户。恢复 name?对话框显示 此账户将在服务器上重新连接。 点按恢复。
  5. 点按刷新查看新状态。

如何停止内置托管

  1. 打开节点 → 管理托管账户。
  2. 点按托管选项 → 停止托管。
  3. 停止托管?对话框显示 所有访客账户将离线。其身份和聊天记录将保留。 点按停止。

要重新开始,请按照“如何为朋友托管账户”的第 2 步操作。

上限也计入已暂停的账户。达到上限后,再创建会失败,并显示 Hosting limit reached (10 accounts)(或主机使用的其他上限)。

访客可以管理自己的账户,并配对自己的其他设备。他们也可以随时备份整个账户,离开去另一台主机(第 16 节)。


12节点工具:终端 IDE 和控制面板

这两张卡片只有在账户运行于提供节点控制台的主机上时才会出现,也就是 Parlons Node。普通的 parlons-cloud 账户没有这两张卡片;请改用它的网页面板或 parlons 命令来管理它的中继和目录(第 24 和 26 节)。

打开终端 IDE

完整的 Minima 节点命令行,以及 KISS 脚本 IDE 和手动交易工作台。每条命令均通过此配对通道在您的节点上运行,输出完整且可复制。 终端 IDE 屏幕有四个标签页:终端、脚本、交易和日志。每条命令都会以“由已配对设备运行”的形式记录在节点日志中。quit 命令会被拒绝;请在服务器上重启节点。

如何在你的节点上运行 Minima 命令

  1. 打开节点,在节点工具下点按打开终端 IDE。
  2. 在终端标签页上,在命令…中输入命令,例如:
    balance
  3. 点按运行。完整输出显示在上方。
  4. 使用上一条命令和下一条命令浏览你运行过的命令。长按收藏按钮可保存一条命令。
  5. 要保留输出,打开菜单并选择复制全部输出、选择并复制输出或导出会话…。清空终端会清空屏幕。

如何阅读节点日志

  1. 在终端 IDE中,打开日志标签页。
  2. 滚动浏览日志。它是通过配对通道从你的节点读取的。

打开控制面板

主机、可达性、中继统计、MLS/位置和实时事件日志,涵盖 VPS 管理所需的各项功能。 节点控制面板屏幕包括:

如何为账户添加中继

  1. 打开节点 → 打开控制面板。
  2. 在中继节点下,输入 host:port(例如 relay.example.com:9501)或粘贴中继二维码文本。
  3. 点按添加并连接。应用显示正在连接…,中继出现在列表中。

如何断开中继

  1. 打开节点 → 打开控制面板。
  2. 在中继节点下,点按该中继旁边的断开。应用显示正在断开…。

如何打开或关闭内置中继列表

  1. 打开节点 → 打开控制面板。
  2. 在中继节点下,切换账户使用内置中继列表。你必须先添加一个自己的中继,才能将其关闭。

如何固定你的永久地址

  1. 打开节点 → 打开控制面板,找到位置(MLS)。
  2. 点按固定永久地址(如果已设置,则点按重新固定)。应用显示永久地址已固定。
  3. 复制永久地址会复制完整地址。
  4. 要撤销,点按取消固定。要立即重新推送你的目录记录,点按重新发布。

如何查看和清除事件日志

  1. 打开节点 → 打开控制面板,滚动到事件日志。
  2. 点按刷新查看最新的行,或点按清除清空日志。

13设置参考

打开更多 → 设置。

分区项目作用
(顶部)更改语言为这台设备选择应用语言。
您的账户发送已读回执让联系人知道您已读消息。此设置保存在节点上,适用于所有设备。
隐私与安全应用锁打开 Parlons Cloud 时需验证指纹或设备 PIN 码。 需要先在 Android 中设置指纹或屏幕锁定。
允许屏幕共享默认开启。关闭后,应用锁定时将禁止截图和录屏显示应用内容。
通知消息提示音收到新消息时播放 Parlons 提示音。关闭后仍显示通知并振动,但不发声。
来电设置打开 Android 的设置,用于设置铃声、振动和锁屏上的全屏提醒。
密钥与备份显示助记词显示账户的 24 个单词(第 16 节)。
备份账户…将整个账户的加密备份写入你选择的文件(第 16 节)。
导入身份或备份…用另一个身份替换服务器上的账户(第 16 节;仅限 Parlons Node 0.2.117 或更高版本)。
此手机上的 Minima Core打开 Minima Core / 获取 Minima CoreMinima Core 在手机上运行一个完整的 Minima 节点。它是独立于你云端身份的钱包的归宿,将钱包转移到此手机…也需要它。
此设备此手机启动时使用的中继这部手机首先在哪里查找你的账户(见下文)。
通知设置打开 Android 中此应用的通知设置。
保持后台运行请求 Android 让此应用不受电池优化限制。仅在尚未豁免时显示。
关于Portal 版本已安装的版本。
账户地址您的账户地址(可以分享,它永远不会改变),完整显示。

如何打开或关闭已读回执

  1. 打开更多 → 设置。
  2. 在您的账户下,切换发送已读回执。此设置保存在你的账户上,因此适用于所有设备。

如何锁定应用

  1. 先在 Android 设置中设置指纹或屏幕锁定。否则应用会显示 请先在手机设置中配置指纹或屏幕锁定。
  2. 打开更多 → 设置。
  3. 在隐私与安全下,打开应用锁。
  4. 从此以后,打开应用时会显示解锁 Parlons Cloud。使用你的指纹或设备 PIN 码。

如果要在应用锁定时防止截图和录屏,请在同一分区中关闭允许屏幕共享。

如何关闭消息提示音

  1. 打开更多 → 设置。
  2. 在通知下,关闭消息提示音。新消息仍会通知并振动,只是没有提示音。

如何更改铃声和锁屏来电提醒

  1. 打开更多 → 设置。
  2. 在通知下,点按来电设置。Android 自己的设置会打开。
  3. 选择铃声和振动,并允许在锁屏上显示全屏提醒。

如何让应用在后台保持连接

  1. 打开更多 → 设置,滚动到此设备。
  2. 点按保持后台运行。Android 会询问是否允许此应用忽略电池优化。
  3. 选择允许。应用获得豁免后,该项就会消失。
  4. 要检查通知渠道,点按同一分区中的通知设置。

如何打开或安装 Minima Core

  1. 打开更多 → 设置,找到此手机上的 Minima Core。
  2. 如果已安装 Minima Core,卡片会显示已安装 Minima Core ✓。点按打开 Minima Core。
  3. 如果没有,点按获取 Minima Core进行安装。

如何设置此手机启动时使用的中继

这些是手机用来查找账户的中继(账户自己的中继在账户上设置,见第 12 或 24 节)。

  1. 点按此手机启动时使用的中继。列表会把每个中继标为内置或您添加的。
  2. 要添加中继,输入 host:port 或粘贴中继二维码文本,然后点按添加。或者点按扫描中继二维码。中继二维码文本以 parlons-relay: 开头。
  3. 移除会删除一个你自己添加的中继。你必须至少保留一个;移除最后一个时,内置列表会重新打开。
  4. 使用内置中继(应用附带的列表)用于打开或关闭内置列表。你必须先添加一个自己的中继,才能将其关闭。
  5. 重置会恢复为内置列表。完成关闭对话框。

更改会在下次重新连接时生效。


14通知、通话和保持连接

应用以 Android 前台服务的形式与你的账户保持一条持续的加密连接,因此消息会通知、来电会响铃。它的常驻通知显示已连接到您的云端账号。手机重启后,如果已配对设备,应用会自动重新连接。

Android 通知渠道:

渠道用途
消息 / 消息(静音)云端账户上的新消息(消息提示音关闭时使用静音渠道)。
来电正在响铃的来电,包括锁屏上的全屏提醒。
云端连接常驻的连接通知。
铸造进度通知从钱包发起的 NFT 铸造进度。

通话。语音和视频通话均为一对一。音频和视频在两台设备之间加密。应用首次使用时会请求麦克风权限(视频通话还需相机权限)。

如何接听来电

  1. 来电会显示 Parlons 来电(或 Parlons 视频来电),如果 Android 允许,会在锁屏上全屏显示。
  2. 点按接听接听,或点按拒接拒绝。
  3. 通话期间,可使用静音 / 取消静音、扬声器 / 听筒、翻转(切换摄像头,仅限视频)和挂断。

要发起通话,见第 6 节“如何呼叫联系人”。

如果消息到达得很晚

  1. 打开更多 → 设置 → 此设备,如果显示保持后台运行,请点按它(第 13 节)。
  2. 确保 Android 允许此应用发送通知(同一分区中的通知设置)。
  3. 检查状态胶囊。它应显示在线 · N 个主机。
  4. 如果胶囊显示无法连接,可能是账户本身已停止(第 17 节)。

15在其他 Parlons 应用中使用你的账户

一个账户可以同时从多个地方操作。每个地方都是一台单独的已配对设备,有自己的密钥。

Android 上的完整版 Parlons! 应用不是客户端。它在手机上保存自己的身份,不与账户配对。不过,你可以在两者之间迁移身份:从云端账户制作的备份包(备份账户…)可以在 Parlons! 应用中恢复(身份和联系人)。切勿在两个地方同时运行同一个身份(第 16 节)。

如何将 iPhone 配对到同一个账户

iPhone 应用尚未推出。以下是推出后的步骤。

  1. 在一台已配对的设备上,打开节点 → 配对我的其他设备,生成一个新邀请(第 10 节)。
  2. 在 iPhone 上打开 Parlons 应用。
  3. 点按扫描账号二维码扫描邀请,或粘贴邀请。
  4. 在 iPhone 应用中完成配对。有效的配对码会立即完成配对。

你的账户与其他人的应用。任何使用 Parlons 应用的人,或运行带 Maxima 的经典 Minima 节点的人,都可以把你的 MAX# 地址添加为联系人并给你发消息。


16备份、恢复和迁移

你的 24 个单词

每个账户就是 24 个单词。账户的地址由它们派生,所以在任何地方使用同样的单词都会得到同样的地址。它们也是一个 Minima 钱包:任何读到它们的人,都可以花掉其名下持有的一切资金。

如何查看你的 24 个单词

  1. 确保没有人能看到你的屏幕。
  2. 打开更多 → 设置,在密钥与备份下点按显示助记词。
  3. 显示助记词?对话框提醒:此短语控制您的 Parlons 身份,可能与服务器的钱包助记词不同。请确保没有人在旁观看。它会通过加密通道传输到此手机。 点按显示。
  4. 出现您的 24 个单词。把它们写在纸上。
  5. 点按关闭。如果改为点按复制,应用会显示已复制 — 剪贴板将在 60 秒后清除。

身份助记词和钱包助记词可能不同,例如在 Parlons Node 上执行了将钱包重新同步到新助记词…之后,或导入身份之后。两者都要妥善保管。

把这些单词写在纸上,并让纸张保持离线。切勿拍照、通过电子邮件发送,或粘贴到聊天中。

如何备份整个账户

  1. 打开更多 → 设置,在密钥与备份下点按备份账户…。
  2. 在备份账户中,在口令(至少 6 个字符)中输入口令,并在再次输入口令中再输一次。如果丢失口令,将无法恢复。
  3. 点按创建备份。
  4. 应用显示正在创建加密备份…,然后询问 .pbk 文件的保存位置。
  5. 保存到安全的地方。备份已保存表示保存成功。(如果你等了太久才选择位置,应用会显示备份已过期 — 请重新导出。)

备份包 在离开节点前使用你的口令加密。它包含身份、已配对设备、设置、联系人和聊天记录,格式与手机应用读取的 .pbk 格式相同。不包括媒体和私密文件的内容。在终端中,可以用 parlons backup <file.pbk> 制作同样的文件。

如何在自己的机器上恢复账户

  1. 制作一个备份包(见上文),或使用你已有的备份包。
  2. 在将要运行账户的机器上,在启动账户之前,用 --restore 把备份包恢复到一个空的数据文件夹中。第 19 节“将账户迁移到另一台机器”给出了确切的命令。
  3. 永久停止旧副本。

地址保持不变,因此每台已配对设备都会自动重新连接。

如何从应用将身份导入 Parlons Node

这需要 Parlons Node 0.2.117 或更高版本。在其他主机上,应用会显示 请将 Parlons Node 更新至 0.2.117 或更高版本,以便从此应用导入。

  1. 先在原设备或原服务器上停止该身份。
  2. 打开更多 → 设置,在密钥与备份下点按导入身份或备份…。
  3. 选择要导入的内容:
    • 输入恢复助记词;或
    • 对于非标准短语,选择自定义短语(Minima anyphrase)(每个空格和大写字母都会保留);或
    • 点按改用 .pbk 备份…,选择文件并输入其备份密码。
  4. 点按查看导入预览。检查新地址。
  5. 勾选我已在原设备或服务器上停止使用此身份。
  6. 点按导入并重启。服务器会重启(服务器正在重启。正在重新连接导入的身份…),应用会重新连接(身份已导入并连接)。

这会替换服务器上的 Parlons 身份、联系人和聊天。它的 Minima 钱包和钱包助记词保持不变。之前的账户会保留在服务器上,以便恢复。如果连接中断,请重新打开该屏幕并点按继续 / 检查导入。取消已准备的导入会在确认前放弃导入。你的助记词从不保存在手机上。

一个身份,一个地方

每个身份同一时间只能在一个地方运行。两个副本会让你的联系人混乱,并可能重复使用绝不能重复使用的钱包密钥。要迁移,而不是复制:先永久停止旧副本,再启动新副本。

如何离开主机

你可以随时离开。你的地址保持不变,所以联系人和已配对设备都能照常使用。

  1. 备份整个账户(见上文),并保管好口令。
  2. 请主机暂停旧副本(第 22 节“暂停和恢复”),确保身份不会同时在两个地方运行。
  3. 在你自己的机器上恢复备份包并启动它(第 19 节“将账户迁移到另一台机器”)。
  4. 检查你的手机是否重新连接到了新副本。
  5. 请主机永久移除旧副本。

17账户持有人故障排除

症状怎么办
配对时显示无法连接:…,或胶囊显示无法连接账户没有连接到中继:它已停止、没有网络,或刚刚启动。在它所在的机器上运行 parlons status;在 Parlons Node 上运行 journalctl -u parlons-node -f;如果是托管账户,请询问运维人员。
配对失败配对码错误、已被使用,或已被更新的配对码替换。请索取新邀请。
已请求配对。请在已配对的设备上批准你在没有配对码的情况下进行了配对。请从另一台已配对设备批准此设备,然后重新打开应用。
创建所有者账户邀请需要管理员密码主机保护所有者邀请。请输入管理员密码,或改为批准无配对码的配对(第 10 节)。
请在主机应用的 Parlons“设备”页面设置管理员密码…还没有人设置管理员密码。见第 23 节。
此服务器尚未启用托管 / 托管服务离线内置托管已关闭,或主机的租户服务已停止。见第 11 节,或询问运维人员。
此账户仅支持聊天、通话和文件,钱包及主机控制功能已禁用你使用的是仅聊天的访客账户。
消息到达得晚,或只有打开应用时才到达设置 → 此设备 → 保持后台运行;允许通知;检查胶囊。
勾号一直不变成双勾对方设备还没有确认收到。消息在等待,并没有丢失。
消息未送达在对话框中点按重新连接,或在 联系人 → 该联系人 → 更多 中点按立即重新连接。
扫描按钮没有反应在被询问时允许使用相机。
手机丢失从另一台已配对设备撤销它(第 10 节)。账户及其历史记录不受影响。
指纹验证失败后应用被锁解锁 Parlons Cloud 会再次询问;也可以使用设备 PIN 码。

到哪里查看日志:节点 → 打开控制面板 → 事件日志(Parlons Node);否则请询问运行这台机器的人(第 30 节)。


B 部分:托管账户

18你需要哪种主机?

你想要使用章节
在 Mac、Linux 机器、Raspberry Pi 或 Windows 电脑上运行自己的账户一行命令安装程序(get-parlons-cloud.sh / .ps1)19
在你从笔记本电脑管理的 VPS 上运行自己的账户,同时承载中继流量ops/deploy-parlons-cloud.sh20
在一台机器上为多人提供账户,助记词静态加密ops/deploy-parlons-tenants.sh 和 parlons-tenants 服务21
内置 Parlons 的完整 Minima 节点Parlons Node(cloud/NODE-SETUP.md);在旁边加上 parlons-tenants 即可为朋友托管21、23
在你自己的账户中提供仅聊天的访客账户内置托管(网页面板或 Portal)11、24

每台主机都需要一台保持开机并能访问外网的机器。单个账户不需要域名、TLS 证书或反向代理。只有当主机还为他人运行中继时,才需要入站端口。


19在自己的机器上运行一个账户:一行命令安装程序

如何在 Mac、Linux、Raspberry Pi 或 VPS 上安装

  1. 在将要运行账户的机器上打开终端。
  2. 粘贴以下命令并按 Enter:
    curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | bash
  3. 等待五个步骤完成。最后一屏会显示你的地址、一个邀请二维码和邀请文本。
  4. 在手机上,用这个邀请配对 Portal(第 4 节)。
  5. 现在就备份助记词(见下文)。

如何在 Windows 10 或 11 上安装

  1. 打开 PowerShell。
  2. 粘贴以下命令并按 Enter:
    irm https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.ps1 | iex
  3. 等待完成,然后用它打印的邀请配对你的手机(第 4 节)。
  4. 备份 C:\Users\<you>\.parlons\seed.txt 中的助记词(见下文)。

Windows 脚本自己说明,其作者尚未在 Windows 机器上验证过它。如有任何问题,请反馈。

安装程序做了什么

安装程序会:

  1. 如果缺少 Java 11 或更高版本,就安装它(Mac 上用 Homebrew,Linux 上用 apt、dnf、apk 或 pacman,Windows 上用 winget),并在可能时安装 qrencode;
  2. 从 GitHub 下载最新的 parlons-cloud 发布版本,并检查其 SHA-256 校验和;
  3. 注册一个重启后依然有效的服务:Mac 上是 launchd 代理,Linux 上是 systemd 用户单元(启用 linger)或系统单元,Windows 上是名为 Parlons Cloud 的计划任务;
  4. 启动账户,把这个终端配对为第一台设备,并生成一个新的配对码;
  5. 打印账户地址、给手机用的邀请(文本和二维码),以及 parlons 命令。

它的结尾是这样的(地址和邀请会完整打印):

  Your Parlons account is running (Parlons Cloud 0.11.124).

  Address (share it; it never changes):
  <the full MAX# address>

  Pair your phone: open the Parlons Cloud app, tap Scan account QR, point it at this:
  <a QR code, drawn in the terminal>
  or paste the invite (the code half works once):
  <the full invite>

  BACK UP YOUR SEED NOW:  ~/.parlons/seed.txt  -  it is your identity AND a wallet.

安装程序的文本写的是 Scan account QR,这是 iPhone 应用的标签。在 Android Portal 中,按钮是扫描配对二维码。

选项

选项效果
… | bash -s -- --no-relay(Windows:.\get-parlons-cloud.ps1 -NoRelay)仅运行账户:不为他人中继。默认情况下,账户还会在 TCP 端口 9501 上运行一个中继。
… | bash -s -- --update获取最新发布版本并重启。再次运行安装命令效果相同。
… | bash -s -- --uninstall(Windows:-Uninstall)停止并移除服务。你的账户数据会保留。
PARLONS_DATA=<dir>数据文件夹(默认 ~/.parlons)。
PARLONS_HEAP=<size>Java 堆大小(默认 256m)。

默认情况下,账户以 --relay-port 9501 --no-direct 运行:它在端口 9501 上为他人中继;在 Linux 上,如果 ufw 处于启用状态,安装程序会在 ufw 中开放 9501。即使从外部无法访问 9501,也不会出问题;账户仍然通过中继网络工作,只是不承载其他人的消息。使用 --no-relay 时,它完全不开放任何入站端口。它的网页面板监听 127.0.0.1:9587(第 24 节)。

如何让他人能够访问你的中继

  1. 照常安装;中继默认开启。
  2. 确保可以从互联网访问 TCP 端口 9501:在云服务商的防火墙中允许它,或在家用路由器上进行端口转发。
  3. 在 Linux 上,如果 ufw 处于启用状态,安装程序会在 ufw 中开放 9501。
  4. 从另一台机器验证端口(第 28 节)。

如何在不运行中继的情况下安装

curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | bash -s -- --no-relay

在 Windows 上,下载 get-parlons-cloud.ps1 并运行 .\get-parlons-cloud.ps1 -NoRelay。

如何使用其他数据文件夹或堆大小

  1. 在 bash 前面设置变量:
    curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | PARLONS_DATA=/srv/parlons PARLONS_HEAP=512m bash
  2. 以后每次运行安装程序时都使用相同的变量,这样它才能找到同一个文件夹。

如何更新

  1. 运行:
    parlons update

    或者再次运行安装命令。在 Windows 上,请再次运行安装命令。

  2. 安装程序会获取最新发布版本,检查其 SHA-256,并重启账户。
  3. 检查它是否已恢复运行:
    parlons status

如何移除服务并保留数据

  1. 运行:
    parlons uninstall

    在 Windows 上,运行 .\get-parlons-cloud.ps1 -Uninstall。

  2. 服务会停止并被移除。你的账户数据保留在数据文件夹中。

日常操作

Mac / LinuxWindows
是否在运行?parlons statusparlons status
查看日志parlons logparlons log
停止 / 启动 / 重启parlons stop、parlons start、parlons restartparlons stop、parlons start
更新parlons update(或再次运行安装命令)再次运行安装命令
移除服务,保留数据parlons uninstall.\get-parlons-cloud.ps1 -Uninstall
打开网页面板parlons panelparlons panel
文件位置~/.parlons(数据)、~/.parlons/bin(程序)、~/.parlons-client(终端自己的设备密钥)%USERPROFILE%\.parlons、%USERPROFILE%\.parlons-client

要移除账户本身(身份、聊天、助记词),卸载程序会告诉你自行删除数据文件夹和 ~/.parlons-client。请先备份:删除助记词就等于删除身份以及其名下持有的所有资金。

备份助记词

~/.parlons/seed.txt(Windows 上为 C:\Users\<you>\.parlons\seed.txt)保存着这 24 个单词。安装程序从不打印它们。

  1. 确保没有人能看到你的屏幕。
  2. 显示这些单词:
    cat ~/.parlons/seed.txt

    或者在任何已配对的终端中运行 parlons seed。

  3. 把它们抄写到纸上。妥善保管这张纸,并让它保持离线。
  4. 清空终端。

将账户迁移到另一台机器

  1. 在旧机器上:运行 parlons backup my-account.pbk,并设置一个口令。
  2. 把文件复制到新机器。
  3. 在新机器上,在运行安装程序之前,把它恢复到安装程序将要使用的文件夹中:
    mkdir -p ~/.parlons
    curl -fsSL -o ~/parlons-cloud.jar "$(curl -fsSL https://api.github.com/repos/eurobuddha/maxima/releases | grep -oE 'https://github.com/[^"]+/cloud-v[^"]+/parlons-cloud-[0-9.]+\.jar' | head -1)"
    java -jar ~/parlons-cloud.jar --data ~/.parlons --restore my-account.pbk
    curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | bash

    --restore 会在控制台上询问口令,并拒绝覆盖已有的身份。它会打印恢复了哪些内容(名称、联系人、密钥使用计数、已配对设备和聊天记录)。

  4. 永久停止旧机器:在那里运行 parlons uninstall,其数据只作为冷备份保留。

已配对设备会自动重新连接,因为地址没有变。


20在 VPS 上运行一个账户:deploy-parlons-cloud.sh

如何将账户部署到 VPS

  1. 在你自己的电脑上,获取仓库的检出副本。
  2. 构建 jar,或把已发布的 parlons-cloud-0.11.124.jar 放入 dist/:
    ./gradlew :cloud:fatJar
  3. 确保你能以 root 身份通过 SSH 登录 VPS,且不会提示输入密码。
  4. 运行部署脚本:
    ops/deploy-parlons-cloud.sh root@vps.example.com --port 9501 --name "My account"
  5. 最后,脚本会打印账户地址和一个一次性配对码。用它们配对你的手机(第 4 节)。
  6. 读取一次助记词,并离线保存:
    ssh root@vps.example.com 'cat /var/lib/maxima/seed.txt'
  7. 在云服务商的防火墙中允许中继端口,并从另一台机器验证它(第 28 节)。

以后要更新,只需再次运行同一条命令。安装和更新是同一个操作。

选项

--port N(中继端口,默认 9501)、--name "…"(显示名称)、--jar FILE(默认:最新的 dist/parlons-cloud-*.jar)、--heap 256m、--memmax 1024M、--blob 1024(中继媒体存储空间,单位 MB)、--peers h:p,h:p(中继的网状网络节点)。

脚本是幂等的:安装和更新是同一条命令。它依次:

  1. 如果机器上没有 Java,就安装一个无图形界面的 Java;
  2. 创建一个无特权的 maxima 用户和 /var/lib/maxima(权限 700);
  3. 把 jar 上传到 /opt/maxima,检查其 SHA-256,然后才把 parlons-cloud.jar 符号链接指向它;
  4. 写入一个加固的 parlons-cloud.service(沙盒化、限制内存、seccomp 过滤、屏蔽云元数据地址),运行 --data /var/lib/maxima --relay-port <port> --no-direct --blobstore <MB>;
  5. 如果 ufw 或 firewalld 处于启用状态,就在其中开放中继端口;
  6. 启动服务并验证它正在监听;
  7. 打印账户地址和一次性配对码。

它从不打印助记词。请按上面第 6 步,通过 SSH 读取一次。

如果脚本没有打印地址或配对码

  1. 通过 SSH 登录 VPS。
  2. 在日志中查找地址:
    journalctl -u parlons-cloud | grep 'permanent address' | tail -1
  3. 如果已经有设备完成配对,磁盘上就没有初始配对码。请从已配对的设备生成新的配对码(第 10 节)。

手动安装(四条命令,一个最简单元)在 cloud/SETUP.md 中有说明。注意,当账户在 systemd 下运行时,其输出是日志,程序会刻意不在其中打印新的助记词;如果你想在首次启动时看到这些单词,请先在前台运行一次,或事后读取 seed.txt。


21多个账户:parlons-tenants 服务

多账户主机在一个目录下按文件夹为每人保留一个始终在线的账户,全部运行在一个进程中。它面向不打算自己运行服务器的人:iPhone 用户、朋友、评审人员。每个租户都有自己的身份、设备、聊天和备份,并可以随时以加密备份包的形式离开。

如何安装租户主机

你需要一台保持开机的 Linux 机器(512 MB 内存大约够十个账户),以及你自己电脑上的仓库。

  1. 在你自己的电脑上构建 jar(./gradlew :cloud:fatJar),或把 parlons-cloud-0.11.124.jar 放入 dist/。
  2. 确保你能以 root 身份用密钥通过 SSH 登录该机器(脚本以批处理模式运行 SSH,因此无法回应密码提示)。
  3. 运行:
    ops/deploy-parlons-tenants.sh root@your.box
  4. 等待脚本验证主机已启动并正在轮询租户。
  5. 把 /etc/parlons-tenants.env 从机器复制到安全的离线存储中,与数据备份分开存放:
    scp root@your.box:/etc/parlons-tenants.env ./parlons-tenants.env.backup
  6. 创建第一个租户(第 22 节)。

选项

选项默认值含义
--jar FILE最新的 dist/parlons-cloud-*.jar,否则为 cloud/build/libs/parlons-cloud.jar要安装的 jar。
--heap SIZE512mJava 堆大小(约十个租户)。
--memmax SIZE768Msystemd 内存上限。
--dir PATH/var/lib/parlons-tenants租户目录(普通的绝对路径)。
--peers h:p,h:p无作为初始来源的额外网络中继。
--manage-from-node关闭把同一台机器上 Parlons Node(0.2.118 或更高版本)的所有者界面连接到此服务(见下文)。

脚本会:

  1. 如果缺少 Java,就安装一个无图形界面的 Java;
  2. 创建 maxima 用户和租户目录(权限 700);
  3. 把 jar 上传到 /opt/maxima,检查其 SHA-256,并把 parlons-cloud.jar 指向它;
  4. 只写入一次解锁口令文件 /etc/parlons-tenants.env(仅 root 可读,一个随机的 PARLONS_UNLOCK= 值),并写入一个加固的 parlons-tenants.service;
  5. 重启服务,并验证主机已启动并正在轮询租户。

该单元运行:

/usr/bin/java -Xmx<heap> -jar /opt/maxima/parlons-cloud.jar \
    --tenants /var/lib/parlons-tenants --no-relay --no-direct --panel-port 9597 --unlock env

因此,默认情况下主机不开放任何入站端口(它只以出站方式连接到中继网络),并且可以与 Parlons Node 部署在同一台机器上。由于解锁口令已生效,新租户创建时会使用加密的助记词(seed.enc)。

备份 /etc/parlons-tenants.env。每个 seed.enc 都是用它加密的。没有它,加密的助记词就无法打开。

与 Parlons Node 搭配:--manage-from-node

当机器上已经运行着 Parlons Node(0.2.118 或更高版本),并且其所有者需要通过 Portal 管理访客时使用此方式。

  1. 确认机器上已安装 parlons-node。没有它,脚本会拒绝运行。
  2. 运行:
    ops/deploy-parlons-tenants.sh root@your.box --jar dist/parlons-cloud-0.11.124.jar --manage-from-node
  3. 等待两个服务都重启。
  4. 在与节点配对的 Portal 中,打开节点,确认出现了托管账户以及管理托管账户。

脚本会添加一个附加配置文件 /etc/systemd/system/parlons-node.service.d/hosted-accounts.conf(把 PARLONS_HOSTED_DIR 设置为租户目录,并允许节点写入该目录),然后重启 parlons-node。节点现有的命令行和数据会保留。如果没有安装 parlons-node,脚本会拒绝运行。之后,所有者可以通过 Portal 管理访客:节点 → 托管账户 → 管理托管账户(第 11 节),也可以在服务器上用 sudo parlons-pair --guest <name> 管理(第 23 节)。

租户的网页面板

deploy-parlons-tenants.sh 会把 --panel-port 9597 写入单元。每个租户都有自己的环回网页面板:第一个启动的使用 9597,下一个使用 9598,依此类推,按启动顺序分配。端口范围从 9587 以上开始,因为同一台机器上的 Parlons Node 已经占用了默认面板端口 127.0.0.1:9587。

较旧的单元带有 --no-panel,所以它们的租户没有面板。

如何在较旧的单元上为租户提供面板

  1. 重新运行部署脚本。它会用 --panel-port 9597 重写单元:
    ops/deploy-parlons-tenants.sh root@your.box
  2. 或者在机器上手动编辑单元。请先保留一份副本:
    cp /etc/systemd/system/parlons-tenants.service /etc/systemd/system/parlons-tenants.service.before-panels
    systemctl edit --full parlons-tenants

    在 ExecStart 中,把 --no-panel 改为 --panel-port 9597。然后:

    systemctl daemon-reload && systemctl restart parlons-tenants

如何查找租户的面板端口

  1. 在机器上读取该租户的 panel.txt:
    sudo cat /var/lib/parlons-tenants/alice/panel.txt
  2. 使用这个端口。不要猜:端口号按顺序分配,并且在主机运行期间不会重复使用,所以暂停后又恢复的租户会使用下一个端口号。

如果某个面板端口被占用,该租户的面板就不会启动(日志显示 web panel could NOT start on 127.0.0.1:<port>)。账户本身照常运行。重新运行 deploy-parlons-tenants.sh 会重写单元,因此你手动做的任何修改都会丢失,必须重新进行。

从你的电脑打开租户的面板,见第 24 节。

容量

每个租户从主机的同一个 IP 地址连接到大约三个网络中继,而中继会限制每个来源 IP 的未注册连接数(默认为 32)。请按每台主机大约十个租户来规划。托管账户的默认创建上限是十个,已暂停的账户也计算在内(可用 -Dparlons.hosted.limit=<n> 更改)。


22创建、暂停和移除租户

创建

如何从你的电脑创建租户

  1. 选择一个名称:1 到 64 个字符,可以是字母、数字、.、_ 和 -,必须以字母或数字开头。
  2. 运行:
    ops/tenant-new.sh root@your.box alice

    如果你没有使用默认的租户目录,请加上 --dir <path>。

  3. 等待。脚本会以 maxima 用户身份在机器上运行 parlons-cloud --tenant-new。它会打印 waiting for hosted account alice to connect…,并最多等待 60 秒,让正在运行的主机启动新账户。
  4. 复制它打印的邀请,私下发送给该账户的使用者,或者用任意二维码生成工具把它转成二维码。

它会完整打印:

  address:   <the full MAX# address>
  pair code: <XXXX-XXXX-XXXX>   (one-time)
  invite:    <the full invite>
  A valid invite pairs immediately. Share it only with this account's user.

新账户会在五秒内启动;其他任何东西都不会重启。

如何直接在机器上创建租户

  1. 以 root 身份通过 SSH 登录机器。
  2. 运行:
    runuser -u maxima -- java -jar /opt/maxima/parlons-cloud.jar --tenant-new /var/lib/parlons-tenants alice
  3. 把打印出的邀请私下发送给该账户的使用者。

其他创建方式:在启用了 --manage-from-node 的 Parlons Node 上运行 sudo parlons-pair --guest alice(第 23 节),或使用所有者的 Portal(第 11 节)。

暂停和恢复

已暂停的账户会保留其身份和聊天。所有者 Portal 中的暂停账户 / 恢复账户作用相同。

如何暂停租户

  1. 通过 SSH 登录机器。
  2. 创建该租户的 .stop 文件:
    touch /var/lib/parlons-tenants/alice/.stop
  3. 五秒内,日志会显示 tenant alice: stopped (.stop)。

如何恢复租户

  1. 删除 .stop 文件:
    rm /var/lib/parlons-tenants/alice/.stop
  2. 五秒内,日志会显示 hot-add: alice,租户重新启动。

为现有租户发出新邀请

当有尚未使用的配对码(pair-code.txt)时,租户的当前邀请保存在 /var/lib/parlons-tenants/<name>/invite.txt 中。一旦被使用,两个文件都会被删除。

如何为租户发出新邀请

使用以下任一方式:

  1. 从你的电脑。对现有名称再次运行创建命令:
    ops/tenant-new.sh root@your.box alice

    对于已存在的文件夹,它不会替换身份。它会重新发出尚未使用的配对码,或生成一个新的配对码。

  2. 从租户自己的设备。租户在自己的 Portal 中打开节点 → 配对我的其他设备。parlons-tenants 主机上的租户没有管理员密码,所以会立即生成一个配对码。
  3. 从所有者的 Portal(需启用 --manage-from-node):节点 → 管理托管账户,点按该账户,然后点按显示邀请。

如何在机器上读取尚未使用的邀请

  1. 通过 SSH 登录机器。
  2. 运行:
    sudo cat /var/lib/parlons-tenants/alice/invite.txt

    如果文件不存在,说明配对码已被使用。请发出新邀请(见上文)。

从备份包恢复租户

主机会在五秒内启动任何新文件夹,而没有助记词的文件夹会得到一个新身份。--restore 最后才写入 seed.txt。因此,请恢复到租户目录之外的临时文件夹中,然后再移进去。

  1. 把 .pbk 文件复制到机器上 maxima 用户可以读取的位置。
  2. 选择一个尚不存在的租户名称。临时路径要与租户目录位于同一个文件系统上。
  3. 在交互式 SSH 会话中(--restore 会在控制台上询问口令),运行:
    sudo install -d -o maxima -g maxima -m 700 /var/lib/parlons-restore-alice
    sudo runuser -u maxima -- java -jar /opt/maxima/parlons-cloud.jar --data /var/lib/parlons-restore-alice --restore /path/alice.pbk
  4. 按提示输入备份的口令。命令会打印恢复了哪些内容。
  5. 把文件夹移进去:
    sudo mv /var/lib/parlons-restore-alice /var/lib/parlons-tenants/alice
  6. 五秒内,主机会用恢复的身份启动它。

恢复出的 seed.txt 是明文(权限 0600)。要加密它,请按下一个步骤操作。

加密现有的明文助记词

  1. 确保没有人能看到你的屏幕,然后读取解锁口令。你将在第 3 步中输入它:
    sudo grep PARLONS_UNLOCK /etc/parlons-tenants.env
  2. 停止主机:
    systemctl stop parlons-tenants
  3. 在交互式 SSH 会话中运行加密,并在提示时输入与 PARLONS_UNLOCK 相同的口令:
    sudo runuser -u maxima -- java -jar /opt/maxima/parlons-cloud.jar --tenants /var/lib/parlons-tenants --unlock prompt --encrypt-seeds
  4. 重新启动主机:
    systemctl start parlons-tenants

每个 seed.txt 都会变成 seed.enc。每一个在删除明文之前都会经过验证。

移除租户

没有删除命令。租户的文件夹保存着账户的密钥:请像对待钱包一样对待它。

  1. 暂停该租户(touch /var/lib/parlons-tenants/alice/.stop)。
  2. 确保对方已经拿到自己的备份包,或者不再需要该账户。
  3. 把文件夹移出租户目录:
    sudo mv /var/lib/parlons-tenants/alice /var/lib/parlons-removed-alice
  4. 把它作为冷备份保留,或在确认无误后将其彻底清除。

23从服务器发出所有者邀请和访客邀请

管理员配对密码

在具有密码服务的主机上(独立的 parlons-cloud 账户、Parlons Node 0.2.118 或更高版本,以及桌面节点应用),所有者邀请(可完全控制所有者账户的配对码)受管理员配对密码保护。访客邀请从不需要它。

如何在 Parlons Node 上设置管理员密码

  1. 打开到节点服务器的交互式 SSH 会话。
  2. 运行:
    sudo parlons-pair --set-admin-password
  3. 在 Admin password (Enter for a guest invitation): 处输入新密码(10 到 1024 个字符)。在 Confirm admin password: 处再输入一次。
  4. 命令会打印 Admin pairing password saved.

如果没有交互式终端,它会停止并显示 Use an interactive SSH terminal (ssh -t) for the admin password。

如何从网页面板设置管理员密码

  1. 打开账户的网页面板(第 24 节)。
  2. 打开设备,找到设置管理员密码(如果已设置,则为更改管理员密码)。
  3. 要更改现有密码,请在当前密码中输入它。
  4. 在新密码中输入新密码,并在确认新密码中再输入一次。密码至少需要 10 个字符。
  5. 点击保存密码。面板会确认:管理员密码已保存。现在可以创建设备所有者邀请。

如何从命令行设置管理员密码

  1. 在运行账户的机器上打开一个交互式终端。
  2. 对于用 deploy-parlons-cloud.sh 部署的账户,运行:
    sudo runuser -u maxima -- java -cp /opt/maxima/parlons-cloud.jar com.eurobuddha.maxima.cloud.AdminPairingPassword set /var/lib/maxima

    对于用一行命令安装程序安装的账户,以你自己的身份运行:

    java -cp ~/.parlons/bin/parlons-cloud.jar com.eurobuddha.maxima.cloud.AdminPairingPassword set ~/.parlons
  3. 输入两次密码。命令会打印 Admin pairing password saved.

在桌面节点应用中,请在应用的 Parlons“设备”页面设置。

sudo parlons-pair

parlons-pair 随 Parlons Node 一起安装,显示的邀请与应用“节点”标签页中的相同。

命令作用
sudo parlons-pair询问管理员密码。输入密码即可得到所有者邀请;直接按 Enter 则得到访客邀请,然后输入访客的账户名称。
sudo parlons-pair --admin所有者邀请。密码错误会失败,绝不会发出配对码。
sudo parlons-pair --guest alice在租户目录中创建(或重用)托管账户 alice,并打印其邀请。需要托管账户服务(第 21 节)。
sudo parlons-pair --set-admin-password设置管理员密码。
--data DIR所有者账户的数据目录(默认 /var/lib/parlons-node)。
--tenants-dir DIR租户目录(默认 PARLONS_HOSTED_DIR,否则为 /var/lib/parlons-tenants)。

环境变量覆盖:PARLONS_HOSTED_DIR、PARLONS_NODE_JAR(默认 /opt/maxima/parlons-node.jar)、PARLONS_CLOUD_JAR(默认 /opt/maxima/parlons-cloud.jar)。

它会打印完整的 MAX# 地址、一次性配对码、一个二维码(如果安装了 qrencode)以及完整的邀请。如果没有未使用的配对码,它会这样提示;再运行一次即可获得新的配对码。已使用的配对码绝不会从旧日志或过时文件中恢复。

如何在 Parlons Node 上生成所有者邀请

  1. 打开到节点服务器的交互式 SSH 会话。
  2. 运行:
    sudo parlons-pair --admin
  3. 在 Admin password (Enter for a guest invitation): 提示处输入管理员密码。密码错误时会打印 Incorrect admin password,绝不会发出配对码。
  4. 用 Portal 扫描打印出的二维码(扫描配对二维码),或粘贴完整的邀请(第 4 节)。

如何在 Parlons Node 上生成访客邀请

这需要托管账户服务(--manage-from-node,第 21 节)。

  1. 打开到节点服务器的 SSH 会话。
  2. 带上访客的账户名称运行:
    sudo parlons-pair --guest alice
  3. 它会创建托管账户 alice(或重用它),并打印其邀请。
  4. 把邀请私下发送给这个人。

不带选项运行 sudo parlons-pair 时,会询问管理员密码。输入密码即可得到所有者邀请。或者直接按 Enter,然后在 Hosted account name: 处输入访客的名称,即可得到访客邀请。

邀请的其他来源

来源所有者邀请访客邀请
Portal,节点 → 配对我的其他设备是(如果主机有管理员密码,需要输入)密码留空 → 托管账户
Portal,节点 → 管理托管账户 → 显示邀请否是
网页面板,设备 → 新建配对码是(主机有管理员密码时显示管理员密码字段)否
网页面板,设备 → 托管账户 → 显示邀请否是
ops/tenant-new.sh、--tenant-new否是(该租户自己的邀请)
首次启动时的初始配对码(pair-code.txt)是,用于第一台设备不适用

如何用 parlons 命令生成所有者邀请

  1. 在 parlons 已与账户配对的终端中运行:
    parlons newcode
  2. 如果主机有管理员密码,命令会在控制台上用 Admin password: 询问。输入密码。密码绝不会从命令行参数中读取。
  3. 命令会打印 code : 和 invite : 两行。在 Parlons Cloud 应用中扫描或粘贴邀请。配对码部分只能使用一次。

该提示需要交互式控制台。如果在没有控制台的情况下运行(例如从脚本运行),命令会失败,并显示 Admin password required for an owner-account invitation。


24本地网页面板

每台账户主机都只在环回地址上为其账户提供网页面板和 API:http://127.0.0.1:<port>/。默认端口是 9587。它与已配对手机上的界面相同,只是在同一台机器的浏览器中使用,无需通过网络配对。

打开面板

链接只能让浏览器登录一次。账户会立即把下一个未使用的链接写入 panel-ticket.txt。如果你打开一个已使用的链接,会看到 This link has been used or has expired。

如何在运行账户的机器上打开面板

  1. 在那台机器的终端中运行:
    parlons panel

    它会用一个一次性链接打开浏览器。

  2. 或者自己打开保存在 <data>/panel-ticket.txt(例如 ~/.parlons/panel-ticket.txt)中的链接。

另一台机器上的已配对设备也可以向账户请求一个 60 秒内有效的链接。当账户的文件夹不在同一台机器上时,parlons panel 就是这样做的。

如何从你的电脑打开服务器上的面板

面板会拒绝 127.0.0.1:<port> 或 localhost:<port> 之外的任何 Host。因此,请使用 SSH 隧道,并且两端使用相同的端口号。

  1. 找到端口。单个账户使用 9587。对于租户,请读取其 panel.txt(第 21 节)。
  2. 在你的电脑上打开隧道,并让它保持运行:
    ssh -L 9587:127.0.0.1:9587 root@your.box

    对于节点机器上的第一个租户,两端都改用 9597:

    ssh -L 9597:127.0.0.1:9597 root@your.box
  3. 在那个 SSH 会话中,打印一次性链接。对于用 deploy-parlons-cloud.sh 部署的单个账户:
    sudo cat /var/lib/maxima/panel-ticket.txt

    对于租户:

    sudo cat /var/lib/parlons-tenants/alice/panel-ticket.txt
  4. 复制该链接,在你电脑的浏览器中打开。

面板显示的内容

标题栏显示 Parlons!、版本和由 Maxima 提供支持,还有一个状态胶囊,以及主题、搜索和更多按钮。标签页包括:

在面板中执行的任务

如何从面板配对你自己的设备

  1. 点击设备。
  2. 在配对您自己的设备下,如果显示了管理员密码字段,请输入密码。
  3. 点击新建配对码。面板显示新配对码已生成,以及二维码和文本形式的邀请。
  4. 用 Portal 扫描二维码(扫描配对二维码),或点击复制按钮,在新设备上粘贴邀请。

如何在面板中批准或撤销设备

  1. 点击设备。
  2. 在等待批准下,点击你认识的设备旁边的批准。面板显示已批准。
  3. 要切断一台设备,点击它旁边的撤销,并确认 撤销此设备?它将失去账户访问权限。 面板显示已撤销。

如何从面板为朋友托管账户

  1. 点击设备,滚动到托管账户。
  2. 仅限内置托管:点击启用托管并确认。请先设置管理员密码。
  3. 在账户名称中输入名称(例如 alice),然后点击创建账户。面板显示 账户已创建。请稍等几秒后刷新,待账户运行后选择“显示邀请”。
  4. 反复点击刷新,直到账户状态为运行中。
  5. 点击显示邀请。邀请以二维码和完整文本显示。
  6. 点击复制租户邀请,私下发送给这个人。

要暂停某个账户,点击其所在行的暂停并确认。继续会让它恢复。停止托管会让所有内置访客账户离线;它们的身份和聊天会保留。

如何在面板中添加或移除中继

  1. 点击节点,滚动到中继。
  2. 在字段中输入 host:port(例如 relay.example.com:9501)或粘贴中继二维码文本,然后点击添加。
  3. 要移除你自己的某个中继,点击其所在行的移除。面板显示已断开。
  4. 切换使用内置中继列表,即可打开或关闭内置列表。

如何在面板中固定地址目录锚点

  1. 点击节点,滚动到地址目录锚点。
  2. 点击固定最佳中继。下方一行显示 已固定:… 以及对应的中继。
  3. 清除会取消固定。重新发布会立即重新推送你的目录记录。

如何让浏览器退出登录

  1. 点击设置,滚动到此面板。
  2. 点击退出登录。要重新进入,请打开一个新的一次性链接。

面板不能做什么

助记词、备份、钱包发送、付款、节点控制台和 NFT 托管都无法通过面板使用。桌面上的一个 Cookie,远不如你手中的手机安全;这些功能只保留在已配对手机和命令行上。

面板的安全性

--no-panel 会关闭面板。--panel-port <n> 会更改其端口。


25命令行参数参考

java -jar parlons-cloud-0.11.124.jar [options]。程序接受的所有参数:

单个账户

参数默认值含义
--data <dir>~/.parlons账户的数据目录。
--name <name>保留已存储的名称账户的显示名称。
--relay-port <n>9501此账户为网络运行的公共中继的端口。
--no-relay(中继开启)运行账户时不运行公共中继。
--direct-port <n>9536第二层直连可达性端口。
--no-direct(直连开启)关闭直连可达性。
--panel-port <n>9587本地网页面板和 API,仅在 127.0.0.1 上。
--no-panel(面板开启)不运行网页面板。
--wallet rpc:<port>[:<secret-file>]账户自己基于其助记词的签名器通过环回 RPC,把本机上已经运行的 Minima 节点用作钱包。由节点签名;账户只保留身份。该文件保存节点的 -rpcpassword。
--host <ip>不公布要公布的公网地址。
--relays <list>无要额外连接的网络中继(以逗号分隔的 host:port)。
--no-builtin-relays(内置列表开启)不把编译在程序中的中继列表用作初始来源;只使用 --relays 和从面板添加的中继。至少需要一个。
--peers <list>无(或 MAXIMA_PEERS)公共中继的网状网络节点(以逗号分隔)。
--blobstore <MB>1024中继媒体存储空间大小,单位 MB。
--import-seed <file|prompt>采用一个现有的 24 词助记词、自定义 Minima 短语或助记词十六进制值,只能导入全新目录,然后退出。prompt 表示从控制台读取。
--restore <file.pbk>把加密备份包恢复到全新目录,然后退出。需要交互式控制台。
-v、--version打印 parlons-cloud 0.11.124 并退出。
-h、--help打印帮助并退出。

多账户主机

参数含义
--tenants <dir>在同一个进程中运行每个 <dir>/<name>/ 账户。只有第一个租户开放中继端口和直连端口;其他租户共用它们。每个租户的面板按启动顺序使用 --panel-port、+1、+2 …(使用 --no-panel 时则没有面板)。
--unlock <prompt|env>用于打开 seed.enc 文件的口令:在控制台上询问,或从 PARLONS_UNLOCK 读取(用于 systemd)。只要有任何租户的助记词是加密的,就需要它。它生效期间,新租户会获得加密的助记词。
--tenant-new <dir> <name>运维命令:创建 <dir>/<name>/,等待(60 秒)正在运行的主机启动它,打印其地址、配对码和邀请,然后退出。
--encrypt-seeds与 --tenants 和 --unlock 一起使用:把每个租户的 seed.txt 转换为 seed.enc(在解锁口令下使用 scrypt 和 AES-GCM),验证,删除明文,然后退出。

环境变量和系统属性

名称含义
PARLONS_UNLOCK--unlock env 使用的解锁口令。部署脚本将其保存在 /etc/parlons-tenants.env 中。
MAXIMA_PEERS网状网络节点,在未指定 --peers 时使用。
-Dparlons.hosted.limit=<n>托管账户创建上限(默认 10)。如果你调高了它,也要把它传给 --tenant-new。
-Dmaxima.relay.maxpersource=<n>在你运行的中继上:每个来源 IP 允许的未注册连接数(默认 32)。

默认端口一览

端口用途暴露范围
9501/tcp公共中继公开,仅在你运行中继时
9536/tcp直连可达性公开,仅在启用时
9587/tcp网页面板和 API仅限环回,切勿暴露
9597/tcp 及以上节点机器上的租户面板(配置后,第 21 节)仅限环回

26parlons 命令

一行命令安装程序会安装 parlons。它本身就是一台已配对设备(其密钥保存在 ~/.parlons-client 中),因此可以操作本机或任何其他机器上的账户。

服务命令(本机的账户):start、stop、restart、log [n]、update、uninstall。

账户命令:

命令作用
whoami此设备的密钥,以及它操作的是哪个账户。
connect <account MAX#>让此设备指向一个账户。
pair [<code>]配对此设备(使用配对码,或进入等待状态 → 批准)。
ping账户名称和地址。
status名称、版本、运行时间、中继、公共中继、已配对设备、永久地址。
devices已配对和等待中的设备,带完整密钥。
newcode生成新的一次性配对码和邀请。如果主机有管理员密码,它会在控制台上询问(第 23 节)。
invite从本机上账户的文件夹中打印尚未使用的邀请。
panel在浏览器中打开账户的网页面板(一次性链接)。
approve <key> / revoke <key>批准等待中的设备 / 撤销设备。
name <display name>设置账户名称(会通知联系人)。
contacts、add <addr|MAX#>、rename <key> <name>、resolve <key>管理联系人。
chats、read <peer key>、send <peer key> <msg>、markread <peer key>阅读和发送消息。
pay <key> <amt> [memo]从账户的钱包向联系人付款。
wallet address、wallet balance、wallet set <Mx>、wallet resync <file>账户的钱包(resync:仅限节点账户)。
cmd <node command…>在账户的节点上运行任意 Minima 命令(仅限 Parlons Node);输出完整。
nft put <file> …、nft list、nft newcollection、nft delete <path>在节点上托管 NFT 作品(仅限 Parlons Node)。
figures、hosts [add|remove <host:port>]、mls pin|clear|republish、nodelog [clear]中继统计、中继、地址目录锚点、账户的日志。
seed显示账户的 24 个单词(仅在你的终端中)。
backup <file.pbk>写入加密的可携带账户备份包。

单独运行 parlons 可查看列表。

如何从另一台机器操作账户

任何机器上的 parlons 命令,只要配对完成,就能操作任何账户。

  1. 用一行命令安装程序在那台机器上安装 parlons(第 19 节),或使用你已有的。
  2. 使用完整的 MAX# 地址,让它指向该账户:
    parlons connect <account MAX#>

    它会打印 account saved. next: parlons pair <code>。

  3. 用来自已配对设备的新配对码进行配对(第 10 节):
    parlons pair ABCD-EFGH-JKLM

    它会打印 paired ✓ — this device can now drive your account.

  4. 或者不带配对码运行 parlons pair。它会打印 pairing requested. Approve it from an already-paired device: 以及要在已配对设备上运行的确切 parlons approve <key> 命令行。
  5. 检查是否正常:
    parlons status

如何从终端阅读和发送消息

  1. 列出你的聊天(名称、最后一条消息、未读数量):
    parlons chats
  2. 查找联系人的完整密钥:
    parlons contacts
  3. 阅读一个对话:
    parlons read <peer key>
  4. 发送消息:
    parlons send <peer key> hello

如何从终端向联系人付款

  1. 用 parlons contacts 查找联系人的密钥。
  2. 从账户的钱包向对方付款(金额以 MINIMA 计,备注可选):
    parlons pay <key> 1.5 lunch
  3. 它会打印 payment building on your node ✓ (watch the chat bubble)。pay 命令只能发送 Minima。请通过 Portal 发送 MxUSD。

27数据目录中的文件

单个账户的目录(~/.parlons、/var/lib/maxima)和每个租户文件夹的结构相同。标为机密的文件必须保持权限 0600,绝不能写入日志、粘贴或分享。

文件内容
seed.txt机密。24 个单词(或导入的短语或助记词十六进制值)。既是身份,也是钱包。
seed.enc机密。在解锁口令下静态加密的租户助记词。
account.txt永久 MAX# 地址,在账户连接后写入一次。公开。
pair-code.txt机密。尚未使用的一次性配对码。使用后删除。
invite.txt机密。完整地址,然后是 ?code=,最后是配对码。配对码使用后删除。
panel.txt面板的环回 URL。
panel-ticket.txt机密。一个未使用的一次性面板链接。
local-device.key机密。面板的设备密钥。删除它(需先停止账户)可重新启用已撤销的面板。
.admin-pairing-password管理员密码的验证值(绝不是密码本身)。
devices.json已配对设备。
wallet/钱包的密钥使用计数。
.stop(租户)存在 = 此租户已暂停。
hosted-chat/(所有者账户)内置的仅聊天访客账户,每个一个文件夹;.enabled 表示托管已开启。
account-history/(Parlons Node)被身份导入替换掉的账户,保留以便恢复。
log/cloud.log(安装程序安装的账户)账户的日志。

租户目录中还有 .host-status.json,即主机的心跳(哪些租户正在运行或出现故障),每五秒刷新一次。


28端口、防火墙、TLS 和反向代理

如何开放并验证中继端口

只有当主机运行中继时才需要。

  1. 在机器上,在其自身的防火墙中允许该端口。ufw 或 firewalld 启用时,脚本会自动完成这一步。手动操作时,ufw 为:
    ufw allow 9501/tcp

    firewalld 为:

    firewall-cmd --permanent --add-port=9501/tcp && firewall-cmd --reload
  2. 在云服务商的控制台中,也在其防火墙中允许入站 TCP 9501。
  3. 从另一台机器(而不是机器本身)验证:
    nc -z -G 5 vps.example.com 9501 && echo reachable
  4. reachable 表示端口已开放。没有输出则表示仍有东西在阻挡它。

(网络中的 TLS 前端服务于在 Parlons Node 上运行的其他东西,例如钱包网关和 DEX 中继;它们不属于 Parlons Cloud 主机。)


29升级和回滚

每次安装都会把带版本号的 jar 保存在一个固定的符号链接旁边,因此回滚只需更改一次符号链接。

主机升级回滚
一行命令安装程序parlons update,或再次运行安装命令ln -sf parlons-cloud-<OLDVER>.jar ~/.parlons/bin/parlons-cloud.jar && parlons restart
deploy-parlons-cloud.sh重新运行同一条命令(用 --jar 指定某个构建)在机器上:cd /opt/maxima && ln -sf parlons-cloud-<OLDVER>.jar parlons-cloud.jar && systemctl restart parlons-cloud
parlons-tenants重新运行 ops/deploy-parlons-tenants.sh <box>(它会保留 /etc/parlons-tenants.env)ln -sf parlons-cloud-<OLDVER>.jar /opt/maxima/parlons-cloud.jar && systemctl restart parlons-tenants

如何检查下载的 jar

  1. 从发布版本 cloud-v0.11.124 下载 parlons-cloud-0.11.124.jar。
  2. 计算其 SHA-256。在 Mac 上:
    shasum -a 256 parlons-cloud-0.11.124.jar

    在 Linux 上:

    sha256sum parlons-cloud-0.11.124.jar
  3. 与公布的值进行比较。必须完全一致:
    0ae833429b641393f93b427695784b534e8a2a06a7194eba74e57aed4f19b231

安装程序和部署脚本会替你检查 SHA-256,并拒绝不匹配的文件。

如何升级租户主机

  1. 备份 /etc/parlons-tenants.env 和数据目录。
  2. 如果你编辑过单元,请保留一份副本:
    cp /etc/systemd/system/parlons-tenants.service /etc/systemd/system/parlons-tenants.service.before-0.11.124
  3. 在你的电脑上,用新的 jar 重新运行部署脚本:
    ops/deploy-parlons-tenants.sh root@your.box --jar dist/parlons-cloud-0.11.124.jar

    如果你之前用过 --manage-from-node,请再次加上。脚本会保留 /etc/parlons-tenants.env。它会用 --panel-port 9597 重写单元,因此请重新应用你自己做的其他修改。

  4. 检查服务:
    systemctl is-active parlons-tenants
    journalctl -u parlons-tenants | grep 'multi-account host' | tail -1

    这一行应包含 Parlons Cloud 0.11.124。

  5. 检查每个租户是否都已上报(第 30 节)。

如何回滚

  1. 在机器上(对于安装程序安装的账户,则在 ~/.parlons/bin 中),列出仍然存在的带版本号的 jar:
    ls /opt/maxima/parlons-cloud-*.jar
  2. 使用上表中对应你主机类型的命令行,把符号链接指向旧版本并重启。例如,在租户主机上:
    ln -sf parlons-cloud-0.11.122.jar /opt/maxima/parlons-cloud.jar && systemctl restart parlons-tenants
  3. 按上面第 4 步,在日志中检查版本。

Portal 应用独立更新:把较新的 APK 覆盖安装到旧版本上(第 3 节)。


30日志

主机位置
一行命令安装程序parlons log,或 ~/.parlons/log/cloud.log
deploy-parlons-cloud.shjournalctl -u parlons-cloud -f
parlons-tenantsjournalctl -u parlons-tenants(每个租户的行都带有标签 parlons-cloud/<name>)
Parlons Nodejournalctl -u parlons-node -f
从已配对手机节点 → 打开控制面板 → 事件日志(Parlons Node)
从面板节点 → 日志

如何跟踪日志

  1. 从上表中选择对应你主机的命令。例如,在租户主机上:
    journalctl -u parlons-tenants -f
  2. 如果只想看一个租户,按其标签过滤:
    journalctl -u parlons-tenants | grep 'parlons-cloud/alice'
  3. 按 Ctrl+C 停止跟踪。

有用的行:

程序从不把助记词写入日志:在 systemd 下,新生成的助记词不会被打印;它会提示你通过 SSH 读取一次 seed.txt。配对码只写入 pair-code.txt,从不记入日志。尽管如此,在搜索日志或单元文件时,请过滤掉任何提到助记词的内容(… | grep -v seed),并在把日志粘贴到任何地方之前先检查一遍。


31运维人员安全须知


32运维人员故障排除

症状原因和解决方法
安装程序:not up after 90 s会显示最后几行日志。通常是 Java 没有装上或没有网络。解决后再次运行安装程序;不会丢失任何东西。
安装程序:Could not reach GitHub to find the release稍后再试,或从 https://github.com/eurobuddha/maxima/releases 把 jar 下载到 ~/.parlons/bin,然后再次运行安装程序。
ERROR: relay port 9501 is already in use另一个中继或 Parlons Node 占用了它。用 --relay-port 选择一个空闲端口,或以 --no-relay 运行。使用一行命令安装程序时,请不带 --relay 安装。
web panel could NOT start on 127.0.0.1:9587有别的程序(通常是 Parlons Node)占用了该端口。用 --panel-port 指定一个空闲端口(节点机器上用 9597),或使用 --no-panel。没有面板,账户也能正常工作。
\<name\>: seed.enc needs --unlock用 --unlock env(并设置 PARLONS_UNLOCK)或 --unlock prompt 启动主机。
--unlock env: PARLONS_UNLOCK is not set单元的 EnvironmentFile=/etc/parlons-tenants.env 缺失或为空。请从备份中恢复。
--unlock prompt needs an interactive console (use --unlock env under systemd)正如提示所说。
no invite after 60 s - is the host running?运行 systemctl status parlons-tenants。主机每五秒轮询一次目录。
Hosted-account service is offline. Ask the server operator to start it.租户主机没有运行,或在过去 90 秒内没有写入心跳。启动 parlons-tenants。
Wait until this account is running before creating an invite / Account is connecting. Refresh in a few seconds.租户尚未连接。请等待,然后刷新。
Hosted account is paused; resume it before issuing an invite删除它的 .stop 文件。
Hosting limit reached (10 accounts)已暂停的账户也计算在内。把一个不用的文件夹移出去,或调高 -Dparlons.hosted.limit。
Set your admin password before enabling hosting先设置管理员密码(第 23 节)。
Enable hosting before managing guest accounts内置托管已关闭;请启用它(第 11 节)。
Guest hosting is unavailable. Check the data folder permissions and that another host is not using it.所有者的 hosted-chat/ 文件夹不可写、是一个符号链接,或另一个进程持有它的锁。
parlons newcode 显示 Admin password required for an owner-account invitation该命令没有可用于询问的控制台(例如从脚本运行)。请在交互式终端中运行 parlons newcode,并在 Admin password: 处输入密码。或者从应用或面板生成邀请,或进行无配对码的配对并批准。
手机上显示 此账户的主机版本过旧,无法发送 MxUSD — 请更新(…)账户的主机无法证明它支持该代币 ID。请将其更新到 Parlons Cloud 0.11.121 或更高版本(当前为 0.11.124)、Parlons Node 0.2.135 或更高版本,或 minimaCore Desktop 0.18.21 或更高版本。
parlons-pair 显示 Incorrect admin password两秒后重试。要在 Parlons Node 上更改忘记的密码,请在本地使用 sudo parlons-pair --set-admin-password。
恢复:wrong passphrase (or a damaged backup file)检查口令。
恢复:因为身份已存在而拒绝--restore 和 --import-seed 从不覆盖。请先把旧数据移走,或使用全新目录。
手机能连接,但配对时好时坏(中继主机)云控制台防火墙阻挡了中继端口。请在那里也允许它。
把恢复的文件夹移进去之后,租户得到了一个新身份该文件夹在写入 seed.txt 之前就被发现了。停止它(.stop),然后通过临时文件夹重新恢复(第 22 节)。在确认没有人与那个意外身份配对之前,请把它的文件夹另行保留。

分步解决方法

中继端口 9501 已被占用

  1. 找出是什么占用了它:
    sudo ss -ltnp | grep ':9501'
  2. 如果是 Parlons Node 或另一个中继,就保留它。改为让这个账户不运行自己的中继:对于一行命令安装程序,运行 parlons uninstall,然后带 --no-relay 重新安装。对于手写的单元,把 --relay-port 9501 改为 --no-relay。
  3. 或者用 --relay-port <n>(使用 deploy-parlons-cloud.sh 时为 --port <n>)为这个账户指定一个空闲端口,并改为开放该端口(第 28 节)。
  4. 重启服务并检查日志(第 30 节)。

网页面板无法启动

  1. 日志显示 web panel could NOT start on 127.0.0.1:<port>。找出是什么占用了该端口:
    sudo ss -ltnp | grep ':9587'
  2. 选择一个空闲的环回端口。在运行 Parlons Node 的机器上,使用 9597 或更高的端口。
  3. 在 deploy-parlons-cloud.sh 主机上,编辑单元的 ExecStart,加上 --panel-port 9597(或加上 --no-panel,不运行面板)。在租户主机上,单元已经带有 --panel-port 9597;如果 9597 已被占用,请在那里选择另一个起始端口。
    systemctl edit --full parlons-cloud
    systemctl daemon-reload && systemctl restart parlons-cloud
  4. 在此期间,没有面板,账户也能正常工作。

加密的助记词无法打开(seed.enc needs --unlock,或 PARLONS_UNLOCK is not set)

  1. 在不打印内容的情况下,检查解锁文件存在且不为空:
    sudo test -s /etc/parlons-tenants.env && echo present
  2. 如果文件缺失,从你的离线备份恢复到 /etc/parlons-tenants.env,所有者为 root,权限 600:
    sudo install -o root -g root -m 600 ./parlons-tenants.env.backup /etc/parlons-tenants.env
  3. 检查单元带有 EnvironmentFile=/etc/parlons-tenants.env 和 --unlock env:
    systemctl cat parlons-tenants | grep -E 'EnvironmentFile|--unlock'
  4. 重启:
    systemctl restart parlons-tenants

没有原来的口令,加密的助记词就无法打开。请改为从该租户的备份包恢复(第 22 节)。

tenant-new 60 秒后仍没有邀请

  1. 检查主机是否正在运行:
    systemctl status parlons-tenants
  2. 如果它已停止,用 systemctl start parlons-tenants 启动它。
  3. 在日志中检查该租户(journalctl -u parlons-tenants | grep 'parlons-cloud/alice')。
  4. 再次运行 ops/tenant-new.sh root@your.box alice。它不会替换已有文件夹的身份。

托管账户服务离线

  1. 在机器上启动租户主机:
    systemctl start parlons-tenants
  2. 等几秒,让它写入心跳(租户目录中的 .host-status.json)。
  3. 在 Portal 中,打开节点 → 管理托管账户,然后点按刷新。

恢复后租户得到了新身份

  1. 暂停这个意外的租户:
    touch /var/lib/parlons-tenants/alice/.stop
  2. 把它的文件夹移出租户目录,在确认没有人与它配对之前另行保留。
  3. 通过临时文件夹重新恢复备份包,然后再移进去(第 22 节“从备份包恢复租户”)。

其他任何问题,请在项目的 GitHub 上提交 issue,写明版本、你期望的结果、实际发生的情况以及相关日志行(请先检查其中是否有任何机密信息)。


33术语表

术语含义
账户一个 Parlons 身份,连同它的联系人、聊天、已配对设备、设置以及(通常)钱包,由主机保持在线。
管理员配对密码在具有该服务的主机上保护所有者邀请的本地密码。长度为 10 到 1024 个字符;只以验证值的形式存储。
地址(MAX# 形式)账户的永久地址。公开,长达几百个字符,永远不变。务必完整复制。
地址(Mx 密钥加 @host:port)较旧的形式:身份密钥加上当前承载它的中继。host:port 部分会变化。
内置托管所有者账户中的仅聊天访客托管(Parlons Node、桌面节点应用、独立 parlons-cloud)。
备份包(.pbk)整个账户(身份、设备、设置、联系人、聊天)的加密备份,所有 Parlons 主机都能读取;手机应用可读取其中的身份和联系人。
仅聊天账号只有聊天、通话和文件功能的访客账户。
设备与账户配对的任何东西:手机、终端、主机的面板。可以撤销,而不会改变身份。
设备密钥已配对设备自己的密钥。它不是账户的身份。
地址目录锚点 / MLS把永久地址解析到账户当前所在位置的定位服务。可以固定到某一个中继。
访客在别人的主机上拥有托管账户的人。
主机让一个或多个账户保持在线的机器和程序。也用来指账户所连接的中继。
热添加租户主机在五秒内启动一个新租户文件夹,无需重启。
邀请地址和一次性配对码合在一行,用 ?code= 连接。一个二维码即可配对一部手机。
本地设备 / 此计算机主机自己的网页面板,作为账户的已配对设备运行。
邮箱为离线者暂存的加密消息。
网状网络节点与此账户的中继交换目录信息的其他中继。
MxUSDMinima 上与美元挂钩的代币,代币 ID 为 0x7D39745FBD29049BE29850B55A18BF550E4D442F930F86266E34193D89042A90。
发件箱你自己尚未被主机接收的消息;会以逐渐拉长的间隔重试。
所有者其账户运行这台机器并控制其托管功能的人。
所有者邀请把设备配对到所有者账户并赋予完全控制权的邀请。
配对码一次性代码,三组,每组四个字符,可让一台设备完成配对。
面板票据让浏览器登录本地网页面板的一次性链接。
Parlons Cloud主机程序(parlons-cloud.jar),也是 Android Portal 应用和 iPhone 配对功能的名称。
Parlons Node内置中继、钱包网关和 Parlons 账户的完整 Minima 节点。可以从 Portal 配对。
parlons-tenants运行 parlons-cloud --tenants 的 systemd 服务。
等待批准在没有配对码的情况下请求配对、等待现有设备批准的设备。
公共中继账户为网络承载流量而运行的中继。
Portal本手册对 Parlons Cloud Android 应用的称呼。
助记词 / 24 个单词既是身份又是 Minima 钱包的秘密短语。
签名密钥使用次数钱包密钥已经使用过的一次性签名次数。只能调高。
单一持有者规则一个身份同一时间只在一个地方运行。
租户多账户主机中的一个账户文件夹。
解锁口令用于解密租户 seed.enc 文件的口令(PARLONS_UNLOCK)。
只读钱包查看某个密钥在别处的地址的钱包视图;可以显示余额,但永远无法付款。
顶部 ↑