From bbf3bfee67e45268811326a51b0607c5a2725b0f Mon Sep 17 00:00:00 2001 From: ShouNichi <91327103+ShouNichi@users.noreply.github.com> Date: Mon, 25 Dec 2023 18:56:07 +0000 Subject: [PATCH 1/2] Chinese translation added (First Revision). --- source/connect_zh-cn.md | 33 ++++++++++++++++++++ source/credits_zh-cn.md | 29 +++++++++++++++++ source/crypto_zh-cn.md | 25 +++++++++++++++ source/docs_zh-cn.md | 6 ++++ source/donate_zh-cn.md | 20 ++++++++++++ source/hardware_zh-cn.md | 21 +++++++++++++ source/index_zh-cn.md | 28 +++++++++++++++++ source/start_zh-cn.md | 67 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 229 insertions(+) create mode 100644 source/connect_zh-cn.md create mode 100644 source/credits_zh-cn.md create mode 100644 source/crypto_zh-cn.md create mode 100644 source/docs_zh-cn.md create mode 100644 source/donate_zh-cn.md create mode 100644 source/hardware_zh-cn.md create mode 100644 source/index_zh-cn.md create mode 100644 source/start_zh-cn.md diff --git a/source/connect_zh-cn.md b/source/connect_zh-cn.md new file mode 100644 index 0000000..0bf2066 --- /dev/null +++ b/source/connect_zh-cn.md @@ -0,0 +1,33 @@ +# 公共测试网络(Public Testnet) + +如果你只是想立刻上手,不想搭建物理意义上的网络的话,你可以加入公开的 Reticulum 测试网络。这是一个非正式的用于测试与实验的网络。大部分时间它都会在线,所有人都可以加入。与此同时,这也意味着它没有可用性保障。 + +测试网络运行的是最新版的 Reticulum(甚至会在正式发布之前更新)。有时实验版的 Reticulum 会被部署到测试网络的节点之上,这可能会产生奇怪的行为。如果这些都没把你吓跑,你可以通过 TCP 或是 I2P 加入测试网络。 + +仅需在 Reticulum 的配置文件中加入以下任意一个界面: + +``` +# TCP/IP interface to the Dublin Hub + [[RNS Testnet Dublin]] + type = TCPClientInterface + enabled = yes + target_host = dublin.connect.reticulum.network + target_port = 4965 + +# TCP/IP interface to the BetweenTheBorders Hub (community-provided) + [[RNS Testnet BetweenTheBorders]] + type = TCPClientInterface + enabled = yes + target_host = betweentheborders.com + target_port = 4242 + +# Interface to I2P Hub A + [[RNS Testnet I2P Hub A]] + type = I2PInterface + enabled = yes + peers = g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq.b32.i2p +``` + +测试网络中还有几个 [Nomad Network](https://github.com/markqvist/nomadnet) 节点和 [LXMF](https://github.com/markqvist/lxmf) 传播节点(propagation nodes)。 + +

下一个主题:阅读手册

diff --git a/source/credits_zh-cn.md b/source/credits_zh-cn.md new file mode 100644 index 0000000..45d1e5a --- /dev/null +++ b/source/credits_zh-cn.md @@ -0,0 +1,29 @@ +# 致谢与署名(Acknowledgements & Credits) +Reticulum 站在巨人的肩膀上。没有前人移山般的开源工作、多位贡献者的参与以及各位对本项目的支持,Reticulum 就不可能存在。非常感谢每一位帮助过这个项目的人。 + +Reticulum 用到了一系列其他的模块与项目。对以下项目的作者与贡献者致以诚挚的感谢。 + +- [PyCA/cryptography](https://github.com/pyca/cryptography), *BSD License* +- [Pure-25519](https://github.com/warner/python-pure25519) by [Brian Warner](https://github.com/warner), *MIT License* +- [Pysha2](https://github.com/thomdixon/pysha2) by [Thom Dixon](https://github.com/thomdixon), *MIT License* +- [Python-AES](https://github.com/orgurar/python-aes) by [Or Gur Arie](https://github.com/orgurar), *MIT License* +- [Curve25519.py](https://gist.github.com/nickovs/cc3c22d15f239a2640c185035c06f8a3#file-curve25519-py) by [Nicko van Someren](https://gist.github.com/nickovs), *Public Domain* +- [I2Plib](https://github.com/l-n-s/i2plib) by [Viktor Villainov](https://github.com/l-n-s) +- [PySerial](https://github.com/pyserial/pyserial) by Chris Liechti, *BSD License* +- [Netifaces](https://github.com/al45tair/netifaces) by [Alastair Houghton](https://github.com/al45tair), *MIT License* +- [Configobj](https://github.com/DiffSK/configobj) by Michael Foord, Nicola Larosa, Rob Dennis & Eli Courtwright, *BSD License* +- [Six](https://github.com/benjaminp/six) by [Benjamin Peterson](https://github.com/benjaminp), *MIT License* +- [Umsgpack.py](https://github.com/vsergeev/u-msgpack-python) by [Ivan A. Sergeev](https://github.com/vsergeev) +- [Python](https://www.python.org) + +Reticulum 的协议设计与参考实现是由 Mark Qvist 于 2014-2022 进行的。 + +[Reticulum 的 Python 参考实现](https://github.com/markqvist/reticulum) 以及这个网站均为 [MIT 授权](license.html)。若想支持开发,请捐赠。 + +---------------- + +
Reticulum 协议是人类的共有财产
我将其贡献至公有领域

带着期许与信念面向未来
看那自由与繁荣之花
开满世间大地

谢谢各位
+ +---------------- + +

diff --git a/source/crypto_zh-cn.md b/source/crypto_zh-cn.md new file mode 100644 index 0000000..7ece4f6 --- /dev/null +++ b/source/crypto_zh-cn.md @@ -0,0 +1,25 @@ +# 密码学原语(Cryptographic Primitives) +Reticulum 使用了一系列高效、健壮、现代的密码学原语(cryptographic primitives)。它们都有着被广泛使用的现成的实现,在一般的 CPU 或是微控制器上都可以运行。这些必要的原语是: + +- Ed25519 用于签名 +- X22519 用于 ECDH 密钥交换 +- HKDF 用于密钥派生 +- AES-128 CBC 模式 +- HMAC-SHA256 用于消息认证 +- SHA-256 +- SHA-512 + +在默认安装下,`X25519`、`Ed25519` 和 `AES-128-CBC` 都由 [OpenSSL](https://www.openssl.org/) 提供(通过[PyCA/cryptography](https://github.com/pyca/cryptography))。散列函数 `SHA-256` 和 `SHA-512` 由 Python 标准库 [hashlib](https://docs.python.org/3/library/hashlib.html) 提供。`HKDF`、`HMAC`、`Fernet` 原语与 `PKCS7` 填充函数总是由以下内部实现提供: + +- [HKDF.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HKDF.py) +- [HMAC.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HMAC.py) +- [Fernet.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/Fernet.py) +- [PKCS7.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/PKCS7.py) + +Reticulum 还包含了所有所需密码学原语的纯 Python 实现。如果 OpenSSL 和 PyCA 在系统上不可用的话,Reticulum 会使用自带的纯Python实现。这时,最明显的影响是速度——OpenSSL作为后端会*快的多*。然而最严重的影响,则可能是使用这些没有经受过与 OpenSSL 同级别安全审查、测试与评估的实现所带来的安全性问题。 + +如果你想使用自带的纯 Python 实现,我非常建议你充分了解可能的风险,并仔细思考这些风险是否适用在你身上。 + +Reticulum 目前还十分年轻,这一点必须牢记于心。虽说在构建时,开发者尽量遵守了密码学的最佳实践,但它*还没有*受过外部的安全审计,而且很可能会有破坏隐私或是安全性的 Bug。如果你愿意帮忙,或是愿意赞助进行安全审计,请联系开发者。 + +

下一个主题: 致谢与署名

diff --git a/source/docs_zh-cn.md b/source/docs_zh-cn.md new file mode 100644 index 0000000..4f3254e --- /dev/null +++ b/source/docs_zh-cn.md @@ -0,0 +1,6 @@ +# 阅读手册(Read The Manual) +你可以在[本站](manual/index.html)或是[GitHub Pages](https://markqvist.github.io/Reticulum/manual/)阅读完整的文档。 + +你也可以下载[PDF](manual/Reticulum%20Manual.pdf)或是[EPUB](manual/Reticulum%20Manual.epub)格式的文档供离线查看。 + +

下一个主题: 密码学原语

diff --git a/source/donate_zh-cn.md b/source/donate_zh-cn.md new file mode 100644 index 0000000..a45c0d9 --- /dev/null +++ b/source/donate_zh-cn.md @@ -0,0 +1,20 @@ +## 支持 Reticulum(Support Reticulum) +你可以通过以下途径来支持这一开放、自由、私密的通信系统的开发。 + +- Monero
+ ``` + 84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w + ``` +

+- Ethereum
+ ``` + 0x81F7B979fEa6134bA9FD5c701b3501A2e61E897a + ``` +

+- Bitcoin
+ ``` + 3CPmacGm34qYvR6XWLVEJmi2aNe3PZqUuq + ``` +

+- Ko-Fi
+ `https://ko-fi.com/markqvist` diff --git a/source/hardware_zh-cn.md b/source/hardware_zh-cn.md new file mode 100644 index 0000000..03343fd --- /dev/null +++ b/source/hardware_zh-cn.md @@ -0,0 +1,21 @@ +# 硬件支持(Supported Hardware) +Reticulum 可以被用在任意一个最低支持 500 比特/秒吞吐量、具有 500 字节 MTU(最大传输单元)的半/全双工信道上。数字无线电、调制解调器、LoRa无线电、串口线、AX.25 终端节点控制器(TNCs)、业余无线电台的数字模式、WiFi与以太网、自由空间光通信(free-space optical links)等等,都是 Reticulum 支持的物理设备。下面是一个简单列表: + +- 任意以太网设备 +- 几乎所有的基于 WiFi 的硬件 +- LoRa(使用 [RNode](https://unsigned.io/rnode/)) +- 封包无线电终端节点控制器(Packet Radio TNCs) (带或不带 AX.25 均可) +- 兼容KISS的硬件或软件调制解调器 +- 任何带串口的设备 +- TCP over IP +- UDP over IP +- 外部程序(通过 stdio 或是管道) +- 自制硬件(通过 stdio 或是管道) + +若想了解更多细节或是查看完整的支持列表,请参阅手册的[通信硬件(Communications Hardware)](manual/hardware.html)与[受支持的界面(Supported Interfaces)](manual/interfaces.html)部分。 + +Reticulum 也可以在现有的 IP 网络之上建立连接,所以没有什么阻止你在有线以太网,本地的无线网或是互联网上使用它。在这些地方,它都能工作。事实上,Reticulum 的一大优势就是允许你混合使用各种基础设施,把不同的传输介质连接成一个无需人为干预(self-configuring)、可自恢复(resilient)、加密的网状网络。 + +你完全可以搭建一个连着 LoRa 无线电、封包无线电终端节点控制器 和 WiFi 的树莓派。在这些硬件都设置好之后,Reticulum 会处理剩下的一切。所有在 WiFi 侧的设备便可以和无线电侧的设备自由通信了,反之亦然。 + +

下一个主题: 公共测试网络

diff --git a/source/index_zh-cn.md b/source/index_zh-cn.md new file mode 100644 index 0000000..2d24f6b --- /dev/null +++ b/source/index_zh-cn.md @@ -0,0 +1,28 @@ + +# Reticulum +Reticulum 是一个基于密码学的网络栈。人们可以用现有的硬件设备基于 Reticulum 搭建本地乃至广域的网络。它甚至可以在极高延迟与极低带宽的情况下运行。 + +目前的 Reticulum 能够让任何人运行自己的通讯网络。用独立、互联、自治的网络覆盖大片地域从未如此简单与低价。Reticulum 是为了人民、势不可挡的网络。 + +

+ +Reticulum 不是*一个*网络,而是用于搭建*成千上万*网络的工具——成千上万个没有停止按钮(kill-switches)、没有监控、没有审查与控制,但却协调运作、有机结合、为了人类的网络。 + +在用户看来,Reticulum 能够用来创造尊重社区与个人的自治型与独立性的应用。它提供了无法被外部操纵、篡改、审查的安全数字通信。 + +Reticulum 可以构建下至小规模,大至全星球的网络体系,而无需任何层级或是官僚化的结构来控制与管理,同时还能保证社区与个人在自己那部分网络的完全自主权。 + +## 值得注意的特质(Notable Characteristics) +虽然 Reticulum 解决的是任何一个网络栈都会试着去解决的问题(把数据通过数个中间节点可靠地从一方传输到另一方),但是解决问题的方式却与其他网络技术相当不同。 + +- Reticulum 不使用源地址(source addresses)。发出包不会包含源地址、发送位置、机器与操作者之类的信息。 +- Reticulum 中没有对于地址空间的中央控制。任何人都可以在需要的时候分配任意多的地址。 +- Reticulum 保证端到端连接性。新生的地址会在几秒到数分钟之内全局可及。 +- 地址是*[自主](https://zh.wikipedia.org/zh-cn/%E8%BA%AB%E4%BB%BD%E8%87%AA%E4%B8%BB%E6%9D%83)([self-sovereign](https://en.wikipedia.org/wiki/Self-sovereign_identity))*且*便携(portable)*的。它们可以在物理上被移动到网络的另一位置并仍旧保持可及。 +- 所有通信都默认是由[现代、健壮的加密](crypto.html)保护的。 +- 所有的加密密钥都是临时(ephemeral)的。通信默认自带前向保密(forward secrecy)。 +- 不可能在 Reticulum 网络中建立未加密连接。 +- 不可能在 Reticulum 网络中向任何目标发送未加密的数据包。 +- 收到未加密数据包的目标会将数据包视为无效并丢弃。 + +

下一个主题: 开始使用

diff --git a/source/start_zh-cn.md b/source/start_zh-cn.md new file mode 100644 index 0000000..ec48410 --- /dev/null +++ b/source/start_zh-cn.md @@ -0,0 +1,67 @@ +# 开始使用(Get Started) +开始使用 Reticulum 的第一步是看看自己想做什么。若想查看完整的细节与例子,请参阅[Reticulum 手册](manual/index.html)的[快速开始](manual/gettingstartedfast.html)部分。 + +## 实验性软件(Experimental Software) +*请注意!* Reticulum 仍旧处于 Beta 阶段。虽然它目前已经工作得相当良好且稳定,但是在系统整体的行为、隐私或安全性上仍旧可能存在致命的漏洞与缺陷。如果你已经了解可能的后果,并且感觉没问题的话,就开始使用吧! + +## 社区与支持(Community & Support) + +如果你遇到了问题,或者是有些东西不好使,以下是一些寻求帮助的好地方: + +- [Reticulum Github 讨论区](https://github.com/markqvist/Reticulum/discussions) +- [Reticulum Matrix 群组](element://room/!TRaVWNnQhAbvuiSnEK%3Amatrix.org?via=matrix.org)(`#reticulum:matrix.org`) +- [Reticulum Reddit 讨论版](https://reddit.com/r/reticulum) + +## 安装(Installation) +安装 Reticulum 及其相关工具最简单的方式是使用 pip: + +```bash +pip install rns +``` + +安装完成后,你便可以启动任何依靠 Reticulum 运行的程序,或者是使用 [rnsd 工具](manual/using.html#the-rnsd-utility) 将 Reticulum 作为服务运行。 + +如果 `pip` 在你的系统上不可用,请首先安装 `python3` 与 `python3-pip`。 + +首次启动时,Reticulum 会创建一个默认的配置文件。它会试着连接本地可及(locally reachable)的 Reticulum 节点(peer)。如果其中有些节点是”传输节点(Transport Instances)“,它们便可以让你连接上更大范围的网络。默认的配置文件提供了几个样例,以及用于创建复杂配置的参考。 + +如果想了解更多将通信扩展到各个媒介(如封包无线电(Packet Radio),LoRa、串口、基于IP的高速连接、互联网(通过UDP/TCP)等)的细节,请参阅 [Reticulum 手册](manual/index.html) 的[受支持的界面(Supported Interfaces)](manual/interfaces.html)部分。 + +## 附带工具(Included Utilities) +Reticulum 附带了用于管理网络、查看状态与信息等用途的一系列工具。欲知详情,请参阅 [Reticulum 手册](manual/index.html)的[附带工具](manual/using.html#included-utility-programs)部分。 + +- 用于将 Reticulum 作为服务运行的守护进程(Daemon) `rnsd` +- 用于查看界面(Interface)信息的工具 `rnstatus` +- 用于查看与更改路径表(path tables)的工具 `rnpath` +- 用于检查与目标连接性的诊断工具 `rnprobe` +- 一个简单的文件传输工具 `rncp` +- 一个远程命令执行工具 `rnx` + +以上提到的所有工具,包括 `rnx` 与 `rncp`,都运行的十分良好且可靠,就算是通过带宽非常低的连接(如 LoRa 与封包无线电)也一样。 + +## 使用 Reticulum 的程序(Programs Using Reticulum) +如果你想知道 Reticulum 能做什么,看一看下面的链接吧。 + +- 无需基建(off-grid)、加密且可自恢复(resilient)的网状(mesh)通讯平台 [Nomad Network](https://github.com/markqvist/NomadNet) +- 带有图形界面、注重易用性、可在Android、Linux与macOS使用的 [Sideband](https://github.com/markqvist/sideband) +- 一个分布式、抗延迟、抗干扰、基于 Reticulum 的消息传输协议 [LXMF](https://github.com/markqvist/lxmf) + +## 依赖相关(Dependencies) +`rns` 包默认条件下的安装需要以下依赖。几乎所有的系统与发行版都有直接可用的包。如果是通过 `pip` 安装,这些依赖会直接被下载安装。 + +- [PyCA/cryptography](https://github.com/pyca/cryptography) +- [netifaces](https://github.com/al45tair/netifaces) +- [pyserial](https://github.com/pyserial/pyserial) + +若使用的是较为少见的系统,或是在某种特殊情形下,上面的依赖不一定总是能安装或是编译成功。在这种情况下,你可以使用无需额外依赖的 `rnspure` 包。请注意`rns` 与 `rnspure`包的内容是*完全一致*的。唯一的区别是 `rnspure` 包没有显式包含需要安装的依赖。 + +不论安装 Reticulum 的手段为何,Reticulum 都会在*需要*且*可用*的情况下加载外部依赖。如果你想在一个不支持 [pyserial](https://github.com/pyserial/pyserial) 的系统上运行 Reticulum,使用 `rnspure` 包即可。但是 Reticulum 将无法使用基于串口的界面。所有其他模块仍旧会在需要时被 Reticulum 载入。 + +**注意!** 如果你在不支持 [PyCA/cryptography](https://github.com/pyca/cryptography) 的系统上使用 `rnspure` 包,请一定确保自己阅读并理解了[密码学原语(Cryptographic Primitives)](crypto.html)的相关内容。 + +## 性能(Performance) +Reticulum 的性能差距范围会*非常*大。目前 Reticulum 会优先保证低带宽媒介的可用性与性能。Reticulum 的目标是提供一个250 比特/秒到 1 吉比特/秒(普通硬件条件下)的性能区间。 + +目前可用的性能区间是 500 比特/秒到 20 兆比特/秒。更快的媒介将无法被充分利用。未来,Reticulum 有着升级性能的意向,但直到有线格式(wire format)和 API 完全稳定之前,性能升级都不会是优先事项。 + +

下一个主题: 硬件支持

From 207d7aa019aa25d6b67b528fbbeb762c0dc2cda1 Mon Sep 17 00:00:00 2001 From: ShouNichi <91327103+ShouNichi@users.noreply.github.com> Date: Mon, 25 Dec 2023 19:01:44 +0000 Subject: [PATCH 2/2] Add menu translation for Chinese. --- build.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/build.py b/build.py index 677eb83..de5ffdf 100644 --- a/build.py +++ b/build.py @@ -34,6 +34,7 @@ langs = [ {"name": "Português", "ext": "pt-br"}, {"name": "Türkçe", "ext": "tr"}, {"name": "日本語", "ext": "jp"}, + {"name": "简体中文", "ext": "zh-cn"}, ] menu_translations = { @@ -101,6 +102,17 @@ menu_translations = { "CREDITS": "Créditos", "SOURCE": "Código", "DONATE": "Ajude", + }, + "zh-cn": { + "RETICULUM": "Reticulum", + "START": "开始使用", + "HARDWARE": "硬件要求", + "TESTNET": "测试网络", + "MANUAL": "阅读手册", + "CRYPTO": "密码学", + "CREDITS": "致谢", + "SOURCE": "源代码", + "DONATE": "支持开发", } }