GitHub Archive Program:世界のオープンソースコードを北極圏へ届ける旅

Image of Julia Metcalf

ソースコードを北極圏で安全に保管

GitHub Universe 2019において、GitHub Arctic Code Vaultを含むGitHub Archive Programというプロジェクトを発表しました。GitHubの使命は、皆さんのソースコードを1000年間アーカイブ(保管)し、オープンソースソフトウェアを次世代へと引き継ぐことにあります。

2020年2月2日、vault(貯蔵庫)内にアーカイブ保存するためのソースコードとして、GitHub上に公開されているすべてのアクティブなパブリックリポジトリのスナップショットを取得しました。GitHubのアーカイブパートナーPiqlが、数ヶ月間かけて21TBものリポジトリデータを186リール(巻)のpigFilm(デジタル感光性アーカイブフィルム)に転写しました。当初の計画では、GitHubチームがノルウェーの現地へ飛び、世界のオープンソースコードを北極圏まで直接持参することを予定していました。しかし、COVID-19の状況から、この計画の調整が余儀なくされました。GitHubはこの計画のパートナーと緊密に連絡を取りつつ、ノルウェーのスヴァールバル(Svalbard)へ安全に送り届けられるタイミングを図り、遂に7月8日にコードをArctic Code Vaultに無事保管することが出来ました。

ソースコードを北極圏へ届けるという旅の様子や、ここに至るまでにGitHub Archive Programに起きた出来事のいくつかご紹介しましょう。

世界のオープンソースコードを北極圏へ届ける旅  

皆さんのコードの旅は、ノルウェーのドランメン(Drammen)にあるPiqlの施設から始まりました。ここから186にのぼるフィルムリールを収めた箱がオスロ空港に到着し、ここからスヴァールバル行きの旅客機の貨物として積み込まれました。ヨーロッパ本土から約600マイル(約1000km)北に位置するスヴァールバルは、シェンゲン協定加盟国や欧州経済地域内の各国からの旅行者を、つい最近受け入れ始めたところです。

コードが収められた箱は、スヴァールバルにある人口数千人の町、ロングイェールビーン(Longyearbyen)に到着した後、地元の物流会社の手で一晩安全に保管できる中継保管施設に搬送されました。翌朝、すでに閉鎖されている山中の炭鉱に移され、さらに永久凍土の地下数百メートルに設置された vault (貯蔵庫) に格納されました。ここが、世界のオープンソースコードを1000年間保存するという使命を果たすための安住の地となります。

Arctic Code Vault バッジのご紹介   

数百万人におよぶ世界中の開発者が、今回 Arctic Code Vault に保管されたオープンソースソフトウェアに様々な形で貢献しています。このような開発者の貢献を評価とともに称えるため、Arctic Code Vault バッジを作成しました。このバッジはGitHub上の開発者プロフィールにあるハイライトセクションに表示されます。マウスでポイントすると、各開発者が貢献したリポジトリの一部が表示されるようになっています。

Archive Program パートナーからの更新情報 

Internet Archive (インターネットアーカイブ)

Internet Archive (IA)は、デジタル資料コレクションへのパブリックアクセスを無償提供することで広く利用されている非営利デジタルライブラリです。GitHub Archive Programと提携し、IAは本年4月13日にGitHubパブリックリポジトリの継続的アーカイブを開始しました。現在、IAは2つの方法で展開されています。一つ目の方法は、よく知られているWayback Machineにより、GitHubのRAWデータにアクセスし、WarcまたはWeb ARChiveファイルにアーカイブすることです。本記事の執筆時点で、約55TBのデータがアーカイブ済みです。二つ目は、IAがアーカイブされたGitHubリポジトリ全体を「git clone」経由で利用できることを目標に、リポジトリのコメント、issue、その他のメタデータにウェブ上から簡単にアクセスできるようにすることです。この2番目の取り組みは順調に進んでおり、今月中に最初のアーカイブが開始される予定です。

Software Heritage Foundation (ソフトウェア遺産財団)

Software Heritageは、Inriaがユネスコとの提携により立ち上げた非営利マルチステークホルダーの取り組みとしてソフトウェアコモンズのソースコード収集、保存、共有することを目的としています。すでに1億3,000万件以上のプロジェクトがアーカイブされ、開発履歴も完備していますが、そのうちの1億件がGitHub発であると発表できるのは嬉しい限りです。GitHub Universe 2019で発表したコラボレーションのおかげで、アーカイブエンジンはGitHubの成長スピードに見合うことを目標として改善が進んでいます。 興味のあるプロジェクトや最新バージョンがまだアーカイブされていない場合であっても、下記サイトで数クリックするだけで簡単にアーカイブを開始できます。

https://save.softwareheritage.org 

Project Silica (プロジェクト シリカ)

Project Silicaは、長期間有効なデータを格納するクラウド規模のストレージとして、媒体(メディア)から設計と構築が行われたストレージテクノロジーを開発しています。最新の超高速レーザー光学技術を活用し、ガラス材料の物理的構造を永久的に変化させるプロセスを経て、データを石英ガラスに保存します。石英ガラスは、数万年以上にわたる比類のないデータ寿命を提供できる、耐久性をもつストレージメディアです。 電磁干渉、水、熱に対する耐久性があるため、世界のオープンソースソフトウェアを将来の世代のために永久保存するための理想的なストレージメディアです。 GitHub Archive ProgramのパートナーであるProject Silicaは、ストレージのイノベーションを推進し、世界の長寿命データのための持続可能で信頼性の高いストレージ技術の必要性に応えるストレージ技術の開発に取り組んでいます。 将来のアーカイブの概念実証として、世界で最も人気のある6,000のリポジトリをアーカイブしました。

次のステップ 

コード、文化、歴史、技術:Tech Tree

アーカイブされたすべてのリールには、GitHubコミュニティに寄せられた投稿に基づき、5つの言語で記載された「GitHub Code Vault ガイド」が同梱されています。 このガイドは、アーカイブプログラム自体のGitHubリポジトリからも入手可能です。さらに、アーカイブには、その内容に関する技術史および文化的背景を人間が読み取れる形式で文書化した別のリールも含まれています。私たちはこれをTech Treeと命名しました。

Long Nowによる「Manual for Civilization」に触発されたTech Treeは、現代のコンピューティング、オープンソースとそのアプリケーション、現代のソフトウェア開発、よく使われるプログラミング言語などに関する深い理解のため、既存の作品を中心に選び構成されています。また、ソフトウェアを形作る技術基盤の様々なレイヤーを解明する作品も含まれ、マイクロプロセッサ、 ネットワーク、 エレクトロニクス、半導体、さらには産業革命以前の技術に至るまでのものが対象となっています。これにより、アーカイブを継承するこれからの時代の人々は、今日の世界とその技術をより深く理解することができます。アーカイブされたソフトウェアを使用するためのコンピュータを再作成することもできるかもしれません。

世界の文化的背景と技術史をカプセル化するということは困難な試みではありますが、私たちはTech Treeがこれからも進化を継続していくことを期待しています。私たちは、まもなくArchive ProgramのGitHubリポジトリに、Tech Tree用に選んだ作品リストのごく初期的なバージョンを公開する予定です。もちろん、コミュニティへの投稿についてのリクエストも同時に行います。私たちは、Tech TreeのArctic Code Vaultへの追加に向けて、GitHubコミュニティからのアイデアや提案を楽しみにしています。