觅新|Radicle:去中心化的Github
《觅新》是金色财经推出的一档区块链项目观察类项目,覆盖行业各领域项目发展情况,具体设计到项目概况、技术进展、募资情况等,力图为您呈现热门新潮的项目合辑。
风险提示:“金色财经·觅新”系列文章,根据项目公开消息撰稿,旨在各位读者提供最新项目资讯,不作为投资建议。
什么是Radicle?
Radicle是基于开放协议建立的分散式代码协作网络。它使开发人员无需依赖受信任的中介程序即可在代码上进行协作。Radicle旨在提供与中心化代码协作平台类似的功能,同时保留Git的点对点本质,并基于使分布式版本控制如此强大的优势。
网络由建立在Git上的Radicle Link提供动力。Radicle Link通过称为gossip的过程分发数据,从而通过点对点发现扩展了Git。也就是说,网络中的参与者通过在本地保留冗余副本并与选定的对等方共享本地数据来共享和传播他们“感兴趣”的数据。通过利用Git的智能传输协议,Radiicle Link在数据复制方面保持了Git的效率,同时通过对等网络层提供了全球分散式存储库存储。
由于网络上的所有数据都是由网络上的对等方本地存储的,因此开发人员可以在不依赖中介(例如托管服务器)的情况下在Git存储库上共享和协作。
Radicle与GitHub有何不同?
在Radicle上进行协作与在GitHub和GitLab等中心化代码协作平台上进行协作略有不同。
1.Radicle堆栈从上到下都是开源的。没有“封闭的”组件。Radicle堆栈的每个组件都是可审核,可修改和可扩展的。
2.Radicle完全基于开放协议构建。没有“特殊服务器”,特权用户或公司来控制您的协作。
Radicle基于对等体系结构而不是客户端-服务器模型。
3.默认情况下,Radicle不是全球的。相反,您关注的同行和项目的社交图谱确定了您看到,与之交互和复制的内容。
4.Radicle专为集市式开发而设计。这意味着在项目中,没有单个主分支供贡献者合并。取而代之的是,对等方维护自己的项目视图,其他对等方可以通过补丁来获取和合并这些项目。
5.Radicle在以太坊上的分散组织取代了集中锻造的Org功能及其分层管理模型。
6.Radicle是一个自我维持且由社区拥有的网络并非公司。它的治理由驻留在以太坊上的名为RAD的token维护。
如何使用Radicle?
使用Radicle的最简单方法是使用Upstream,它是Radicle项目的创始团队开发的桌面客户端。借助Upstream,您可以在Radicle网络上创建身份,托管代码并与他人协作。
如何在Radicle上进行协作?
Radicle专为集市式开发而设计。这意味着任何项目都没有单一的规范视图(例如母版),而是由维护者和贡献者维护的多个上游,他们彼此交换补丁。
在同一个项目中,两个人将具有主观(通常是不同的观点),但是您对项目的观点将成为该项目的所有其他观点的总和。从概念上讲,该项目将分散到其维护者和贡献者的许多视图中,而不仅限于控制一小部分具有读/写访问权限的人员。
实际上,这意味着要从贡献者那里获取和接收更改,您必须将其他人添加为您的项目的远程对象。将某人添加为远程对象会自动跟踪他们,从而为您提供了一种方式来连续订阅他们对您的项目所做的更新(即新提交)。
origin当推送到像GitHub这样的集中托管平台时,您可能已经习惯了为项目设置遥控器的概念。这使您可以从托管项目的服务器中获取并推送更改。在Radicle中,其他对等端的远程指向存储您所有Radicle数据的计算机上的Git monorepo。这些遥控器使您可以从对等端获取更改,并将更改发布到Radicle网络。这意味着获取和推送到远程是本地的首要操作。要了解有关Radicle如何在Git上构建的更多信息,请参见我们的工作原理部分。
引入社会编码功能(例如错误报告,补丁和代码审查)将使人们更容易知道这些变更是否存在,从而改善在网络上人们之间查找和获取变更的过程。
Radicle背景概述
在过去的十年中,开源已经成为软件开发的标准。自由和公开共享代码使构建软件的成本大大降低且更加容易-结果,技术创新日渐盛行。
诸如GitHub和GitLab之类的代码托管和协作平台通过将其引入主流受众,为开源的增长做出了巨大贡献。他们定义了标准的词汇和行为,使git可以为更多的受众所使用,增强了社交编码的能力,并创建了全球开发人员社区。不可否认的是,他们已经完全改变了人们编写代码的方式。
作为代码协作的现状,这些平台还托管着最大的开源开发存储库,这些存储库不仅由代码组成,还包括问题,请求,评论和注释。甚至社交关系(如明星一样)也仅存在于这些平台中。
但是,这些平台归公司所有。他们受公司法的约束,并有权定义其服务条款。他们可以实施用户禁令,例如针对美国政府的压力,目前针对伊朗,叙利亚和克里米亚GitHub帐户实施的禁令。他们很容易受到审查制度以及公司和国家的限制,而这往往与自由和开源社区的目标不符。
在几乎所有软件都依赖开源代码的世界中,保持自由和开源生态系统的弹性和健康状况比以往任何时候都更为重要。这就是为什么我们认为依靠关键托管的开源基础架构以及中心化托管平台和公司是不可持续的。对此类集中式服务的依赖与自由和开源生态系统的价值相矛盾。
Radicle被认为是替代方案。它的目标是消除中介,并创建一个健壮,实用且安全的对等生态系统。必须在叙述上有意转移,以优先采用遵循自由和开源软件原理的代码协作分散式替代方案。
探索替代品
GitHub的替代方案包括SourceForge和GitLab等平台,以及更成熟的协作方法(如邮件列表)。诸如Gitea或Gogs之类的平台为代码协作提供了自托管的开源解决方案,平台风险低,但使开发人员处于孤立的环境中,无法访问开发人员的全球网络。提出的一种替代方案是联盟。诸如ForgeFed和联邦GitLab之类的提案是朝着正确方向迈出的一步,但其实施尚不完善或缺乏。此外,联合会依赖于可以并且经常被政府扣押的域名。
其他成熟的开放源代码项目(例如Linux内核)采用了更多的集市和可访问的开发环境,这些环境不仅限于单个平台,例如邮件列表。这些可以工作,但是当遵循GitHub等平台已建立的可用性标准时,它们就会步履蹒跚。
像Scuttlebutt这样的对等协议为我们提供了共享和托管信息的替代解决方案。这些协议可以在不依赖服务器的情况下脱机工作,但是基于它们的应用程序缺乏用户轻松在全球范围内进行协调的能力。对于博客或社交网络用例而言,这并不是什么大问题,但是在软件协作方面,规范的全球注册表对于满足当今集中式平台的可用性和可发现性标准是必不可少的。任何人都可以为任何开源项目做出贡献的能力,无论在何处都必须培养真正的自由和开放的网络。
原则设计
在着手构建替代方案时,我们首先考虑了我们认为是免费和开放源代码协作不可或缺的价值观。话虽如此,我们制定了以下指导原则清单:
它必须优先考虑用户自由,用自由软件运动的话来说:
users have the freedom to run, copy, distribute, study, change and improve the software.Thus, "free software" is a matter of liberty, not price.
它必须是可访问且不可审查的
任何人都应该拥有使用该软件与他人合作的自由。任何一方都不能禁止用户访问系统或禁止共享内容。它必须是可审核且透明的。此外,用户应有自由控制自己的互动和各自看到的内容。
它必须是用户友好的
该软件必须易于使用,并且不能期望用户的行为发生巨大变化。响应能力和功能必须符合当前平台建立的标准。
必须先离线
它必须不需要互联网连接,DNS或在线门户即可运行。不能有单点故障,并且必须始终可用。
它一定不能在安全性上妥协
不得要求使用第三方或中介机构的信任。系统的每个人工制品都必须通过加密签名进行证明并进行验证。
Radicle:用于代码协作的点对点堆栈
Radicle通过在git版本开始的分布式版本控制系统之上建立对等复制层,从而采用了Scuttlebutt社交覆盖范式。用户帐户和登录被公钥加密所取代,托管的问题跟踪者被本地对等复制所取代,单个规范上游的想法被基于补丁的对等或“集市”模型所取代。
为了补充复制层,我们引入了一个基于以太坊的可选注册表,其中包含规范的项目元数据。这使项目可以锚定重要信息,例如项目状态和存储库头,同时保证了全局可用性和不变性。
要强调的三个主要主题是决定着重于对等代码协作模型,在底层分布式版本控制系统上进行复制并采用协议优先方法的决定。