近日,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采用“分层”策略来归档代码。通过提供从实时到长期存储的一系列解决方案,该方法旨在最大程度地提高灵活性和耐用性。存档程序分为三类:热门,一般和冷门。
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作为开源社区重要性的证明。希望这项计划现在和将来可以进一步宣传全球开源运动,促进在全球范围内广泛采用开源和开放数据政策并鼓励长期思考。
领取专属 10元无门槛券
私享最新 技术干货