注意:當(dāng)我們說到Git時(shí),我們并不是指GitHub。GitHub是一個(gè)集中式平臺(tái),而Git是一個(gè)協(xié)議。你可以使用Git而不使用GitHub,而是將你的代碼存儲(chǔ)在GitLab或BitBucket等平臺(tái)。
現(xiàn)在的代碼協(xié)作大多是通過GitHub進(jìn)行的。也有像GitLab和BitBucket這樣的替代品,但GitHub是迄今為止使用最多的Git平臺(tái)。
然而,使用GitHub并不是免費(fèi)的午餐。GitHub為微軟所擁有,而集中化就意味著要進(jìn)行權(quán)衡。既然你在GitHub的平臺(tái)上托管你的代碼和內(nèi)容,這意味著如果他們想的話,可以對你進(jìn)行審查。讓我們看一個(gè)例子。
youtube-dl是一個(gè)免費(fèi)和開源的下載管理器,用于下載YouTube以及其他1000多個(gè)網(wǎng)站的視頻和音頻。它是GitHub上星級(jí)最高的項(xiàng)目之一,有超過100,000顆星。
2020年10月,GitHub根據(jù)美國唱片業(yè)協(xié)會(huì)(RIAA)的要求,關(guān)閉了youtube-dl存儲(chǔ)庫,以及該項(xiàng)目其他各種公開分叉。
這引發(fā)了很多爭議,并強(qiáng)調(diào)了開源軟件和代碼是如何因其被托管在一個(gè)集中的平臺(tái)上而被取締的。盡管GitHub在2020年11月因公眾的反感而公開恢復(fù)了該倉庫,但這仍然表明他們對你的代碼擁有多大的權(quán)力。
由于 GitHub 是一家美國公司,所以他們必須按照美國政府的規(guī)定行事。作為一個(gè)中心化平臺(tái)意味著 GitHub 可以禁止任何他們想要的人進(jìn)入平臺(tái),并阻止他們通過全球最大的開源平臺(tái)參與開源。
迫于美國政府的壓力,GitHub 目前已封禁所有伊朗、敘利亞和克里米亞賬戶。這與建設(shè)自由開放社區(qū)的價(jià)值觀和使命嚴(yán)重不一致。
本著去中心化和消除中介控制的精神,Radicle 成為一種去中心化的代碼協(xié)作工具。它提供了與 Git 類似的功能,沒有集中的平臺(tái)風(fēng)險(xiǎn)。
開源運(yùn)行世界
你可能以前聽過這個(gè)。免費(fèi)和公共代碼使構(gòu)建軟件變得更加容易和便宜,行業(yè)的創(chuàng)新也因此呈指數(shù)級(jí)增長。
像 GitHub 這樣的代碼協(xié)作平臺(tái)無疑發(fā)揮了巨大的作用,并且永遠(yuǎn)改變了開發(fā)人員編寫和維護(hù)軟件的方式。但是,它們是中心化的,您在這些平臺(tái)上所做的一切都被鎖定并僅存在于這些平臺(tái)上。
作為實(shí)現(xiàn)真正目標(biāo)的替代方案,Radicle 建立在以下原則之上:
Radicle 網(wǎng)絡(luò)建立在名為 Radicle Link 的點(diǎn)對點(diǎn)協(xié)議之上。Radicle Link 擴(kuò)展了 Git 協(xié)議,并添加了廣播消息,以分散的方式找到對相同數(shù)據(jù)感興趣的對等方。
Gossip協(xié)議是一種去中心化的通信協(xié)議,所有節(jié)點(diǎn)隨機(jī)與其他節(jié)點(diǎn)對話并請求信息或共享他們想要的信息,并通過將知識(shí)轉(zhuǎn)發(fā)給其他節(jié)點(diǎn),“Gossip”最終會(huì)給那些想要你所擁有的,或擁有你所想要的的節(jié)點(diǎn)讓路。
與IPFS分享數(shù)據(jù)的方式非常相似,Radicle網(wǎng)絡(luò)的參與者通過保留一份本地拷貝并分享他們感興趣的數(shù)據(jù)來分享和傳播。由于它是Git協(xié)議的擴(kuò)展,它通過點(diǎn)對點(diǎn)網(wǎng)絡(luò)保持了Git的數(shù)據(jù)傳輸協(xié)議的效率。
在Radicle中,存儲(chǔ)庫被稱為項(xiàng)目,它們被復(fù)制并由同伴共享。如果你曾經(jīng)使用過torrent,'peers '這個(gè)詞可能聽起來很熟悉。從本質(zhì)上講,他們是尋找他們感興趣的數(shù)據(jù)的人或組織,或者將他們已經(jīng)擁有的數(shù)據(jù)公開給其他同行使用。
如果你想更深入地了解Radicle Link到底是如何工作的,你可以在這里找到更深入的規(guī)范文件[1]。
雖然它們是為解決相同的問題而構(gòu)建的,盡管方法不同,但使用 Radicle 的方式與使用 GitHub 的方式有些不同。
與 Git 不同,Radicle 項(xiàng)目沒有單一的規(guī)范視圖(即主/主分支)。相反,Radicle 項(xiàng)目有多個(gè)上游,即代碼的不同分支,由代碼維護(hù)者和貢獻(xiàn)者維護(hù)。
要從貢獻(xiàn)者那里獲取和接收更改,您必須將它們作為遠(yuǎn)程添加到您的項(xiàng)目中。這會(huì)自動(dòng)跟蹤他們,您可以訂閱他們在上游進(jìn)行的新代碼更新。
要真正開始使用 Radicle,主要方法是下載Radicle Upstream桌面客戶端。它是一個(gè)開源客戶端,充當(dāng)您通往 Radicle 網(wǎng)絡(luò)的網(wǎng)關(guān)。
不幸的是,Radicle Upstream 桌面客戶端目前不支持 Windows。它僅適用于 Linux 和 macOS。
在 Radicle 上創(chuàng)建項(xiàng)目的基本工作流程與 GitHub 的工作方式非常相似:
要查看在 Radicle 上托管的開源項(xiàng)目,您需要訪問該項(xiàng)目的 Radicle ID。
使用桌面客戶端,您可以搜索 Radicle ID。這將在 Gossip 協(xié)議上發(fā)送信息請求消息,一旦您找到可以與您共享該信息的對等方,您將能夠查看該項(xiàng)目。
要為開源項(xiàng)目做出貢獻(xiàn),您可以像往常一樣分叉一個(gè)項(xiàng)目并對其進(jìn)行更改。
然后,如果原始存儲(chǔ)庫將您的分叉添加為存儲(chǔ)庫的遠(yuǎn)程,則原始存儲(chǔ)庫可以跟蹤您的更改。
這將讓他們自動(dòng)跟蹤您的更改并生成補(bǔ)丁,這些補(bǔ)丁可以自動(dòng)從您的 fork 合并到原始存儲(chǔ)庫中。
Radicle 可選擇與以太坊集成。用戶可以選擇加入集成,這將允許他們通過使用 ENS 為您的個(gè)人資料和組織擁有唯一的全局名稱,通過將成員鏈接到以太坊錢包來在 Radicle 上擁有去中心化組織,并能夠接受加密貨幣的貢獻(xiàn)你的開源項(xiàng)目。
此外,Radicle 在以太坊上也有 $RAD 代幣,這是 Radicle DAO 的治理代幣。該代幣在控制 Radicle 網(wǎng)絡(luò)的 DAO 中提供投票權(quán)。
希望這篇文章對 Radicle 是什么、它與 GitHub 有何不同、為什么它很重要以及它是如何工作的有一個(gè)概念性的概念。
在接下來的教程中,我們將對 Radicle 進(jìn)行實(shí)際介紹,并完成在 Radicle 上實(shí)際設(shè)置存儲(chǔ)庫并與他人共享的過程。
注意:由于我們等待 Radicle 團(tuán)隊(duì)發(fā)布也可以在 Windows 上運(yùn)行的跨平臺(tái) CLI 客戶端,因此實(shí)際 Radicle 級(jí)別略有延遲。但是,如果您是 Linux 或 macOS 用戶,我們強(qiáng)烈建議您下載 Radicle Upstream 客戶端并嘗試在 Radicle 上創(chuàng)建項(xiàng)目。
[1] 你可以在這里找到更深入的規(guī)范文件: https://docs.radicle.xyz/understanding-radicle/how-it-works
聯(lián)系客服