diff --git a/README-zh-cn.md b/README-zh-cn.md index f651ecee..eee1e863 100644 --- a/README-zh-cn.md +++ b/README-zh-cn.md @@ -1,81 +1,238 @@ # zeronet-conservancy -**警告**:这个翻译已经过时了。请阅读英文版。对此翻译的任何贡献都将受到高度赞赏 - [![Packaging status](https://repology.org/badge/vertical-allrepos/zeronet-conservancy.svg)](https://repology.org/project/zeronet-conservancy/versions) -[in English](README.md) | [em português](README-ptbr.md) | [по-русски](README-ru.md) | [日本語](README-ja.md) +**(注意:本文档的翻译版本通常滞后于最新内容)** -## 为什么? +[по-русски](README-ru.md) | [em português](README-ptbr.md) | [简体中文](README-zh-cn.md) | [日本語](README-ja.md) -* 我们相信开放,自由,无审查的网络和通讯 -* 不会受单点故障影响:只要有在线的节点,站点就会保持在线 -* 无托管费用:站点由访问者托管 -* 无法关闭:因为节点无处不在 -* 快速并可离线运行:即使没有互联网连接也可以使用 +`zeronet-conservancy` 是 [零网 ZeroNet](https://github.com/HelloZeroNet/ZeroNet) 项目的一个分支/延续(其创建者已放弃维护),致力于维持现有的p2p网络,进一步发扬去中心化与自由的价值观,并逐步得到一个设计得更好的网络。 +## 本分支的状况 + +在onion-v3切换危机期间,我们需要一个能够支持onion-v3,且不仅仅依赖于个别开发者的可信的分支。本分支从实现这一任务开始,对 [ZeroNet/py3](https://github.com/HelloZeroNet/ZeroNet/tree/py3) 分支作了最少的改动,从而让任何人都可以轻松地审计这些改动。 + +目前,0net正陷入前所未有的危机,而本分支似乎是唯一存活下来的。我们的开发进展缓慢,但其中的部分工作正在幕后进行。如果你完全是个0net的新手,且没有人指导你,而且你也不是开发者的话,我们建议请等待v0.8版本发布。 + +## 为何选择0net? + +* 我们相信开放、自由和不受审查的网络与通讯。 +* 不受单点故障影响:只要至少有一个节点在提供服务,站点就能保持在线。 +* 无需托管费用:站点由访问者们来共同托管。 +* 无法被关停:因为节点无处不在。 +* 快速并且支持离线访问:即使没有互联网,你也可以访问站点。 ## 功能 - * 实时站点更新 - * 安装方便:只需解压并运行 - * 一键克隆存在的站点 - * 无需密码、基于 [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) - 的认证:您的账户被与比特币钱包相同的加密方法保护 - * 内建 SQL 服务器和 P2P 数据同步:让开发更简单并提升加载速度 - * 匿名性:完整的 Tor 网络支持,支持通过 .onion 隐藏服务相互连接而不是通过 IPv4 地址连接 - * TLS 加密连接 - * 自动打开 uPnP 端口 - * 多用户(openproxy)支持的插件 - * 适用于任何浏览器 / 操作系统 +* 实时更新站点 +* 一键克隆已有的站点 +* 使用私钥/公钥的免密码认证 +* 内置SQL服务器,支持P2P数据同步,便于动态站点开发 +* 匿名性:支持采用.onion匿踪服务的Tor网络(支持onion-v3) +* TLS加密连接(会经过明网) +* 自动开启uPnP端口(可选) +* 支持多用户插件(openproxy) +* 兼容任何现代浏览器/操作系统 +* 离线站点可通过其他方式进行同步(或当连接恢复时同步) +## 它是如何工作的? -## 原理 +* 启动`zeronet.py`后,你可以通过以下方式访问zeronet站点: `http://127.0.0.1:43110/{零网站点地址}` (例如 `http://127.0.0.1:43110/1MCoA8rQHhwu4LY2t2aabqcGSRqrL8uf2X/`) +* 当你访问一个新站点时,它会通过BitTorrent网络来寻找可用节点,从这些节点下载站点所需的文件(如html, css, js...)。 +* 每个你访问过的站点也由你提供托管服务。 +* 每个站点包含一个`content.json`文件,其中包含着由本站所有文件生成的sha512哈希值以及由站点私钥生成的签名。 +* 如果站点拥有者(即持有站点私钥的人)对站点内容进行了修改,则他/她会重新签署`content.json`文件并发布至其他节点。随后,其他节点会验证`content.json`的完整性(通过签名),并下载被修改的文件,随后将更新过的内容继续发布给其他节点。 -* 在运行 `zeronet.py` 后,您将可以通过 - `http://127.0.0.1:43110/{zeronet_address}`(例如: - `http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D`)访问 zeronet 中的站点 -* 在您浏览 zeronet 站点时,客户端会尝试通过 BitTorrent 网络来寻找可用的节点,从而下载需要的文件(html,css,js...) -* 您将会储存每一个浏览过的站点 -* 每个站点都包含一个名为 `content.json` 的文件,它储存了其他所有文件的 sha512 散列值以及一个通过站点私钥生成的签名 -* 如果站点的所有者(拥有站点地址的私钥)修改了站点,并且他 / 她签名了新的 `content.json` 然后推送至其他节点, - 那么这些节点将会在使用签名验证 `content.json` 的真实性后,下载修改后的文件并将新内容推送至另外的节点 - -#### [关于 ZeroNet 加密,站点更新,多用户站点的幻灯片 »](https://docs.google.com/presentation/d/1_2qK1IuOKJ51pgBvllZ9Yu7Au2l551t3XBgyTSvilew/pub?start=false&loop=false&delayms=3000) -#### [常见问题 »](https://zeronet.io/docs/faq/) - -#### [ZeroNet 开发者文档 »](https://zeronet.io/docs/site_development/getting_started/) - - -## 屏幕截图 - -#### [ZeroNet 文档中的更多屏幕截图 »](https://zeronet.io/docs/using_zeronet/sample_sites/) +以下链接来自原版ZeroNet: +- [关于ZeroNet加密、站点更新、多用户站点的演示文稿 »](https://docs.google.com/presentation/d/1_2qK1IuOKJ51pgBvllZ9Yu7Au2l551t3XBgyTSvilew/pub?start=false&loop=false&delayms=3000) +- [常见问题解答 »](https://zeronet.io/docs/faq/) +- [ZeroNet开发者文档 »](https://zeronet.io/docs/site_development/getting_started/)(已过时) ## 如何加入 +### 从发行版仓库安装 + +- NixOS: [搜索zeronet-conservancy软件包](https://search.nixos.org/packages?from=0&size=50&sort=relevance&type=packages&query=zeronet-conservancy)(并参见下方) +- ArchLinux: [最新发行版](https://aur.archlinux.org/packages/zeronet-conservancy),[最新git版](https://aur.archlinux.org/packages/zeronet-conservancy-git) + +### 从Nix包管理器安装(Linux 或 MacOS) + +- 安装并配置nix包管理器(如果需要的话) +- `nix-env -iA nixpkgs.zeronet-conservancy` + +如果您使用的是NixOS系统,将`zeronet-conservancy`添加到系统配置中 + +(感谢 @fgaz 制作并维护此软件包) + +### 从源代码安装 + +#### 系统依赖项 + +##### 通用的类Unix系统(包括MacOS X) + +安装autoconf和其他基本开发工具,python3和pip,然后看“构建python依赖” + +##### 基于Apt的系统(debian、ubuntu等) + - `sudo apt update` + - `sudo apt install git pkg-config libffi-dev python3-pip python3-venv python3-dev build-essential libtool` + +##### 基于Red Hat和Fedora的系统 + - `yum install epel-release -y 2>/dev/null` + - `yum install git python3 python3-wheel` + +##### 基于Fedora系统的dandified包管理器 + - `sudo dnf install git python3-pip python3-wheel -y` + +##### openSUSE + - `sudo zypper install python3-pip python3-setuptools python3-wheel` + +##### 基于Arch和Manjaro的系统 + - `sudo pacman -S git python-pip -v --no-confirm` + +##### Android/Termux + - 安装 [Termux](https://termux.com/)(在Termux中可以通过以下命令安装包`pkg install `) + - `pkg update` + - `pkg install python automake git binutils libtool` + - (在旧Android系统上可能还需安装这个)`pkg install openssl-tool libcrypt clang` + - (若安装了上述包仍在启动时遇到问题,请告诉我们) + - (可选)`pkg install tor` + - (可选)通过以下命令运行Tor:`tor --ControlPort 9051 --CookieAuthentication 1`(你可以通过右滑来打开新会话) + +#### 构建python依赖、虚拟环境、运行 + - 克隆此repo(注意:在Android/Termux上应将其克隆到Termux的“home”文件夹中,这是因为虚拟环境无法位于`storage/`) + - `python3 -m venv venv`(创建python虚拟环境,命令末尾的`venv`只是个名称,若使用其他名称,需在后续命令中替换) + - `source venv/bin/activate`(激活环境) + - `python3 -m pip install -r requirements.txt`(安装依赖) + - `python3 zeronet.py`(**运行zeronet-conservancy!**) + - 在浏览器中打开登录页面:http://127.0.0.1:43110/ + - 需要在新的终端再次启动的话,进入repo目录并执行: + - `source venv/bin/activate` + - `python3 zeronet.py` + +#### (可选用)在NixOS上 + +- 克隆此repo +- 进入已经安装过依赖的shell:`nix-shell '' -A zeronet-conservancy` +- `./zeronet.py` + +#### (可选用)构建Docker镜像 +- 构建0net镜像:`docker build -t 0net-conservancy:latest . -f Dockerfile` +- 或构建集成tor的0net镜像:`docker build -t 0net-conservancy:latest . -f Dockerfile.integrated_tor` +- 运行它:`docker run --rm -it -v :/app/data -p 43110:43110 -p 26552:26552 0net-conservancy:latest` +- /path/to/0n/data/directory - 该目录保存所有数据,包括你的私钥证书。如果在生产模式下运行,请千万不要删除这个文件夹! +- 也可以通过docker-compose运行:`docker compose up -d 0net-conservancy` 来启动两个容器——0net和tor各自运行。 +- 或者在同一个容器中运行0net和tor:`docker compose up -d 0net-tor` 。 +(请检查上述说明是否仍然可行) + +#### 可选用单行命令(提供者@ssdifnskdjfnsdjk)(全局安装Python依赖) + +克隆Github仓库并安装所需的Python模块。首先编辑命令开头的zndir,将其改为你想要存储`zeronet-conservancy`的路径: + +`zndir="/home/user/myapps/zeronet" ; if [[ ! -d "$zndir" ]]; then git clone --recursive "https://github.com/zeronet-conservancy/zeronet-conservancy.git" "$zndir" && cd "$zndir"||exit; else cd "$zndir";git pull origin master; fi; cd "$zndir" && pip install -r requirements.txt|grep -v "already satisfied"; echo "Try to run: python3 $(pwd)/zeronet.py"` + +(此命令也可用于保持`zeronet-conservancy`是最新版本) + +#### 可选用脚本 + - 安装通用依赖和克隆repo(如上所述)后, + 运行`start-venv.sh`,它将为你创建虚拟环境并安装Python依赖 + - 以后会添加更多便捷脚本 + +### (非官方的)Windows系统构建版本 + +下载并解压以下.zip压缩包 +[zeronet-conservancy-0.7.10-unofficial-win64.zip](https://github.com/zeronet-conservancy/zeronet-conservancy/releases/download/v0.7.10/zeronet-conservancy-0.7.10-unofficial-win64.zip) + +### 在Windows操作系统下构建 + +(这些说明正在测试当中,请帮助我们测试并改进它!) + +- 安装Python: https://www.python.org/downloads/ +- 安装在Windows下适用于Python的编译器,这对我这种非Windows用户来说是最难的一步(详见 https://wiki.python.org/moin/WindowsCompilers ,之后我会提供更多参考) +- [可选,如需获取最新开发版本]安装Git:https://git-scm.com/downloads +- [可选,如需为更好的连接性和匿名性来使用tor]安装tor浏览器:https://www.torproject.org/download/ +- 打开git bash控制台 +- 在命令行输入或粘贴`git clone https://github.com/zeronet-conservancy/zeronet-conservancy.git` +- 等待,直至git下载好最新的开发版本,然后继续在控制台操作 +- `cd zeronet-conservancy` +- `python -m venv venv`(创建Python虚拟环境) +- `venv\Scripts\activate`(激活环境) +- `pip install -r requirements.txt`(安装Python依赖)(有些使用者反馈此命令未能成功安装所有依赖,需手动逐个安装依赖) +- (注意:如果上一步失败了,可能说明C/C++编译器未能成功安装) +- [可选,为更好的连接性和匿名性]启动Tor浏览器 +- (注意:Windows可能会弹窗,提示出于“安全原因”阻止了网络访问—请选择允许访问) +- `python zeronet.py --tor_proxy 127.0.0.1:9150 --tor_controller 127.0.0.1:9151`(启动zeronet-conservancy!) +- [需要完全匿名,要用如下方式启动]`python zeronet.py --tor_proxy 127.0.0.1:9150 --tor_controller 127.0.0.1:9151 --tor always` +- 在浏览器中访问http://127.0.0.1:43110 + +构建.exe文件 + +- 按照上述步骤操作完成后,再执行 +- `pip install pyinstaller` +- `pyinstaller -p src -p plugins --hidden-import merkletools --hidden-import lib.bencode_open --hidden-import Crypt.Crypt --hidden-import Db.DbQuery --hidden-import lib.subtl --hidden-import lib.subtl.subtl --hidden-import sockshandler --add-data "src;src" --add-data "plugins;plugins" --clean zeronet.py` +- dist/zeronet 路径下会包含可用的 zeronet.exe! + +## 目前的局限性 + +* 文件传输未压缩 +* 不支持私密站点 +* 不支持DHT +* 不支持I2P +* 不支持中心化的模块,比如zeroid(我们正在改进!) +* 尚无可靠的垃圾信息保护措施(我们也在改进) +* 无法直接在浏览器中使用(中长期会优先解决此问题) +* 不支持数据透明 +* 尚无可重现构建 +* 不支持磁盘加密存储 +* 尚无可重现构建(因此在部分GNU/Linux发行版之外无法构建) -## 现有限制 +## 我该如何创建一个ZeroNet站点? -* ~~没有类似于 torrent 的文件拆分来支持大文件~~ (已添加大文件支持) -* ~~没有比 BitTorrent 更好的匿名性~~ (已添加内置的完整 Tor 支持) -* 传输文件时没有压缩~~和加密~~ (已添加 TLS 支持) -* 不支持私有站点 + * 点击[仪表盘](http://127.0.0.1:43110/191CazMVNaAcT9Y1zhkxd9ixMBPs59g2um/)菜单中的 **⋮** > **"Create new, empty site"** 。 + * 你将被**重定向**到一个只有你可以修改的全新站点! + * 你可以在 **data/[你的站点地址]** 目录中找到并修改你的站点内容。 + * 修改完成后,打开你的站点,向左拖动页面右上角的“0”按钮,然后点击底部的**sign and publish**按钮。 +下一步请看:[ZeroNet开发者文档](https://zeronet.io/docs/site_development/getting_started/) -## 如何创建一个 ZeroNet 站点? +## 帮助此项目持续发展 - * 点击 [ZeroHello](http://127.0.0.1:43110/126NXcevn1AUehWFZLTBw7FrX1crEizQdr) 站点的 **⋮** > **「新建空站点」** 菜单项 - * 您将被**重定向**到一个全新的站点,该站点只能由您修改 - * 您可以在 **data/[您的站点地址]** 目录中找到并修改网站的内容 - * 修改后打开您的网站,将右上角的「0」按钮拖到左侧,然后点击底部的**签名**并**发布**按钮 +### 成为维护者 -接下来的步骤:[ZeroNet 开发者文档](https://zeronet.io/docs/site_development/getting_started/) +我们需要更多的维护者!今天就加入吧!你不需要懂编程,这里还有很多其他工作要做。 -## 帮助这个项目 +### 为你的平台创建构建包 -- Bitcoin: 1Kjuw3reZvxRVNs27Gen7jPJYCn6LY7Fg6 +我们需要为各个主流操作系统平台提供独立构建的版本,并存入各种FLOSS仓库。如果你正在使用的Linux发行版还没有得到我们提供的相应构建包,为何不自己创建一个,或者(如果你不知道怎么做)去询问你的系统维护者呢? -#### 感谢您! +### 修复bug & 添加功能 -* 更多信息,帮助,变更记录和 zeronet 站点:https://www.reddit.com/r/zeronet/ +我们决心继续前进,打造一个完美的p2p网络,因此我们需要更多的帮助来实现它。 + +### 创建你的站点/带来你的内容 + +我们知道这份文档有所欠缺,但我们尽力支持任何希望迁移站点和内容的用户。请不要犹豫,随时联系我们。 + +### 使用并传播 + +告诉大家你为何选择使用0net及我们这个特别的分支!人们需要知道他们的替代方案。 + +### 资金支持我们 + +此分支由@caryoscelus创建并维护。你可以在 https://caryoscelus.github.io/donate/ 上查看捐赠方式(如果在github上阅读,也可查看侧边栏了解更多途径)。随着我们团队的不断壮大,我们也会在更友善的众筹平台上创建团队账户。 + +如果你想确保你的捐赠会被视作对本项目的支持,下面是一个专门的比特币地址: +1Kjuw3reZvxRVNs27Gen7jPJYCn6LY7Fg6。如需更匿名和私密的方式,以下是Monero钱包地址: +4AiYUcqVRH4C2CVr9zbBdkhRnJnHiJoypHEsq4N7mQziGUoosPCpPeg8SPr87nvwypaRzDgMHEbWWDekKtq8hm9LBmgcMzC + +如果你希望通过其他方式捐赠,请随时联系维护者或创建一个issue。 + +# 我们在抗议的情况下使用GitHub + +该项目当前托管在GitHub。但这并不理想;GitHub是一个专有的、有其商业秘密的系统,不是自由及开放源代码软件(FLOSS)。我们对使用像GitHub这样的专有系统来开发我们的FLOSS项目深感担忧。我们有一个[开放的议题页面](https://github.com/zeronet-conservancy/zeronet-conservancy/issues/89)来追踪从长远来看迁移出GitHub的进展。我们强烈建议你阅读[放弃 GitHub](https://GiveUpGitHub.org)运动以及[软件自由保护协会](https://sfconservancy.org)对其的阐述,以便了解为什么GitHub不适合托管FOSS项目。 + +如果你是已经停止使用GitHub的贡献者,欢迎[在notabug上查看我们的镜像](https://notabug.org/caryoscelus/zeronet-conservancy),并在那里进行开发,或者通过[联系方式](https://caryoscelus.github.io/contacts/)直接向项目维护者发送git补丁。 + +无论过去还是现在,未经许可地通过GitHub Copilot使用本项目的代码的行为必须立即停止。我们不允许GitHub将本项目代码用于Copilot。 + +![GiveUpGitHub运动的标志](https://sfconservancy.org/img/GiveUpGitHub.png)