Radicle —— GitHub 的去中心化替代品
注意:当我们说 Git 时,我们并不是指 GitHub。GitHub 是一个中心化的平台,而 Git 是一个协议。你可以使用 Git 而不使用 GitHub,而是将你的代码存储在 GitLab 或 BitBucket 等平台。
现在的代码协作大多是通过 GitHub 进行的。也有像 GitLab 和 BitBucket 这样的替代品,但 GitHub 是迄今为止使用最多的 Git 平台。
然而,使用 GitHub 并不是免费的午餐。GitHub 是由微软拥有的,而集中化也带来了权衡的问题。既然你在 GitHub 的平台上托管你的代码和内容,这就意味着如果他们愿意,可以对你进行审查。让我们看一个例子。
youtube-dl
youtube-dl 是一个免费、开源的下载管理器,用于下载 YouTube 和其他 1000 多个网站的视频和音频。它是 GitHub 上星级最高的项目之一,拥有超过 10 万颗星。
2020 年 10 月,根据美国唱片业协会(RIAA)的要求,GitHub 关闭了 youtube-dl 仓库,以及该项目其他各种公共分叉。
这引发了很多争议,并强调了开源软件和代码如何因其被托管在一个集中的平台上而被取缔。尽管 GitHub 在 2020 年 11 月由于公众的反感而公开恢复了该仓库,但这仍然表明他们对你的代码拥有多大的权力。
被禁止的账户
由于 GitHub 是一家美国公司,他们必须按照美国政府的规定行事。作为一个集中式平台,意味着 GitHub 可以禁止他们想要的人进入平台,阻止他们通过全球最大的开源平台参与开源。
由于美国政府的压力,GitHub 目前已经禁止了所有伊朗、叙利亚和克里米亚的账户。这与建立自由和开放社区的价值观和使命严重不符。
本着去中心化和消除中间商控制的精神,Radicle 作为一个去中心化的代码协作工具出现了。它提供了与 Git 类似的功能,而没有中心化平台的风险。
为什么是 Radicle?
开放源码管理世界
你可能已经听说过这个。免费和公开的代码使构建软件变得非常容易和便宜 ,行业的创新也因此而成倍增长。
像 GitHub 这样的代码协作平台无疑发挥了巨大的作用,并永远改变了开发者编写和维护软件的方式。然而,它们是集中式的,你在这些平台上所做的一切都被锁定,只存在于这些平台上。
作为一个替代方案,为了实现真正的目标,Radicle 是建立在以下原则之上的。
- Radicle 必须把用户自由放在首位。这意味着用户有运行、复制、分发、研究、改变和改进软件的自由。
- Radicle 必须是可访问和不可审查的。
- Radicle 必须是用户友好的。
- Radicle 必须是离线的,并且不需要互联网连接就可以运行。
- Radicle 必须在安全方面不打折扣,用加密签名保证系统的每一个方面,以确保分散系统的安全。
Radicle 链接
Radicle 网络是建立在一个名为 Radicle Link 的点对点协议上。Radicle Link 扩展了 Git 协议,并增加了八卦消息,以分散的方式找到对相同数据感兴趣的同伴。
闲话协议是一个分散的通信协议,所有节点随机与其他节点交谈,请求信息或分享他们想要的信息,通过转发知识给其他节点,"闲话 "最终会让那些想要你的东西,或拥有你想要的东西的节点。
与 IPFS 分享数据的方式非常相似,Radicle 网络中的参与者通过保留一个本地拷贝并分享他们感兴趣的数据来分享和传播。由于它是 Git 协议的扩展,它通过点对点网络保持了 Git 的数据传输协议的效率。
在 Radicle 中,存储库被称为项目,由对等人复制和共享。如果你曾经使用过 torrent,"peers "这个词可能听起来很熟悉。从本质上 讲,他们是寻找他们感兴趣的数据的人或组织,或者将他们已经拥有的数据公开给其他同伴使用。
如果你想更深入地了解 Radicle Link 到底是如何工作的,你可以在这里找到一个更深入的规范文档
Radicle vs GitHub
虽然它们是为了解决同样的问题而建立的,尽管方法不同,但使用 Radicle 的方式与使用 GitHub 有些不同。
- Radicle 是完全开源的,完全建立在开放的协议上,没有任何集中的方面。
- Radicle 依赖于点对点的通信,而不是像 GitHub 那样的客户端-服务器架构
- 由于它依赖于点对点的通信,而期望一个对等体下载每一个存在的存储库/项目是不合理的,所以 Radicle 默认不是全球性的。相反,对等人可以跟踪其他对等人和项目,这决定了他们可以看到哪些内容并与之互动。
- Radicle 是一个社区拥有的网络,而不是一个公司。网络的治理是通过一个 DAO,由居住在以太坊上的$RAD 代币的所有权进行的。
使用 Radicle
与 Git 不同,Radicle 项目没有一个单一的规范视图(即一个主/主分支)。相反,Radicle 项目有多个上游,即代码的不同分叉,由代码维护者和贡献者维护。
为了获取和接收贡献者的修改,你必须将他们作为远程添加到你的项目中。这将自动跟踪他们,你可以订阅他们在其上游 的新代码更新。
要真正开始使用 Radicle,主要方法是下载 Radicle Upstream 桌面客户端。它是一个开源的客户端,作为你进入 Radicle 网络的网关。
不幸的是,Radicle Upstream 桌面客户端目前并不适用 Windows。它只适用于 Linux 和 macOS。
创建项目
在 Radicle 上创建项目的基本工作流程与 GitHub 的工作方式很相似。
- 创建一个新的资源库/导入一个现有的资源库 1.1 你的项目将被分配一个唯一的 Radicle ID。
- 与其他人分享你的 Radicle ID,让他们查看你的仓库
- 进行修改,提交代码,并使用典型的 git 推送命令推送修改(但你现在是- 推送到 Radicle,而不是 GitHub)
查看开源项目
要查看托管在 Radicle 上的开源项目,你需要访问项目的 Radicle ID。
使用桌面客户端,你可以搜索 Radicle ID。这将在 Gossip 协议上发出一个信息请求消息,一旦你找到一个可以与你分享该信息的同行,你就可以查看该项目。
贡献于开源项目
要为一个开源项目做贡献,你可以分叉一个项目,并像通常那样对其进行修改。
然后,如果原版本库把你的分叉项目添加为版本库的远程,就可以跟踪你的修改。
这将使他们自动跟踪你的修改,并产生补丁,这些补丁可以从你的分叉中自动合并到原始版本库中。
Radicle ❤️ Ethereum
Radicle 有一个与 Ethereum 的可选集成。用户可以选择集成,这将允许他们通过使用 ENS 为你的个人资料和组织拥有独特的全球名称,通过让成员链接到以太坊钱包在 Radicle 上拥有分散的组织,并能够为你的开源项目接受加密货币的贡献。
此外,Radicle 还有以太坊上的$RAD 代币,这是 Radicle DAO 的治理代币。这个代币在控制 Radicle 网络的 DAO 中提供投票权。
即将出版
希望这篇文章能让大家对 Radicle 有一个概念性的了解,它与 GitHub 有什么不同,为什么它很重要,以及它是如何工作的。
在接下来的关卡中,我们将对 Radicle 做一个实际的介绍,并经历在 Radicle 上实际建立存储库的过程,并与他人分享这些存储库。
注意:由于我们在等待 Radicle 团队推出一个跨平台的 CLI 客户端,该客户端也可以在 Windows 上使用,所以 Radicle 的实用级别被稍微推迟了。如果你是 Linux 或 macOS 用户,我们强烈建议你下载 Radicle Upstream 客户端并尝试在 Radicle 上创建一个项目。