Skip to content

Latest commit

 

History

History
238 lines (165 loc) · 14 KB

README-zh-cn.md

File metadata and controls

238 lines (165 loc) · 14 KB

zeronet-conservancy

Packaging status

(注意:本文档的翻译版本通常滞后于最新内容)

in English | em português | по-русски | 日本語

zeronet-conservancy零网 ZeroNet 项目的一个分支/延续(其创建者已放弃维护),致力于维持现有的p2p网络,进一步发扬去中心化与自由的价值观,并逐步得到一个设计得更好的网络。

本分支的状况

在onion-v3切换危机期间,我们需要一个能够支持onion-v3,且不仅仅依赖于个别开发者的可信的分支。本分支从实现这一任务开始,对 ZeroNet/py3 分支作了最少的改动,从而让任何人都可以轻松地审计这些改动。

目前,0net正陷入前所未有的危机,而本分支似乎是唯一存活下来的。我们的开发进展缓慢,但其中的部分工作正在幕后进行。如果你完全是个0net的新手,且没有人指导你,而且你也不是开发者的话,我们建议请等待v0.8版本发布。

为何选择0net?

  • 我们相信开放、自由和不受审查的网络与通讯。
  • 不受单点故障影响:只要至少有一个节点在提供服务,站点就能保持在线。
  • 无需托管费用:站点由访问者们来共同托管。
  • 无法被关停:因为节点无处不在。
  • 快速并且支持离线访问:即使没有互联网,你也可以访问站点。

功能

  • 实时更新站点
  • 一键克隆已有的站点
  • 使用私钥/公钥的免密码认证
  • 内置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:

如何加入

从发行版仓库安装

从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(在Termux中可以通过以下命令安装包pkg install <package-names>
  • 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 '<nixpkgs>' -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 </path/to/0n/data/directory>:/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

在Windows操作系统下构建

(这些说明正在测试当中,请帮助我们测试并改进它!)

构建.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站点?

  • 点击仪表盘菜单中的 > "Create new, empty site"
  • 你将被重定向到一个只有你可以修改的全新站点!
  • 你可以在 data/[你的站点地址] 目录中找到并修改你的站点内容。
  • 修改完成后,打开你的站点,向左拖动页面右上角的“0”按钮,然后点击底部的sign and publish按钮。

下一步请看:ZeroNet开发者文档

帮助此项目持续发展

成为维护者

我们需要更多的维护者!今天就加入吧!你不需要懂编程,这里还有很多其他工作要做。

为你的平台创建构建包

我们需要为各个主流操作系统平台提供独立构建的版本,并存入各种FLOSS仓库。如果你正在使用的Linux发行版还没有得到我们提供的相应构建包,为何不自己创建一个,或者(如果你不知道怎么做)去询问你的系统维护者呢?

修复bug & 添加功能

我们决心继续前进,打造一个完美的p2p网络,因此我们需要更多的帮助来实现它。

创建你的站点/带来你的内容

我们知道这份文档有所欠缺,但我们尽力支持任何希望迁移站点和内容的用户。请不要犹豫,随时联系我们。

使用并传播

告诉大家你为何选择使用0net及我们这个特别的分支!人们需要知道他们的替代方案。

资金支持我们

此分支由@caryoscelus创建并维护。你可以在 https://caryoscelus.github.io/donate/ 上查看捐赠方式(如果在github上阅读,也可查看侧边栏了解更多途径)。随着我们团队的不断壮大,我们也会在更友善的众筹平台上创建团队账户。

如果你想确保你的捐赠会被视作对本项目的支持,下面是一个专门的比特币地址: 1Kjuw3reZvxRVNs27Gen7jPJYCn6LY7Fg6。如需更匿名和私密的方式,以下是Monero钱包地址: 4AiYUcqVRH4C2CVr9zbBdkhRnJnHiJoypHEsq4N7mQziGUoosPCpPeg8SPr87nvwypaRzDgMHEbWWDekKtq8hm9LBmgcMzC

如果你希望通过其他方式捐赠,请随时联系维护者或创建一个issue。

我们在抗议的情况下使用GitHub

该项目当前托管在GitHub。但这并不理想;GitHub是一个专有的、有其商业秘密的系统,不是自由及开放源代码软件(FLOSS)。我们对使用像GitHub这样的专有系统来开发我们的FLOSS项目深感担忧。我们有一个开放的议题页面来追踪从长远来看迁移出GitHub的进展。我们强烈建议你阅读放弃 GitHub运动以及软件自由保护协会对其的阐述,以便了解为什么GitHub不适合托管FOSS项目。

如果你是已经停止使用GitHub的贡献者,欢迎在notabug上查看我们的镜像,并在那里进行开发,或者通过联系方式直接向项目维护者发送git补丁。

无论过去还是现在,未经许可地通过GitHub Copilot使用本项目的代码的行为必须立即停止。我们不允许GitHub将本项目代码用于Copilot。

GiveUpGitHub运动的标志