「GNUnet」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版から転載)
 
(他の1人の利用者による、間の5版が非表示)
1行目: 1行目:
 
[[Category:匿名ネットワーク]]
 
[[Category:匿名ネットワーク]]
 
[[Category:ファイル共有]]
 
[[Category:ファイル共有]]
[[Category:Virtual Private Network]]
+
[[Category:仮想プライベートネットワーク]]
 
[[en:GNUnet]]
 
[[en:GNUnet]]
 
[[es:GNUnet]]
 
[[es:GNUnet]]
32行目: 32行目:
 
== 使用方法 ==
 
== 使用方法 ==
   
=== Entering the GNUnet network ===
+
=== GNUnet ネットワークへの参入 ===
   
  +
{{ic|gnunet}} システムサービスを [[起動]]、場合によっては [[有効化]] します。一部の操作では、{{ic|gnunet}} ユーザーサービスも開始する必要があります。
[[Start]] and possibly [[enable]] the {{ic|gnunet}} system service. Some operations will require the {{ic|gnunet}} user service to be started as well.
 
   
  +
=== ネットワークを確認する ===
=== Checking the network ===
 
   
  +
通常のユーザーとして {{ic|gnunet-peerinfo}} コマンドを起動することで、ネットワークの現在の状態を確認できます。
You can check the current state of the network by launching the {{ic|gnunet-peerinfo}} command as normal user.
 
   
 
$ gnunet-peerinfo
 
$ gnunet-peerinfo
   
  +
ピア ID の起動を確認するには:
To know your peer identity launch:
 
   
 
$ gnunet-peerinfo -s
 
$ gnunet-peerinfo -s
   
  +
直接接続しているピア (これらを "neighbours" と呼びます) を一覧表示するには、次のコマンドを実行します。
To list the peers you are directly connected with (these are called "neighbours"), launch:
 
   
 
$ gnunet-core
 
$ gnunet-core
   
=== File sharing ===
+
=== ファイル共有 ===
   
  +
デフォルトでは、ファイル共有サービスは ''ユーザーごと'' に実行されます。つまり、'''システムとユーザーの両方の {{ic|gnunet}} サービス''' を [[起動]] する必要があります。このオプションを変更して ''マシンごと'' にファイル共有を実行したい場合は、それに応じて {{ic|/etc/gnunet.conf}} を編集します。
By default the file sharing service runs ''per user'', which means that '''both the system and user {{ic|gnunet}} services''' need to be [[start]]ed. If you want to change this option and run the file sharing ''per machine'', edit {{ic|/etc/gnunet.conf}} accordingly:
 
   
 
[fs]
 
[fs]
61行目: 61行目:
 
...
 
...
   
==== Searching for a file ====
+
==== ファイルを検索する ====
   
  +
{{ic|gnunet-search}} を使用して、キーワード (これらは必ずしもファイル名に関連しているわけではありません) を使用してファイルを検索します。たとえば、"commons" キーワードでインデックス付けされたファイルを検索するには、次のコマンドを起動します。
Use {{ic|gnunet-search}} to search for a file using keywords (these are not necessarily related to the file's name). For example, to search for files that have been indexed under the “commons” keyword, launch:
 
   
 
$ gnunet-search --timeout='10 s' 'commons'
 
$ gnunet-search --timeout='10 s' 'commons'
   
  +
タイムアウトを指定しないと (上記の例では 10 秒)、{{ic|gnunet-search}} は永久に実行され、ユーザーが CTRL-C を押すのを待ちます。
Without specifying a timeout (10 seconds in the example above) {{ic|gnunet-search}} runs forever, waiting for the user to press CTRL-C.
 
   
The {{ic|gnunet-search}} command has a {{ic|--printf}} option for manipulating the printed output, somewhat similar to the {{ic|-printf}} option of the [[find|{{ic|find}}]] utility. Please type {{ic|man gnunet-search}} for more details.
+
{{ic|gnunet-search}} コマンドには、印刷出力を操作するための {{ic|--printf}} オプションがあります。これは、[[find|{{ ic|find}}]] ユーティリティです。詳細については、{{ic|man gnunet-search}} と入力してください。
   
===== Saving search results as "GNUnet directories" =====
+
===== 検索結果を "GNUnet ディレクトリ" として保存する =====
   
Use the {{ic|-o}} option of {{ic|gnunet-search}} to save search results as a "GNUnet directories" ({{ic|.gnd}} files) – you might also want to suppress the printed output in this case (the {{ic|-s}} option).
+
{{ic|gnunet-search}} {{ic|-o}} オプションを使用して、検索結果を "GNUnet ディレクトリ" ({{ic|.gnd}} ファイル) として保存します。この場合、出力は印刷されます ({{ic|-s}} オプション)
   
  +
たとえば、3 秒間検索し、"commons" キーワードによって得られた結果を {{ic|three-seconds-commons.gnd}} という名前のファイルに保存するには、次のように起動します。
For instance, to search for three seconds and save the results yielded by the “commons” keyword into a file named {{ic|three-seconds-commons.gnd}}, launch:
 
   
 
$ gnunet-search -s -t 3s -o three-seconds-commons.gnd 'commons'
 
$ gnunet-search -s -t 3s -o three-seconds-commons.gnd 'commons'
   
If later you want to inspect the content of {{ic|three-seconds-commons.gnd}} you can launch
+
後で {{ic|three-seconds-commons.gnd}} の内容を検査したい場合は、次のコマンドを起動できます。
   
 
$ gnunet-directory three-seconds-commons.gnd
 
$ gnunet-directory three-seconds-commons.gnd
   
==== Downloading ====
+
==== ダウンロード ====
   
  +
{{ic|gnunet-search}} の出力は、デフォルトでは、通常のユーザーとして直接コピーして起動できる {{ic|gnunet-download}} コマンドのリストです。
The output of {{ic|gnunet-search}} is by default a list of {{ic|gnunet-download}} commands that you can directly copy and launch as normal user.
 
   
For example, using the output generated by {{ic|gnunet-search 'commons'}},
+
たとえば、{{ic|gnunet-search 'commons'}} によって生成された出力を使用すると、
   
 
{{hc|$ gnunet-search 'commons'|
 
{{hc|$ gnunet-search 'commons'|
101行目: 101行目:
 
...}}
 
...}}
   
  +
起動して、
you can launch,
 
   
 
{{bc|$ gnunet-download -o "Hardin, Garett (1968)_ Tragedy of the Commons.pdf" gnunet://fs/chk/Y1FD7D123CEGWDW544YDEP15YA5E7ZD2XRSJBNP0847A5JXMMZEZ0XACGRG42BBBTGKZ0ZCBW0A9T6196Z5N26HA6SP1T8GDAT5H5SG.RN38G25DMYG3TBQJEGWDZT2B84N1JYYJZ8VRJ8HG2G1A4EFD4GH5TZXB0RXV7QEMZBSKWCCEF736FXNH6C5BYKG9DSTV99ETFGC93R0.1520328}}
 
{{bc|$ gnunet-download -o "Hardin, Garett (1968)_ Tragedy of the Commons.pdf" gnunet://fs/chk/Y1FD7D123CEGWDW544YDEP15YA5E7ZD2XRSJBNP0847A5JXMMZEZ0XACGRG42BBBTGKZ0ZCBW0A9T6196Z5N26HA6SP1T8GDAT5H5SG.RN38G25DMYG3TBQJEGWDZT2B84N1JYYJZ8VRJ8HG2G1A4EFD4GH5TZXB0RXV7QEMZBSKWCCEF736FXNH6C5BYKG9DSTV99ETFGC93R0.1520328}}
   
which will download {{ic|Hardin, Garett (1968)_ Tragedy of the Commons.pdf}} in the current directory.
+
これにより、現在のディレクトリに {{ic|Hardin, Garett (1968)_ Tragedy of the Commons.pdf}} がダウンロードされます。
   
  +
===== リモート GNUnet ディレクトリをダウンロードせずにマウントする =====
===== Mounting a remote GNUnet directory without downloading it =====
 
   
  +
{{AUR|gnunet-fuse}} という名前のモジュールは、GNUnet ネットワークからリモート ディレクトリをマウントするために開発されました。{{ic|gnunet-fuse}} を使用すると、GNUnet ネットワーク上に公開されたディレクトリを読み取り専用ファイルシステムとしてマウントし、通常のファイル操作を使用してアクセスできます。{{ic|gnunet-download}} を介してディレクトリを再帰的にダウンロードするのとは対照的に、これにはファイルがオンデマンドでダウンロードされるという利点があります。アクセスしたファイル (またはディレクトリ) のみがダウンロードされます。詳細については、モジュールをインストールし、"{{ic|man gnunet-fuse}}" と入力してください。
A module, named {{AUR|gnunet-fuse}}, has been developed to mount remote directories from the GNUnet network. With {{ic|gnunet-fuse}}, directories that have been published on the GNUnet network can be mounted as read-only file systems and accessed using normal file operations. In contrast to downloading the directory recursively via {{ic|gnunet-download}}, this has the advantage that files are downloaded on-demand. Only those files (or directories) that you access will be downloaded. For more information please install the module and type {{ic|man gnunet-fuse}}.
 
   
==== Uploading ====
+
==== アップロード ====
   
  +
GNUnet ファイル共有ネットワーク上でファイルを公開するには、後で他の人がファイルを検索するために使用できるキーワードを選択する必要があります。
Publishing a file on the GNUnet file-sharing network involves choosing keywords that can be later used by other people to search for the file.
 
   
  +
キーワードは厳密には必須ではありませんが、推奨されます。これは、GNUnet ではファイル名ではなくキーワードによる検索が許可されているためです。GNUnet の依存関係である {{Pkg|libextractor}} ライブラリは、ファイルからキーワードを自動的に抽出できますが、独自のキーワードを入力することもできます。
Keywords are not strictly required, but they are recommended. This is because GNUnet does not allow searching by filename, but by keywords. The {{Pkg|libextractor}} library, which is a dependency of GNUnet, can automatically extract keywords from a file, but you may wish to enter keywords of your own.
 
   
In the following example, we use the keywords "commons" and "state" to publish a file named {{ic|ostrom.pdf}}.
+
次の例では、キーワード "commons" "state" を使用して、{{ic|ostrom.pdf}} という名前のファイルを公開します。
   
 
{{hc|$ gnunet-publish -k 'commons' -k 'state' ostrom.pdf|
 
{{hc|$ gnunet-publish -k 'commons' -k 'state' ostrom.pdf|
124行目: 124行目:
 
}}
 
}}
   
  +
GNUnet ユーザーは、{{ic|gnunet-search}} コマンドを使用してファイルを検索できるようになりました。
GNUnet users can now find the file by using the {{ic|gnunet-search}} command.
 
   
 
{{hc|$ gnunet-search 'commons'|
 
{{hc|$ gnunet-search 'commons'|
131行目: 131行目:
 
}}
 
}}
   
To list all the files that are currently published launch {{ic|gnunet-fs -i}}. If later you want to stop sharing a file you can use {{ic|gnunet-unindex ''filename''}} (in our example, {{ic|gnunet-unindex 'ostrom.pdf'}}).
+
現在公開されているすべてのファイルをリストするには、{{ic|gnunet-fs -i}} を起動します。後でファイルの共有を停止したい場合は、{{ic|gnunet-unindex ''filename''}} を使用できます (この例では、{{ic|gnunet-unindex 'ostrom.pdf'}})
   
  +
ファイルが公開されると、ファイルのインデックスに使用されたキーワードを取得することはできません (つまり、逆検索) ただし、さらにキーワードを追加することはいつでも可能です。
Once a file is published it is not possible to retrieve the keywords whereby the file was indexed (i.e., reverse search). It is always possible however to add further keywords to it.
 
   
  +
新しくアップロードされたファイルがピアに表示されるまでには、しばらく時間がかかる (最大で数時間) 場合があることに注意してください。
Please note that it might take some time (up to some hours) till your peers can see your freshly uploaded files.
 
   
  +
{{Warning|ファイルを非公開にしても、現在のマシンによるファイルの共有が停止されるだけで、GNUnet ネットワークからファイルが消去されることはありません。これは設計上不可能です。他の人がファイルをダウンロードして自分で共有している可能性があるためです。必ず、{{ic|gnunet-publish}} は '''取り消しできないアクション''' であると考えてください。}}
{{Warning|Unpublishing a file will only stop the current machine from sharing the file, but will '''not''' erase the file from the GNUnet network – which is by design impossible – as other people might have downloaded the file and shared it themselves. By all means {{ic|gnunet-publish}} must be considered '''an irreversible action'''.}}
 
   
  +
{{ic|gnunet-publish}} コマンドには、インデックスを付けずにファイルを公開するためのオプション {{ic|-n}} または同等の {{ic|--noindex}} が用意されています。使用すると、GNUnet は完全な挿入を実行し、ファイル全体を暗号化された形式で GNUnet データベースに保存します。
The {{ic|gnunet-publish}} command offers an option – {{ic|-n}} or equivalently {{ic|--noindex}} – to publish a file without indexing it. When used, GNUnet will perform a full insertion and store the entire file in encrypted form in the GNUnet database.
 
   
  +
このオプションは、検閲が厳しい国で検閲されたファイルの場合に、GNUnet を実行しているコンピュータに物理的にアクセスした人が現在公開されているファイルを知ることを回避する目的で作成されました。{{ic|--noindex}} オプションを使用して公開されたファイルは、ネットワークからダウンロードされたチャンクとして表示されるため、非公開またはインデックス付けを解除することはできません (そもそもインデックス付けされていません)。ただし、公開中にコンテンツの優先順位を低く指定し ({{ic|--prio}})、データベースがいっぱいになったときに公開されるコンテンツが簡単に失われてもよいことを GNUnet に伝えることは常に可能です。
This option has been created with the purpose of avoiding that who takes physical access to a computer running GNUnet finds out which files are currently being published, in case of censored files in countries with strong censorship. Files published with the {{ic|--noindex}} option will appear as chunks downloaded from the network, and as such cannot be unpublished/unindexed (they have never been indexed in the first place); however it is always possible to specify a low content priority during publication ({{ic|--prio}}) and tell GNUnet that the content that is going to be published is allowed to get lost easily when the database gets full.
 
   
For further information, please read [https://docs.gnunet.org/handbook/gnunet.html#File_002dsharing the chapter on file-sharing in the handbook]. See also https://gnunet.org/en/use.html#filesharing.
+
詳細については、[https://docs.gnunet.org/handbook/gnunet.html#File_002dsharing the chapter on file-sharing in the handbook] を参照してください。https://gnunet.org/en/use.html#filesharing も参照してください。
   
  +
===== インデックス付きファイルの変更と削除 =====
===== Modifying and removing indexed files =====
 
   
  +
* ファイルを変更すると、ファイルのURIが変わります。したがって、GNUnet はこれをまったく別のファイルと見なし、インデックス付きファイルは見つからないとみなします。したがって、最初に元のファイルのインデックスが解除されていることを確認し ({{ic|gnunet-unindex}} コマンドを使用)、ファイルを変更してから、新しいファイルにインデックスを付けて、ネットワーク経由でアクセスできるようにします。
* When you modify a file, the URI of the file changes. Therefore, GNUnet considers this to be a completely different file and the indexed file will be considered missing. Therefore, make sure that the original file is unindexed first (using the {{ic|gnunet-unindex}} command), modify the file, and then index the new file to make it accessible through the network.
 
  +
* ファイルシステムからファイルを削除する場合は、まずそのファイルのインデックスを解除する必要があります。
* If you want to remove a file from your filesystem, then you should unindex it first.
 
  +
* 公開されたファイルを多かれ少なかれ頻繁に更新する必要があることが事前にわかっている場合は、[[GNUnet#更新可能なファイルの公開]] を参照してください。
* If you know in advance that a published file will likely need to be updated more or less frequently, see [[#Publishing updatable files]]
 
   
==== Downloading + sharing ====
+
==== ダウンロード + 共有 ====
   
  +
GNUnet ファイル共有ネットワークは DHT です ([[Wikipedia:ja:分散ハッシュテーブル]] を参照) DHT のピアとして、ユーザーはさまざまなファイルのチャンクをディスク上に保存します。これは、''ダウンロードしていないファイルやダウンロードしたファイルであっても'' です。どのファイルが保存されるかは、DHT 距離メトリック/アルゴリズムによって異なります。
GNUnet file-sharing network is a DHT (see [[Wikipedia:Distributed hash table]]). As peers in the DHT, users store chunks of various files on their disk, ''even from files they do not download or have downloaded''. Which files are stored depends on the DHT distance metric / algorithm.
 
   
  +
技術的には、ファイルが完全にダウンロードされていない限り、ファイルの一部のみが保存されます。これらはキャッシュ (通常は {{ic|/var/lib/gnunet/.local/share/gnunet}} の下) に保存されます。DHT クエリがキャッシュされた部分の 1 つについてピアに到達すると、ピアはそれを提供します。ファイル共有ブロックの保存に使用されるデータベースは有限 (構成可能なクォータ以下) に保たれ、すべてのキャッシュされた部分は期限切れになり、新しいファイル用のスペースを確保できます。
Technically unless a file has been completely downloaded only parts of it are stored. These are stored in a cache (typically under {{ic|/var/lib/gnunet/.local/share/gnunet}}). If a DHT query finds its way to a peer for one of the cached parts, the peer will provide it. The database used to store the file-sharing blocks is kept finite (below a configurable quota), and all the cached parts can expire to make space for newer files.
 
   
  +
誰かが GNUnet ネットワークでファイルを共有すると、そのファイルの分散チャンクはネットワークのキャッシュにしばらく残り、ファイルを共有した人がオフラインになってもファイルは利用可能なままになります。しかし、元の発行者が行方不明になり、他の誰もファイルを ''明示的に'' ({{ic|gnunet-publish}} を使用して) 共有しなかった場合、ピアのキャッシュが期限切れになるか、ピアがオフラインになると、そのファイルは最終的に利用できなくなります。
If someone shares a file in the GNUnet network the distributed chunks of that file will remain in the network's cache for a while, and the file will remain available even if who shared it goes offline. But if the original publisher goes missing and nobody else shared the file ''explicitly'' (with {{ic|gnunet-publish}}), the file will eventually become unavailable as the peer caches expire or the peers go offline.
 
   
  +
ファイルが GNUnet ネットワークに確実に残るようにする唯一の方法は、ファイルをダウンロードした後に ({{ic|gnunet-publish}} を使用して) 明示的に再公開し、ファイルを公開するマシンが定期的にネットワークにアクセスできるようにすることです。
The only way to ensure that a file persists in the GNUnet network is then to re-publish it explicitly after downloading it (with {{ic|gnunet-publish}}) and let the machine that publishes the file visit the network regularly.
 
   
  +
ダウンロード後にファイルを公開すると、再公開用に選択されたキーワードに関係なく、ファイルがダウンロードされたときと同じ URI (以下の例では {{ic|gnunet://fs/chk/Y1FD...}}) が常に生成されます。
Publishing a file after downloading will always generate the same URI whereby the file was downloaded ({{ic|gnunet://fs/chk/Y1FD...}} in the example below), independently of the keywords chosen for re-publishing it:
 
   
 
{{hc|$ gnunet-download -o 'Hardin, Garett (1968)_ Tragedy of the Commons.pdf' gnunet://fs/chk/Y1FD...|2=
 
{{hc|$ gnunet-download -o 'Hardin, Garett (1968)_ Tragedy of the Commons.pdf' gnunet://fs/chk/Y1FD...|2=
175行目: 175行目:
 
=== VPN ===
 
=== VPN ===
   
  +
GNUnet は VPN を提供しており、これを使用してインターネット接続を共有したり (これは Tor 出口ノードを実行するのと同じように危険な可能性があります)、ホスト上のサービスへのアクセスを提供したりできます (これらのサービスは安全です)
GNUnet provides a VPN, which can be used to share your Internet connection (yes, this may be dangerous, just as running a Tor exit node), or to provide access to services on your host (this should be less dangerous, as long as those services are secure).
 
   
For information on how to set up a VPN with GNUnet, see https://gnunet.org/en/use.html#vpn.
+
GNUnet VPN をセットアップする方法については、https://gnunet.org/en/use.html#vpn を参照してください。
   
=== The GNU Name Service (GNS) ===
+
=== GNU ネームサービス (GNS) ===
   
  +
GNU ネーム サービス (GNS) は、[[ドメイン名前解決]] (DNS) に代わる完全に分散化された代替手段であり、後者と同じ重大なセキュリティ上の欠陥に悩まされることはありません ([https://en.wikipedia.org/wiki/Domain_Name_System#Security_issues セキュリティの問題] を参照)
The GNU Name Service (GNS) is a fully decentralized alternative to the [[Domain Name System]] (DNS) that should not suffer the same major security flaws as the latter (see [[Wikipedia:Domain Name System#Security issues]]).
 
   
For information on how to use GNS, see https://gnunet.org/en/use.html#gns_cli and https://gnunet.org/en/use.html#gns_browser.
+
GNS の使用方法については、https://gnunet.org/en/use.html#gns_cli および https://gnunet.org/en/use.html#gns_browser を参照してください。
   
=== Chatting with other GNUnet users ===
+
=== 他の GNUnet ユーザーとチャットする ===
   
  +
GNUnet ユーザーとチャットするには、{{ic|gnunet-messenger}} ユーティリティを使用できます。"これには、{{ic|gnunet.service}} [[ユーザーユニット]] を [[起動]] する必要があります" (おそらく、{{ic|gnunet.service}} システムユニットと一緒に – [[GNUnet#マルチユーザー設定で現在のユーザーとしてデーモンを起動する|マルチユーザー設定で現在のユーザーとしてデーモンを起動する]] を参照してください) たとえば、"アリス" というニックネームを使用して "miscellanea" ルームに入るには、
To chat with GNUnet users the {{ic|gnunet-messenger}} utility is available, ''for which the {{ic|gnunet.service}} [[user unit]] needs to be [[start]]ed'' (possibly along with the {{ic|gnunet.service}} system unit – see [[#Launching the daemon as current user in a multi-user setup]]). For instance, to enter the “miscellanea” room using “alice” as nickname, launch
 
   
 
{{hc|$ gnunet-messenger -e alice -r miscellanea|
 
{{hc|$ gnunet-messenger -e alice -r miscellanea|
198行目: 198行目:
 
}}
 
}}
   
  +
== アプリのエコシステム ==
== App ecosystem ==
 
   
 
=== GNUnet GTK ===
 
=== GNUnet GTK ===
   
  +
GNUnet GTK は、GNUnet フレームワーク用のグラフィカルインターフェイスのコレクションです。以下の [[GTK]] アプリケーションが同梱されています。
GNUnet GTK is a collection of graphical interfaces for the GNUnet framework. It ships the following [[GTK]] applications:
 
   
 
* {{ic|gnunet-conversation-gtk}}
 
* {{ic|gnunet-conversation-gtk}}
211行目: 211行目:
 
* {{ic|gnunet-statistics-gtk}}
 
* {{ic|gnunet-statistics-gtk}}
   
To install GNUnet GTK download the {{AUR|gnunet-gtk}} package.
+
GNUnet GTK をインストールするには、{{AUR|gnunet-gtk}} パッケージをダウンロードします。
   
=== Messenger GTK ===
+
=== GTK メッセンジャー ===
   
  +
現在、GNUnet ネットワーク上でチャットするためのいくつかのグラフィカルユーザーインターフェイスが開発されています。そのうちの 1 つは、モバイル対応の [[GTK]] である '''Messenger GTK''' ({{AUR|messenger-gtk}}、または開発バージョンの場合は {{AUR|messenger-gtk-git}}) です。コマンドラインを介したチャットについては、'''Messenger CLI''' (開発バージョンの場合は {{AUR|messenger-cli}} または {{AUR|messenger-cli-git}}) を参照してください。
Currently several graphical user interfaces for chatting on the GNUnet network are being developed. One of these is '''Messenger GTK''' ({{AUR|messenger-gtk}}, or {{AUR|messenger-gtk-git}} for the development version), a mobile-friendly [[GTK]] graphical user interface for chatting with GNUnet users. For chatting via command line, see '''Messenger CLI''' ({{AUR|messenger-cli}} or {{AUR|messenger-cli-git}} for the development version).
 
   
=== Web User Interface ===
+
=== Web ユーザーインターフェース ===
   
A Web interface for GNUnet exists and is available as {{AUR|gnunet-webui-git}}.
+
GNUnet Web インターフェースが存在し、{{AUR|gnunet-webui-git}} として入手できます。
   
 
=== re:claimID ===
 
=== re:claimID ===
   
  +
[https://gnunet.org/en/reclaim/index.html re:claimID] は、GNU ネーム システム上に構築された分散型アイデンティティプロバイダー (IdP) サービスです。これにより、ユーザーは標準化されたプロトコル (OpenID Connect) を使用して Web サイトと個人情報を安全に共有できます。
[https://gnunet.org/en/reclaim/index.html re:claimID] is a decentralized Identity Provider (IdP) service built on top of the GNU Name System. It allows users to securely share personal information with websites using standardized protocols (OpenID Connect).
 
   
For users ''re:claimID'' offers [https://addons.mozilla.org/addon/reclaimid/ an extension for Firefox] and [https://chrome.google.com/webstore/detail/reclaimid/jiogompmdejcnacmlnjhnaicgkefcfll an extension for Chromium] for managing ''re:claimID'' identities in the web browser (the {{AUR|gnunet}} package needs to be installed).
+
ユーザー向けに ''re:claimID'' [https://addons.mozilla.org/addon/reclaimid/ Firefox の拡張機能] [https://chrome.google.com/webstore/detail/reclaimid/jiogompmdejcnacmlnjhnaicgkefcfll 拡張機能] を提供します。 Chromium の拡張機能] Web ブラウザで ''re:claimID'' ID を管理するための拡張機能 ({{AUR|gnunet}} パッケージをインストールする必要があります)
   
  +
拡張機能をインストールした後、https://ui.reclaim/ にアクセスして、ローカルの ''re:claimID'' インスタンスに新しい ID を追加し、それにいくつかの属性を追加できるようになります (拡張機能がないとリンクは機能しません) インストールされています。
After having installed the extension it will be possible to add a new identity to the local ''re:claimID'' instance and add some attributes to it by visiting https://ui.reclaim/ (the link will not work without the extension installed).
 
   
For more information, please refer to [https://gnunet.org/en/reclaim/users.html the manual].
+
詳細については、[https://gnunet.org/en/reclaim/users.html マニュアル] を参照してください。
   
 
=== GNU Taler ===
 
=== GNU Taler ===
   
  +
GNU Taler は、GNUnet 上に構築されたマイクロトランザクションおよび電子決済システムです。他の分散型決済システムとは異なり、Taler はブロックチェーンに基づいておらず、代わりにブラインド署名に基づいています。
GNU Taler is a microtransaction and electronic payment system built on top of GNUnet. Differently than other distributed payment systems Taler is not based on a blockchain, but on blind signatures instead.
 
   
For more information please consult [https://taler.net/en/docs.html the official documentation]. See also packages {{AUR|sync}}, {{AUR|taler-exchange}}, {{AUR|taler-mdb}}, {{AUR|taler-merchant}} and {{AUR|taler-twister}}.
+
詳細については、[https://taler.net/en/docs.html 公式ドキュメント] を参照してください。パッケージ {{AUR|sync}}{{AUR|taler-exchange}}{{AUR|taler-mdb}}{{AUR|taler-merchant}}、および {{AUR|taler-twister}} も参照してください。
   
 
=== GNU Anastasis ===
 
=== GNU Anastasis ===
   
[https://www.gnu.org/software/anastasis/ GNU Anastasis] is a protocol and implementation that allows users to securely deposit core secrets with an open set of escrow providers and to recover these secrets if their original copies are lost. Anastasis is available on AUR ({{AUR|anastasis}} and {{AUR|anastasis-gtk}}). For more information please consult https://www.gnu.org/software/anastasis/ and https://anastasis.lu/.
+
[https://www.gnu.org/software/anastasis/GNU Anastasis] は、ユーザーがオープンセットのエスクロープロバイダーにコア シークレットを安全に預け、元のコピーが失われた場合にこれらのシークレットを回復できるようにするプロトコルと実装です。Anastasis AUR ({{AUR|anastasis}} および {{AUR|anastasis-gtk}}) で利用できます。詳細については、https://www.gnu.org/software/anastasis/ および https://anastasis.lu/ を参照してください。
   
  +
== トラブルシューティング ==
== Troubleshooting ==
 
   
=== GNUnet fails to publish files ===
+
=== GNUnet がファイルの公開に失敗する ===
   
  +
GNUnet サービスの仕組みを理解していない人にありがちな間違いは、現在のユーザーに対してファイル共有サービスが実行されていないときに、ホームディレクトリ (またはそのサブディレクトリ) にあるファイルを公開しようとすることです。問題は、{{ic|gnunet}} システムユーザー (GNUnet システムサービスを実行する) が通常、他のユーザーのホーム ディレクトリにアクセスできないことです。
A common mistake for who does not understand how the GNUnet services work is that of trying to publish files located in the home directory (or in its subdirectories) when the file sharing service is not running for the current user. The problem is that the {{ic|gnunet}} system user (which runs the GNUnet system service) has normally no access to the home directories of other users.
 
   
  +
簡単な解決策は、{{ic|gnunet}} グループに属するユーザーのみが書き込み権限を持つ共有ディレクトリを作成し、それを使用して公開するファイルを配置することです。たとえば、{{ic|/srv/filesharing/gnunet}} が適切な選択となる可能性があります。
An easy solution is to create a shared directory, where only users that belong to the {{ic|gnunet}} group have write permissions, and use it to place the files that will be published. For instance, {{ic|/srv/filesharing/gnunet}} could be a good choice:
 
   
 
# install -dm775 -g gnunet -o gnunet /srv/filesharing/gnunet
 
# install -dm775 -g gnunet -o gnunet /srv/filesharing/gnunet
   
  +
{{ic|gnunet}} グループに属する各ユーザーは、ホームディレクトリにそのグループへのリンクを作成できます。
Each user belonging to the {{ic|gnunet}} group can then create a link to it in their home directory,
 
   
 
$ ln -s /srv/filesharing/gnunet ~/Publishing
 
$ ln -s /srv/filesharing/gnunet ~/Publishing
   
which can be dereferenced by {{ic|gnunet-publish}}:
+
これは {{ic|gnunet-publish}} によって逆参照できます。
   
 
{{hc|1=$ (cd ~/Publishing && gnunet-publish -k commons ostrom.pdf) && gnunet-fs -i|2=
 
{{hc|1=$ (cd ~/Publishing && gnunet-publish -k commons ostrom.pdf) && gnunet-fs -i|2=
261行目: 261行目:
 
}}
 
}}
   
  +
ファイル共有サービスを現在のユーザーとして実行したい場合は、それに応じて {{ic|/etc/gnunet.conf}} を編集します。
If you prefer to run the file sharing service as current user, edit {{ic|/etc/gnunet.conf}} accordingly:
 
   
 
[fs]
 
[fs]
270行目: 270行目:
 
...
 
...
   
=== Low bandwidth ===
+
=== 低帯域幅 ===
   
  +
ファイル共有の場合、GNUnet の帯域幅制限を、実際にはかなり低いデフォルト値から増やすことをお勧めします。以下の例では、WAN と LAN の制限を {{ic|unlimited}} に設定します。
It is recommended for file-sharing that you increase GNUnet's bandwidth restrictions from the actually pretty low defaults. The example below sets the WAN and LAN limits to {{ic|unlimited}}.
 
   
 
{{bc|
 
{{bc|
281行目: 281行目:
 
}}
 
}}
   
=== /var/lib/gnunet/ grows too big ===
+
=== /var/lib/gnunet/ が大きくなりすぎる ===
   
  +
GNUnet のキャッシュは有限に保たれており、永久に増大することはありません。ただし、デフォルトで予約されているクォータは小さくありません (現在 5 GB) この数を減らすには、{{ic|/etc/gnunet.conf}} の {{ic|datastore}} セクションの {{ic|QUOTA}} キーに希望の値を割り当てる必要があります。
GNUnet's cache is kept finite and cannot grow forever. However the quota reserved for it by default is not small (currently 5 GB). To reduce this number, you must assign your preferred value to the {{ic|QUOTA}} key in the {{ic|datastore}} section of {{ic|/etc/gnunet.conf}}.
 
   
 
{{hc|/etc/gnunet.conf|2=
 
{{hc|/etc/gnunet.conf|2=
294行目: 294行目:
 
}}
 
}}
   
=== /var/lib/gnunet/ is left after uninstall ===
+
=== アンインストール後も /var/lib/gnunet/ は残ります ===
   
  +
{{ic|/var/lib/gnunet/}} ディレクトリは、{{ic|gnunet}} システムユーザーのホームディレクトリであり、GNUnet をアンインストールした後に残ります。GNUnet を二度と使用しないと確信している場合は、次のコマンドを起動します。
The {{ic|/var/lib/gnunet/}} directory is the home directory of the {{ic|gnunet}} system user, which is left after uninstalling GNUnet. If you are sure that you are never going to use GNUnet ever again, launch:
 
   
 
{{bc|
 
{{bc|
303行目: 303行目:
 
}}
 
}}
   
  +
{{Warning|現在のピアによって累積的に保存されている ID とネットワークに関するすべての情報は破棄されます。これは、他のパスに明示的にダウンロードされたファイルには影響しません。}}
{{Warning|The identity and all the information about the network cumulatively stored by the current peer will be destroyed – this will not affect files explicitly downloaded in other paths.}}
 
   
  +
=== ネットワークが静的すぎる ===
=== The network is too static ===
 
   
  +
デフォルトでは、GNUnet はネットワークに接続するたびに、{{ic|https}}) からダウンロードされた {{ic|hostlist}} ファイルを使用して自身をブートストラップします。他のピアから提供されたホストリストを学習して記憶するように指示したい場合は、{{ic|hostlist}} の {{ic|OPTIONS}} キーに {{ic|-e}} オプションを追加する必要があります。{ic|/etc/gnunet.conf}}。さらにオプションもご利用できます。
By default GNUnet bootstraps itself using a {{ic|hostlist}} file downloaded from internet (plain {{ic|https}}) every time it connects to the network. If you want to instruct it to learn and memorize host lists provided by other peers you need to add the {{ic|-e}} option to the {{ic|OPTIONS}} key under {{ic|hostlist}} in {{ic|/etc/gnunet.conf}}. Further options are also available.
 
   
 
{{hc|/etc/gnunet.conf|2=
 
{{hc|/etc/gnunet.conf|2=
322行目: 322行目:
 
...}}
 
...}}
   
  +
== ヒントとテクニック ==
== Tips and tricks ==
 
   
  +
=== マルチユーザー設定で現在のユーザーとしてデーモンを起動する ===
=== Launching the daemon as current user in a multi-user setup ===
 
   
  +
新規インストール後、ユーザー構成ファイルが失われます。マルチユーザー設定では、これはシステムデーモンの実行中に {{ic|gnunet.service}} [[ユーザーユニット]] を [[起動]] および [[停止]] するために (必要な場合に) ほとんどのみ使用されます。したがって、通常は次のものだけを含む最小限の構成ファイルを作成するだけで十分です。
After a fresh install the user configuration file is missing. In a multi-user setup this is almost only used (if needed) to [[start]] and [[stop]] the {{ic|gnunet.service}} [[user unit]] while the system daemon is running, hence it is generally enough to create a minimal configuration file containing only:
 
   
 
{{hc|~/.config/gnunet.conf|2=
 
{{hc|~/.config/gnunet.conf|2=
334行目: 334行目:
 
}}
 
}}
   
  +
{{ic|START_SYSTEM_SERVICES}} を {{ic|NO}} に設定しないと、システムデーモンの実行中に現在のユーザーとしてデーモンを起動すると、プロセスが重複します。
Without setting {{ic|START_SYSTEM_SERVICES}} to {{ic|NO}}, launching the daemon as current user while the system daemon is running will result in duplicate processes.
 
   
See [https://docs.gnunet.org/handbook/gnunet.html#The-Multi_002dUser-Setup The Multi-User Setup], in the manual for further insight.
+
詳細については、マニュアルの [https://docs.gnunet.org/handbook/gnunet.html#The-Multi_002dUser-Setup The Multi-User Setup] を参照してください。
   
  +
=== GNUnet のオンとオフを切り替えるボタン ===
=== A button for switching GNUnet on and off ===
 
   
If you use [[GNOME]] you might want to install the Systemd Manager shell extension ({{AUR|gnome-shell-extension-systemd-manager}}) and add GNUnet to it:
+
[[GNOME]] を使用する場合は、Systemd Manager シェル拡張機能 ({{AUR|gnome-shell-extension-systemd-manager}}) をインストールし、それに GNUnet を追加するとよいでしょう。
   
 
$ dconf write /org/gnome/shell/extensions/systemd-manager/systemd \
 
$ dconf write /org/gnome/shell/extensions/systemd-manager/systemd \
 
<nowiki>'['\''{"name":"GNUnet system service","service":"gnunet.service","type":"system"}'\'', '\''{"name":"GNUnet user service","service":"gnunet.service","type":"user"}'\'']'</nowiki>
 
<nowiki>'['\''{"name":"GNUnet system service","service":"gnunet.service","type":"system"}'\'', '\''{"name":"GNUnet user service","service":"gnunet.service","type":"user"}'\'']'</nowiki>
   
  +
(拡張機能をインストールした後、セッションの再起動が必要になる場合があります。)
(After installing the extension you might need to restart the session.)
 
   
  +
=== シングルユーザーセットアップ ===
=== Single-user setup ===
 
   
  +
GNUnet ピアは、{{ic|gnunet}} システムサービスを実行せずに、現在のユーザーからも開始できます。シングルユーザー設定の場合は、{{ic|~/.config/gnunet.conf}} で {{ic|START_SYSTEM_SERVICES}} と {{ic|START_USER_SERVICES}} が {{ic|YES}} に設定されていることを確認してください。
The GNUnet peer can be started also from the current user without running the {{ic|gnunet}} system service. For a single-user setup make sure that {{ic|START_SYSTEM_SERVICES}} and {{ic|START_USER_SERVICES}} are set to {{ic|YES}} in {{ic|~/.config/gnunet.conf}}:
 
   
 
{{hc|~/.config/gnunet.conf|2=
 
{{hc|~/.config/gnunet.conf|2=
357行目: 357行目:
 
}}
 
}}
   
  +
現在のユーザーとしてピアを開始するには、{{ic|gnunet.service}} [[ユーザーユニット]] を [[起動]] します。現在のユーザーとして実行中のピアを停止するには、{{ic|gnunet.service}} ユーザーユニットを [[停止]] します。
To start the peer as current user, [[start]] the {{ic|gnunet.service}} [[user unit]]. To stop a peer which is running as current user, [[stop]] the {{ic|gnunet.service}} user unit.
 
   
For further information, please refer to [https://docs.gnunet.org/handbook/gnunet.html#The-Single_002dUser-Setup the chapter on the single-user setup in the handbook].
+
詳細については、[https://docs.gnunet.org/handbook/gnunet.html#The-Single_002dUser-Setup the chapter on the single-user setup in the handbook] を参照してください。
   
  +
=== 更新可能なファイルの公開 ===
=== Publishing updatable files ===
 
   
  +
"更新可能な" ファイル (つまり、将来別のバージョンをリリースする可能性があり、別のファイルではなく、更新されたばかりの同じファイルであることを宣伝するファイル) を公開することができます。更新可能なファイルをリリースするには、ego を作成し、それを使用してファイルに署名する必要があります。これは、悪意のある者が偽造されたアップデートを提供できないようにする唯一の方法です。
It is possible to publish "updatable" files (i.e., files for which you might want to release a different version in the future, advertising that it is the same file – just updated – and not a different one). To release an updatable file you need to create an ego and use it to sign the file. This is the only way to assure that a malicious party cannot supply counterfeited updates.
 
   
  +
ego を作成するには、{{ic|gnunet-identity}} ユーティリティが利用可能です。"これには、{{ic|gnunet.service}} [[ユーザーユニット]] を [[起動]] する必要があります" システムユニットと一緒に ([[GNUnet#マルチユーザー設定で現在のユーザーとしてデーモンを起動する]]) を参照してください。たとえば、"caroline" という名前の ego を作成するには、{{ic|gnunet}} ユーザーユニットを [[有効化]] して起動します。
To create an ego the {{ic|gnunet-identity}} utility is available, ''for which the {{ic|gnunet.service}} [[user unit]] needs to be [[start]]ed'' (possibly along with the {{ic|gnunet.service}} system unit – see [[#Launching the daemon as current user in a multi-user setup]]). For instance, to create an ego named "caroline", [[start]] the {{ic|gnunet}} user unit and launch:
 
   
 
$ gnunet-identity -C caroline
 
$ gnunet-identity -C caroline
   
{{Note|If later you decide to erase this ego you can launch {{ic|gnunet-identity -D caroline}}.}}
+
{{Note|後でこの ego を消去することにした場合は、{{ic|gnunet-identity -D caroline}} を起動できます。}}
   
  +
ego を作成したので、ファイルの現在のリリースを識別する文字列 ({{ic|-t}} オプション) と、"計画されている次のバージョンを識別する文字列" を指定する必要があります。 ({{ic|-N}} オプション) – 後者は覚えておく必要があります。両方の文字列には任意のコンテンツが可能です。
Now that you have created an ego, you need to specify a string that identifies the current release of the file (the {{ic|-t}} option), and ''already now the string that will identify your planned next version'' (the {{ic|-N}} option) – you will have to remember the latter. Any content is possible for both strings.
 
   
 
{{hc|1=
 
{{hc|1=
381行目: 381行目:
 
}}
 
}}
   
  +
更新の準備ができたら、以前に選択したのと同じ文字列 (この例では "diary version 2") を使用する必要があります。さらに更新する場合は、別の名前を付ける必要があります (該当する場合)
When an update will be ready, you will have to use the same string that you had previously chosen for it ("diary version 2" in our example), possibly accompanying it with another name for a further update (if applicable):
 
   
 
{{hc|1=
 
{{hc|1=
391行目: 391行目:
 
}}
 
}}
   
  +
更新が最後の更新であると判断した場合は、{{ic|-N}} オプションを省略します (今後の更新は許可されません)
If you decide that an update will be the last one, omit the {{ic|-N}} option (will not allow any future updates).
 
   
  +
GNUnet で更新しても古いコンテンツが利用できなくなるわけではないことに注意してください。GNUnet は発行者がユーザーに新しいバージョンを示すことを許可するだけです。
Note that an update with GNUnet will not make the old content unavailable, GNUnet merely allows the publisher to point users to more recent versions.
 
   
=== Launching and stopping GNUnet without systemd ===
+
=== systemd を使用しない GNUnet の起動と停止 ===
   
  +
GNUnet には、独自のデーモン管理システムである ''自動再起動マネージャー'' (GNUnet サービスに限定) が付属しています。
GNUnet comes with an own daemon management system, the ''Automatic Restart Manager'' (limited to the GNUnet services).
 
   
  +
[[systemd]] を使用せずにシステム サービスを手動で開始するには、{{ic|gnunet-arm}} ユーティリティを「{{ic|gnunet}} ユーザー として起動します。
To start the system services manually without [[systemd]] launch the {{ic|gnunet-arm}} utility ''as {{ic|gnunet}} user'':
 
   
 
$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -s
 
$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -s
   
  +
systemd を使用せずにシステム サービスを手動で終了するには、次のコマンドを起動します。
To end the system services manually without systemd, launch:
 
   
 
$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -e
 
$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -e
   
  +
systemd を使用せずにユーザー サービスを手動で開始するには、{{ic|gnunet-arm}} ユーティリティを ''現在のユーザーとして'' 起動します。
To start the user services manually without systemd, launch the {{ic|gnunet-arm}} utility ''as current user'':
 
   
 
$ gnunet-arm -c ~/.config/gnunet.conf -s
 
$ gnunet-arm -c ~/.config/gnunet.conf -s
   
  +
systemd を使用せずにユーザーサービスを手動で終了するには、次のコマンドを起動します。
To end the user services manually without systemd, launch:
 
   
 
$ gnunet-arm -c ~/.config/gnunet.conf -e
 
$ gnunet-arm -c ~/.config/gnunet.conf -e

2024年8月14日 (水) 23:04時点における最新版

関連記事

GNUnet は中央サーバーや信頼機関を使わないセキュアなピアツーピアネットワークを提供するフレームワークです。現在、フレームワークを使って実装されたサービスとして検閲を免れるファイル共有があります。

Wikipedia:ja:GNUnet も参照してください。

インストール

GNUnet は gnunetAUR パッケージでインストールできます。グラフィカルインターフェイスも使いたい場合は gnunet-gtkAUR をインストールしてください。

もしくは、最新の git バージョンを gnunet-gitAURgnunet-gtk-gitAUR パッケージでインストールすることもできます。

設定

gnunet サービスを起動有効化してください。

もしくは、ターミナルからピアを今すぐ起動するには:

# gnunet-arm -s

How to start and stop a GNUnet peer も参照してください。

使用方法

GNUnet ネットワークへの参入

gnunet システムサービスを 起動、場合によっては 有効化 します。一部の操作では、gnunet ユーザーサービスも開始する必要があります。

ネットワークを確認する

通常のユーザーとして gnunet-peerinfo コマンドを起動することで、ネットワークの現在の状態を確認できます。

$ gnunet-peerinfo

ピア ID の起動を確認するには:

$ gnunet-peerinfo -s

直接接続しているピア (これらを "neighbours" と呼びます) を一覧表示するには、次のコマンドを実行します。

$ gnunet-core

ファイル共有

デフォルトでは、ファイル共有サービスは ユーザーごと に実行されます。つまり、システムとユーザーの両方の gnunet サービス起動 する必要があります。このオプションを変更して マシンごと にファイル共有を実行したい場合は、それに応じて /etc/gnunet.conf を編集します。

[fs]
...
RUN_PER_USER = NO
...
UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-fs.sock
...

ファイルを検索する

gnunet-search を使用して、キーワード (これらは必ずしもファイル名に関連しているわけではありません) を使用してファイルを検索します。たとえば、"commons" キーワードでインデックス付けされたファイルを検索するには、次のコマンドを起動します。

$ gnunet-search --timeout='10 s' 'commons'

タイムアウトを指定しないと (上記の例では 10 秒)、gnunet-search は永久に実行され、ユーザーが CTRL-C を押すのを待ちます。

gnunet-search コマンドには、印刷出力を操作するための --printf オプションがあります。これは、find ユーティリティです。詳細については、man gnunet-search と入力してください。

検索結果を "GNUnet ディレクトリ" として保存する

gnunet-search-o オプションを使用して、検索結果を "GNUnet ディレクトリ" (.gnd ファイル) として保存します。この場合、出力は印刷されます (-s オプション)

たとえば、3 秒間検索し、"commons" キーワードによって得られた結果を three-seconds-commons.gnd という名前のファイルに保存するには、次のように起動します。

$ gnunet-search -s -t 3s -o three-seconds-commons.gnd 'commons'

後で three-seconds-commons.gnd の内容を検査したい場合は、次のコマンドを起動できます。

$ gnunet-directory three-seconds-commons.gnd

ダウンロード

gnunet-search の出力は、デフォルトでは、通常のユーザーとして直接コピーして起動できる gnunet-download コマンドのリストです。

たとえば、gnunet-search 'commons' によって生成された出力を使用すると、

$ gnunet-search 'commons'
#1:
gnunet-download -o "Liotard (2017)_ Fablab - a new space for commons based peer production.pdf" gnunet://fs/chk/C6369DRQ3S8RYK1FD5VDE666W2HVEJ5G5GJRX29BH6ZM08CBRWS7FY9326RBJ4G0N8V1RJ2N802KBYZT7RJT2EDK1J9JR2DXK5MTVM0.4SXJCK9NT5XGCZ0YAJ0ETXJJGY3P2SMNZ0Q94N775YEX9SXS2RW5FWRFK4GMBTP668Z3R8QZZ4WSHW1KG1AVQ5VFC1VF5T3WF57GT58.336423

#2:
gnunet-download -o "Rose, Carol (1986)_ The Comedy of the Commons_ Commerce, Custom, and inherently Public Property.pdf" gnunet://fs/chk/TQK3A2C279EJQ50B1TQWFNTPMGQZJJ4JXYTF2D88D03H038TB7SVVSRBT74FMYPNZ47YZSV096PVVZH0TQ3B8KBVBV2H8GN9VAASTJR.CQ7M7843MGPZCV8M26NKH6EB5MBGZAXRWCF39YS668WM6F22D214GSXNTJ4RYGE7XF68VPZM4C19XR48TT4J8WH8S2E00C96Q8K6790.1593230

#3:
gnunet-download -o "Hardin, Garett (1968)_ Tragedy of the Commons.pdf" gnunet://fs/chk/Y1FD7D123CEGWDW544YDEP15YA5E7ZD2XRSJBNP0847A5JXMMZEZ0XACGRG42BBBTGKZ0ZCBW0A9T6196Z5N26HA6SP1T8GDAT5H5SG.RN38G25DMYG3TBQJEGWDZT2B84N1JYYJZ8VRJ8HG2G1A4EFD4GH5TZXB0RXV7QEMZBSKWCCEF736FXNH6C5BYKG9DSTV99ETFGC93R0.1520328

...

起動して、

$ gnunet-download -o "Hardin, Garett (1968)_ Tragedy of the Commons.pdf" gnunet://fs/chk/Y1FD7D123CEGWDW544YDEP15YA5E7ZD2XRSJBNP0847A5JXMMZEZ0XACGRG42BBBTGKZ0ZCBW0A9T6196Z5N26HA6SP1T8GDAT5H5SG.RN38G25DMYG3TBQJEGWDZT2B84N1JYYJZ8VRJ8HG2G1A4EFD4GH5TZXB0RXV7QEMZBSKWCCEF736FXNH6C5BYKG9DSTV99ETFGC93R0.1520328

これにより、現在のディレクトリに Hardin, Garett (1968)_ Tragedy of the Commons.pdf がダウンロードされます。

リモート GNUnet ディレクトリをダウンロードせずにマウントする

gnunet-fuseAUR という名前のモジュールは、GNUnet ネットワークからリモート ディレクトリをマウントするために開発されました。gnunet-fuse を使用すると、GNUnet ネットワーク上に公開されたディレクトリを読み取り専用ファイルシステムとしてマウントし、通常のファイル操作を使用してアクセスできます。gnunet-download を介してディレクトリを再帰的にダウンロードするのとは対照的に、これにはファイルがオンデマンドでダウンロードされるという利点があります。アクセスしたファイル (またはディレクトリ) のみがダウンロードされます。詳細については、モジュールをインストールし、"man gnunet-fuse" と入力してください。

アップロード

GNUnet ファイル共有ネットワーク上でファイルを公開するには、後で他の人がファイルを検索するために使用できるキーワードを選択する必要があります。

キーワードは厳密には必須ではありませんが、推奨されます。これは、GNUnet ではファイル名ではなくキーワードによる検索が許可されているためです。GNUnet の依存関係である libextractor ライブラリは、ファイルからキーワードを自動的に抽出できますが、独自のキーワードを入力することもできます。

次の例では、キーワード "commons" と "state" を使用して、ostrom.pdf という名前のファイルを公開します。

$ gnunet-publish -k 'commons' -k 'state' ostrom.pdf
Publishing `/srv/filesharing/gnunet/ostrom.pdf' done.
URI is `gnunet://fs/chk/M57S...

GNUnet ユーザーは、gnunet-search コマンドを使用してファイルを検索できるようになりました。

$ gnunet-search 'commons'
#1:
gnunet-download -o "ostrom.pdf" gnunet://fs/chk/M57S...

現在公開されているすべてのファイルをリストするには、gnunet-fs -i を起動します。後でファイルの共有を停止したい場合は、gnunet-unindex filename を使用できます (この例では、gnunet-unindex 'ostrom.pdf')

ファイルが公開されると、ファイルのインデックスに使用されたキーワードを取得することはできません (つまり、逆検索) ただし、さらにキーワードを追加することはいつでも可能です。

新しくアップロードされたファイルがピアに表示されるまでには、しばらく時間がかかる (最大で数時間) 場合があることに注意してください。

警告: ファイルを非公開にしても、現在のマシンによるファイルの共有が停止されるだけで、GNUnet ネットワークからファイルが消去されることはありません。これは設計上不可能です。他の人がファイルをダウンロードして自分で共有している可能性があるためです。必ず、gnunet-publish取り消しできないアクション であると考えてください。

gnunet-publish コマンドには、インデックスを付けずにファイルを公開するためのオプション -n または同等の --noindex が用意されています。使用すると、GNUnet は完全な挿入を実行し、ファイル全体を暗号化された形式で GNUnet データベースに保存します。

このオプションは、検閲が厳しい国で検閲されたファイルの場合に、GNUnet を実行しているコンピュータに物理的にアクセスした人が現在公開されているファイルを知ることを回避する目的で作成されました。--noindex オプションを使用して公開されたファイルは、ネットワークからダウンロードされたチャンクとして表示されるため、非公開またはインデックス付けを解除することはできません (そもそもインデックス付けされていません)。ただし、公開中にコンテンツの優先順位を低く指定し (--prio)、データベースがいっぱいになったときに公開されるコンテンツが簡単に失われてもよいことを GNUnet に伝えることは常に可能です。

詳細については、the chapter on file-sharing in the handbook を参照してください。https://gnunet.org/en/use.html#filesharing も参照してください。

インデックス付きファイルの変更と削除
  • ファイルを変更すると、ファイルのURIが変わります。したがって、GNUnet はこれをまったく別のファイルと見なし、インデックス付きファイルは見つからないとみなします。したがって、最初に元のファイルのインデックスが解除されていることを確認し (gnunet-unindex コマンドを使用)、ファイルを変更してから、新しいファイルにインデックスを付けて、ネットワーク経由でアクセスできるようにします。
  • ファイルシステムからファイルを削除する場合は、まずそのファイルのインデックスを解除する必要があります。
  • 公開されたファイルを多かれ少なかれ頻繁に更新する必要があることが事前にわかっている場合は、GNUnet#更新可能なファイルの公開 を参照してください。

ダウンロード + 共有

GNUnet ファイル共有ネットワークは DHT です (Wikipedia:ja:分散ハッシュテーブル を参照) DHT のピアとして、ユーザーはさまざまなファイルのチャンクをディスク上に保存します。これは、ダウンロードしていないファイルやダウンロードしたファイルであっても です。どのファイルが保存されるかは、DHT 距離メトリック/アルゴリズムによって異なります。

技術的には、ファイルが完全にダウンロードされていない限り、ファイルの一部のみが保存されます。これらはキャッシュ (通常は /var/lib/gnunet/.local/share/gnunet の下) に保存されます。DHT クエリがキャッシュされた部分の 1 つについてピアに到達すると、ピアはそれを提供します。ファイル共有ブロックの保存に使用されるデータベースは有限 (構成可能なクォータ以下) に保たれ、すべてのキャッシュされた部分は期限切れになり、新しいファイル用のスペースを確保できます。

誰かが GNUnet ネットワークでファイルを共有すると、そのファイルの分散チャンクはネットワークのキャッシュにしばらく残り、ファイルを共有した人がオフラインになってもファイルは利用可能なままになります。しかし、元の発行者が行方不明になり、他の誰もファイルを 明示的に (gnunet-publish を使用して) 共有しなかった場合、ピアのキャッシュが期限切れになるか、ピアがオフラインになると、そのファイルは最終的に利用できなくなります。

ファイルが GNUnet ネットワークに確実に残るようにする唯一の方法は、ファイルをダウンロードした後に (gnunet-publish を使用して) 明示的に再公開し、ファイルを公開するマシンが定期的にネットワークにアクセスできるようにすることです。

ダウンロード後にファイルを公開すると、再公開用に選択されたキーワードに関係なく、ファイルがダウンロードされたときと同じ URI (以下の例では gnunet://fs/chk/Y1FD...) が常に生成されます。

$ gnunet-download -o 'Hardin, Garett (1968)_ Tragedy of the Commons.pdf' gnunet://fs/chk/Y1FD...
100% [============================================================]
Downloading `Hardin, Garett (1968)_ Tragedy of the Commons.pdf' done (160 b/s).
$ gnunet-publish -k 'tragedy' 'Hardin, Garett (1968)_ Tragedy of the Commons.pdf'
Publishing `/srv/filesharing/gnunet/Hardin, Garett (1968)_ Tragedy of the Commons.pdf' done.
URI is `gnunet://fs/chk/Y1FD...

VPN

GNUnet は VPN を提供しており、これを使用してインターネット接続を共有したり (これは Tor 出口ノードを実行するのと同じように危険な可能性があります)、ホスト上のサービスへのアクセスを提供したりできます (これらのサービスは安全です)

GNUnet で VPN をセットアップする方法については、https://gnunet.org/en/use.html#vpn を参照してください。

GNU ネームサービス (GNS)

GNU ネーム サービス (GNS) は、ドメイン名前解決 (DNS) に代わる完全に分散化された代替手段であり、後者と同じ重大なセキュリティ上の欠陥に悩まされることはありません (セキュリティの問題 を参照)

GNS の使用方法については、https://gnunet.org/en/use.html#gns_cli および https://gnunet.org/en/use.html#gns_browser を参照してください。

他の GNUnet ユーザーとチャットする

GNUnet ユーザーとチャットするには、gnunet-messenger ユーティリティを使用できます。"これには、gnunet.service ユーザーユニット起動 する必要があります" (おそらく、gnunet.service システムユニットと一緒に – マルチユーザー設定で現在のユーザーとしてデーモンを起動する を参照してください) たとえば、"アリス" というニックネームを使用して "miscellanea" ルームに入るには、

$ gnunet-messenger -e alice -r miscellanea
* Welcome to the messenger, 'alice'!
* You try to open a room...
* You joined the room.
[EHDA8T] * 'anonymous' opened the room on: 2ABN944E16FTWFMOKTMQ5JMPQ233YSPBKC47XR2DHSPQCQ8GYK80
[EHDA8T] * 'anonymous' gets renamed to 'alice'
█

アプリのエコシステム

GNUnet GTK

GNUnet GTK は、GNUnet フレームワーク用のグラフィカルインターフェイスのコレクションです。以下の GTK アプリケーションが同梱されています。

  • gnunet-conversation-gtk
  • gnunet-fs-gtk
  • gnunet-namestore-gtk
  • gnunet-peerinfo-gtk
  • gnunet-setup
  • gnunet-statistics-gtk

GNUnet GTK をインストールするには、gnunet-gtkAUR パッケージをダウンロードします。

GTK メッセンジャー

現在、GNUnet ネットワーク上でチャットするためのいくつかのグラフィカルユーザーインターフェイスが開発されています。そのうちの 1 つは、モバイル対応の GTK である Messenger GTK (messenger-gtkAUR、または開発バージョンの場合は messenger-gtk-gitAUR) です。コマンドラインを介したチャットについては、Messenger CLI (開発バージョンの場合は messenger-cliAUR または messenger-cli-gitAUR) を参照してください。

Web ユーザーインターフェース

GNUnet の Web インターフェースが存在し、gnunet-webui-gitAUR として入手できます。

re:claimID

re:claimID は、GNU ネーム システム上に構築された分散型アイデンティティプロバイダー (IdP) サービスです。これにより、ユーザーは標準化されたプロトコル (OpenID Connect) を使用して Web サイトと個人情報を安全に共有できます。

ユーザー向けに re:claimIDFirefox の拡張機能拡張機能 を提供します。 Chromium の拡張機能] Web ブラウザで re:claimID ID を管理するための拡張機能 (gnunetAUR パッケージをインストールする必要があります)

拡張機能をインストールした後、https://ui.reclaim/ にアクセスして、ローカルの re:claimID インスタンスに新しい ID を追加し、それにいくつかの属性を追加できるようになります (拡張機能がないとリンクは機能しません) インストールされています。

詳細については、マニュアル を参照してください。

GNU Taler

GNU Taler は、GNUnet 上に構築されたマイクロトランザクションおよび電子決済システムです。他の分散型決済システムとは異なり、Taler はブロックチェーンに基づいておらず、代わりにブラインド署名に基づいています。

詳細については、公式ドキュメント を参照してください。パッケージ syncAURtaler-exchangeAURtaler-mdbAURtaler-merchantAUR、および taler-twisterAUR も参照してください。

GNU Anastasis

Anastasis は、ユーザーがオープンセットのエスクロープロバイダーにコア シークレットを安全に預け、元のコピーが失われた場合にこれらのシークレットを回復できるようにするプロトコルと実装です。Anastasis は AUR (anastasisAUR および anastasis-gtkAUR) で利用できます。詳細については、https://www.gnu.org/software/anastasis/ および https://anastasis.lu/ を参照してください。

トラブルシューティング

GNUnet がファイルの公開に失敗する

GNUnet サービスの仕組みを理解していない人にありがちな間違いは、現在のユーザーに対してファイル共有サービスが実行されていないときに、ホームディレクトリ (またはそのサブディレクトリ) にあるファイルを公開しようとすることです。問題は、gnunet システムユーザー (GNUnet システムサービスを実行する) が通常、他のユーザーのホーム ディレクトリにアクセスできないことです。

簡単な解決策は、gnunet グループに属するユーザーのみが書き込み権限を持つ共有ディレクトリを作成し、それを使用して公開するファイルを配置することです。たとえば、/srv/filesharing/gnunet が適切な選択となる可能性があります。

# install -dm775 -g gnunet -o gnunet /srv/filesharing/gnunet

gnunet グループに属する各ユーザーは、ホームディレクトリにそのグループへのリンクを作成できます。

$ ln -s /srv/filesharing/gnunet ~/Publishing

これは gnunet-publish によって逆参照できます。

$ (cd ~/Publishing && gnunet-publish -k commons ostrom.pdf) && gnunet-fs -i
/srv/filesharing/gnunet/ostrom.pdf

ファイル共有サービスを現在のユーザーとして実行したい場合は、それに応じて /etc/gnunet.conf を編集します。

[fs]
...
RUN_PER_USER = YES
...
UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-fs.sock
...

低帯域幅

ファイル共有の場合、GNUnet の帯域幅制限を、実際にはかなり低いデフォルト値から増やすことをお勧めします。以下の例では、WAN と LAN の制限を unlimited に設定します。

$ gnunet-config -s ats -o WAN_QUOTA_IN -V unlimited
$ gnunet-config -s ats -o WAN_QUOTA_OUT -V unlimited
$ gnunet-config -s ats -o LAN_QUOTA_IN -V unlimited
$ gnunet-config -s ats -o LAN_QUOTA_OUT -V unlimited

/var/lib/gnunet/ が大きくなりすぎる

GNUnet のキャッシュは有限に保たれており、永久に増大することはありません。ただし、デフォルトで予約されているクォータは小さくありません (現在 5 GB) この数を減らすには、/etc/gnunet.confdatastore セクションの QUOTA キーに希望の値を割り当てる必要があります。

/etc/gnunet.conf
...

[datastore]
...
QUOTA = 2 GB
...

アンインストール後も /var/lib/gnunet/ は残ります

/var/lib/gnunet/ ディレクトリは、gnunet システムユーザーのホームディレクトリであり、GNUnet をアンインストールした後に残ります。GNUnet を二度と使用しないと確信している場合は、次のコマンドを起動します。

# userdel -r gnunet
# groupdel gnunetdns
警告: 現在のピアによって累積的に保存されている ID とネットワークに関するすべての情報は破棄されます。これは、他のパスに明示的にダウンロードされたファイルには影響しません。

ネットワークが静的すぎる

デフォルトでは、GNUnet はネットワークに接続するたびに、https) からダウンロードされた hostlist ファイルを使用して自身をブートストラップします。他のピアから提供されたホストリストを学習して記憶するように指示したい場合は、hostlistOPTIONS キーに -e オプションを追加する必要があります。{ic|/etc/gnunet.conf}}。さらにオプションもご利用できます。

/etc/gnunet.conf
...

[hostlist]
...
# Options:
# -p : provide a hostlist as a hostlist servers
# -b : bootstrap using configured hostlist servers
# -e : enable learning advertised hostlists
# -a : advertise hostlist to other servers
OPTIONS = -b -e -a -p
...

ヒントとテクニック

マルチユーザー設定で現在のユーザーとしてデーモンを起動する

新規インストール後、ユーザー構成ファイルが失われます。マルチユーザー設定では、これはシステムデーモンの実行中に gnunet.service ユーザーユニット起動 および 停止 するために (必要な場合に) ほとんどのみ使用されます。したがって、通常は次のものだけを含む最小限の構成ファイルを作成するだけで十分です。

~/.config/gnunet.conf
[arm]
START_SYSTEM_SERVICES = NO
START_USER_SERVICES = YES

START_SYSTEM_SERVICESNO に設定しないと、システムデーモンの実行中に現在のユーザーとしてデーモンを起動すると、プロセスが重複します。

詳細については、マニュアルの The Multi-User Setup を参照してください。

GNUnet のオンとオフを切り替えるボタン

GNOME を使用する場合は、Systemd Manager シェル拡張機能 (gnome-shell-extension-systemd-managerAUR) をインストールし、それに GNUnet を追加するとよいでしょう。

$ dconf write /org/gnome/shell/extensions/systemd-manager/systemd \
	'['\''{"name":"GNUnet system service","service":"gnunet.service","type":"system"}'\'', '\''{"name":"GNUnet user service","service":"gnunet.service","type":"user"}'\'']'

(拡張機能をインストールした後、セッションの再起動が必要になる場合があります。)

シングルユーザーセットアップ

GNUnet ピアは、gnunet システムサービスを実行せずに、現在のユーザーからも開始できます。シングルユーザー設定の場合は、~/.config/gnunet.confSTART_SYSTEM_SERVICESSTART_USER_SERVICESYES に設定されていることを確認してください。

~/.config/gnunet.conf
[arm]
START_SYSTEM_SERVICES = YES
START_USER_SERVICES = YES

現在のユーザーとしてピアを開始するには、gnunet.service ユーザーユニット起動 します。現在のユーザーとして実行中のピアを停止するには、gnunet.service ユーザーユニットを 停止 します。

詳細については、the chapter on the single-user setup in the handbook を参照してください。

更新可能なファイルの公開

"更新可能な" ファイル (つまり、将来別のバージョンをリリースする可能性があり、別のファイルではなく、更新されたばかりの同じファイルであることを宣伝するファイル) を公開することができます。更新可能なファイルをリリースするには、ego を作成し、それを使用してファイルに署名する必要があります。これは、悪意のある者が偽造されたアップデートを提供できないようにする唯一の方法です。

ego を作成するには、gnunet-identity ユーティリティが利用可能です。"これには、gnunet.service ユーザーユニット起動 する必要があります" システムユニットと一緒に (GNUnet#マルチユーザー設定で現在のユーザーとしてデーモンを起動する) を参照してください。たとえば、"caroline" という名前の ego を作成するには、gnunet ユーザーユニットを 有効化 して起動します。

$ gnunet-identity -C caroline
ノート: 後でこの ego を消去することにした場合は、gnunet-identity -D caroline を起動できます。

ego を作成したので、ファイルの現在のリリースを識別する文字列 (-t オプション) と、"計画されている次のバージョンを識別する文字列" を指定する必要があります。 (-N オプション) – 後者は覚えておく必要があります。両方の文字列には任意のコンテンツが可能です。

$ gnunet-publish -P caroline -t 'diary version 1' -N 'diary version 2' -k 'diary' until-2020/my_diary.md
Publishing `/srv/filesharing/gnunet/until-2020/my_diary.md' done.
URI is `gnunet://fs/chk/AF26...'.

Namespace URI is `gnunet://fs/sks/V3TK.../diary version 1'.

更新の準備ができたら、以前に選択したのと同じ文字列 (この例では "diary version 2") を使用する必要があります。さらに更新する場合は、別の名前を付ける必要があります (該当する場合)

$ gnunet-publish -P caroline -t 'diary version 2' -N 'diary version 3' -k 'diary' until-2021/my_diary.md
Publishing `/srv/filesharing/gnunet/until-2021/my_diary.md' done.
URI is `gnunet://fs/chk/5Y7V...'.

Namespace URI is `gnunet://fs/sks/V3TK.../diary version 2'.

更新が最後の更新であると判断した場合は、-N オプションを省略します (今後の更新は許可されません)

GNUnet で更新しても古いコンテンツが利用できなくなるわけではないことに注意してください。GNUnet は発行者がユーザーに新しいバージョンを示すことを許可するだけです。

systemd を使用しない GNUnet の起動と停止

GNUnet には、独自のデーモン管理システムである 自動再起動マネージャー (GNUnet サービスに限定) が付属しています。

systemd を使用せずにシステム サービスを手動で開始するには、gnunet-arm ユーティリティを「gnunet ユーザー として起動します。

$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -s

systemd を使用せずにシステム サービスを手動で終了するには、次のコマンドを起動します。

$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -e

systemd を使用せずにユーザー サービスを手動で開始するには、gnunet-arm ユーティリティを 現在のユーザーとして 起動します。

$ gnunet-arm -c ~/.config/gnunet.conf -s

systemd を使用せずにユーザーサービスを手動で終了するには、次のコマンドを起動します。

$ gnunet-arm -c ~/.config/gnunet.conf -e