GitHub啓動代碼永久保存計劃,至少一千年!

近日,GitHub 年度開發者大會GitHub Universe 2019 正式拉開帷幕。GitHub在峯會現場宣佈了一項永久保存代碼計劃——GitHub Archive Program,通過不間斷的跨各種數據格式和位置存儲多個副本的方式來保護開源軟件代碼,至少保存1000年。

代碼永久保存計劃

開源軟件的出現爲科技發展提供了動力,這也是全人類的共同遺產。GitHub Archive Program的任務就是最大可能爲後代保留這些開源軟件。爲了完成這項計劃,GitHub與Long Now Foundation、the Internet Archive、the Software Heritage Foundation, Arctic World Archive、Microsoft Research、the Bodleian Library和Stanford Libraries合作,通過不間斷地跨各種數據格式和位置存儲多個副本來保護代碼,維持至少1000年的長期存檔。

GitHub表示,儘管發生全球性災難的可能性很小,但所有存儲在現代設備平臺上的內容都可能會在幾代後消失,跨多個組織和存儲形式的歸檔軟件將有助於確保其長期保存:在線歸檔員將其稱爲“ LOCKSS”,因爲大量副本可以確保安全。

目前,大量的知識存儲在臨時媒體設備上:硬盤、SSD、CD可以使用數十年,備份磁帶名義上只有30年的壽命,還得嚴格控制熱量和溼度。即便未來這些硬件還在,但運行在上面的軟件可能早已被淘汰, GitHub Archive Program計劃有更長遠的打算,以解決數據在未來丟失的風險。

與此同時,這一計劃也爲受到訪問限制的開發者提供了選擇,如果GitHub在某些地方不可用,受影響的開發人員可以使用Internet Archive和Software Heritage Foundation訪問其項目的公共代碼。

存哪?怎麼存?

在Long Now創始人Steward Brand的啓發下,GitHub採用“分層”策略來歸檔代碼。通過提供從實時到長期存儲的一系列解決方案,該方法旨在最大程度地提高靈活性和耐用性。存檔程序分爲三類:熱門,一般和冷門。

  • 熱門:接近實時更新
  • 一般:每月或每年更新一次
  • 冷門:每5年以上更新一次

GitHub(以下各存儲方案按熱度排列,GitHub爲熱門項目首選)

每次訪問GitHub,GitHub都會將Git數據複製到世界各地的多個數據中心。此外,在Git的多個位置存儲數據、問題、拉取請求以及數據備份,所有這些都可通過GitHub API實時獲得。

GHTorrent 

GHTorrent監視GitHub公共項目的時間線,並進行歸檔,遞歸爬取歸檔內容和依賴性。這些存檔每天或每月可供下載。

GH Archive

GH Archive監視GitHub公共事件時間軸,將這些事件歸檔,並使用BigQuery使它們可查詢。開發者可以按小時、天或月下載快照。

Wayback Machine

互聯網檔案館Wayback Machine將檢索GitHub的公共資料庫(包括新的資料庫、問題、拉取請求、Wiki等),並將副本存儲在舊金山和其他位置的硬盤上,這些檔案將通過git和https公開提供。

Software Heritage Foundation

Software Heritage Foundation(軟件遺產基金會)將定期抓取GitHub,並將其公共存儲庫添加到存檔中,並向其提供公共API訪問權限。

Bodleian圖書館

牛津大學的Bodleian圖書館將GitHub的10,000個最受關注和最依賴的存儲庫保留爲Piql膠片格式,從而爲Arctic Code Vault提供冗餘。

GitHub Arctic Code Vault(北極)

2020年2月2日,GitHub會對每個活躍的公共存儲庫進行快照捕獲,並保存在GitHub Arctic Code Vault中。存儲所使用的膠片卷軸長達3500英尺,由專門負責研發超長期數據保存技術的挪威Piql公司提供並編碼,其中的薄膜使用鹵化銀聚酯技術。根據ISO標準,這種介質的使用壽命長達500年;同時,老化模擬測試表明,其使用時長也能達到原來的兩倍。

這是位於北極世界檔案館(AWA)中的數據存儲庫,位於北極山永久凍土區深250米。該檔案館位於斯瓦爾巴羣島的一個廢棄煤礦中,比北極圈更靠近北極。 GitHub將在2020年2月2日捕獲每個活動公共存儲庫的快照,並將這些數據保存在Arctic Code Vault中。

斯瓦爾巴羣島受國際《斯瓦爾巴羣島條約》的管制,屬於非軍事區,是世界上最北端的城鎮所在地,地球上最偏遠和地緣政治最穩定的人類居住地之一。AWA是挪威國有采礦公司Store Norske Spitsbergen Kulkompani(SNSK)與長期數字存儲提供商Piql AS的一項聯合計劃。 AWA致力於永久保存檔案,膠片卷軸將被存儲在位於斯瓦爾巴羣島偏遠羣島一座廢棄煤礦密封室內的鋼壁容器中。

儘管斯瓦爾巴羣島受到氣候變化的影響,但在可預見的將來,可能只會影響到最外面幾米的永久凍土,預計變暖不會威脅穩定性。礦山靠近著名的Global Seed Vault(僅一英里之遙),這增強了斯瓦爾巴羣島作爲人類集體知識的穩定且長期的檔案館地位。

存檔在GitHub Arctic Code Vault中的02/02/2020快照將包括所有活動的公共GitHub存儲庫,此外還包括由星號、依賴項和諮詢小組確定的大量休眠存儲庫。快照將由每個存儲庫的默認分支的HEAD減去任何大於100KB的二進制文件組成,每個存儲庫將打包爲一個TAR文件。

爲了提高數據密度和完整性,大多數據將以QR編碼存儲。易於閱讀的索引和指南將逐項列出每個存儲庫的位置,並說明如何恢復數據。

微軟研究院的SILICA項目

GitHub存檔計劃與Microsoft的Silica項目合作,通過使用飛秒激光(目前科技條件下所能獲得的最短脈衝激光)將所有活動的公共存儲庫寫入石英玻璃片中,最終將其保存超過10,000年。

未來如何獲取這些代碼?

GitHub正在召集GitHub Archive Program諮詢小組,其中包括人類學、考古學、歷史學、語言學、檔案科學、未來主義等方面的專家,就應該在歸檔中包含哪些內容以及如何與繼承者進行最佳溝通提出建議。

存檔的簡介將包括QR解碼、文件格式、字符編碼和其他關鍵元數據的技術指南,以便可以將原始數據轉換回源代碼,以供將來其他人使用。該歸檔文件還將包括技術樹-路線圖和Rosetta Stone,以供將來好奇的人繼承該歸檔文件的數據。

關於存檔及其使用方式的概述,“技術樹”將作爲軟件開發和計算的快速入門手冊,並與該存檔的用戶指南捆綁在一起。它將描述如何從原始數據向後處理到源代碼,以及如何提取項目的目錄、文件和數據格式。

據報道,該檔案還將包括應用開源的信息和指南,以及當下開發者使用開源的情況,以防將來讀者需要從頭開始重建技術。在人類擁有可以運行的現代計算機但沒有可在其上運行的軟件的範圍內,檔案及其技術樹可能會非常有價值。但是,該價值很有可能是歷史性的。

一千年是很長的時間,一千多年前尚未建成吳哥窟等古代遺址。但是,GitHub認爲可以考慮並計劃在未來1000年內實現各種可能性,主要任務是爲後代開發者保留開源軟件,並打算將GitHub Archive Program作爲開源社區重要性的證明。希望這項計劃現在和將來可以進一步宣傳全球開源運動,促進在全球範圍內廣泛採用開源和開放數據政策並鼓勵長期思考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章