-
AI57
-
alternative_app16
-
Articles1
-
Brave2
-
ChatGPT8
-
COVID-19と監視社会19
-
fediverse10
-
firefox4
-
GIFCT2
-
Linux15
-
OS関係5
-
SNSのセキュリティ17
-
VPN7
-
アクティビストとセキュリティ28
-
ウエッブのセキュリティ52
-
オリンピックと監視社会7
-
オンライン会議システム14
-
ジェンダー3
-
スパイウェア12
-
デジタルID(マイナンバーなど)12
-
デジタルセキュリティツール10
-
ビッグデータ、大量監視213
-
プライバシー129
-
メールのセキュリティ38
-
リンク集11
-
共謀罪1
-
労働現場の監視8
-
労働運動10
-
国内の監視社会化と反監視運動5
-
国家安全保障5
-
政府・国際機関の文書など40
-
教育・学校6
-
教育、EdTech1
-
文化10
-
暗号化63
-
検閲72
-
法執行機関116
-
海外動向311
-
監視カメラ15
-
金融監視3
(Jami)マニュアル:Jami 分散型ネットワーク
接続性
Jamiはdistributed network分散型ネットワークに依存しており、フェデレーションネットワークと比較して複数の利点がある:
- 障害発生時点がない、
- 検閲に対してより耐性がある、
- ユーザー以外のものに依存しない、
- ノード間の信頼は必要ない。
ネットワー概念図
このネットワークは、分散ハッシュテーブルDistributed Hash Table(DHT)を形成している。[訳注:DHTについてのWiki(日本語)の解説]
分散通信システムの核となる問題はピアコネクティビティであるが、Jamiは2つの要素でそれを実現している:
- DHT上で暗号化されたアナウンスメントを行う
- NAT hole punchingのための標準プロトコルを使用する[訳注、NAT hole punchingについては、Wiki参照]
Jamiは、2つの異なる分散ネットワーク上に構築されている:
- 分散型接続の確立とメッセージ配信を提供するOpenDHT kademliaネットワーク「訳注:kademliaについてはWiki参照]
- 名前登録はJamiNSブロックチェーンで行う
OpenDHTネットワーク
OpenDHTの詳細については、https://github.com/savoirfairelinux/opendht を参照。OpenDHTは、Jamiの接続性確立(ICEを使用)のための分散キーバリューデータストアとメッセージ配信を提供する。
OpenDHTネットワークは、すでにネットワークに接続されているノードについて知ることで、参加することができる。このノードは、ネットワーク上の他のノードに関する知識を共有することになる。
Jamiクライアントは、最初のセッションの後、ネットワークに再接続するために、永続的なノードキャッシュを使用する。設定可能な、既知の、安定した「ブートストラップ」ノードが、最初の接続やキャッシュされたノードが応答しない場合に使用される。
Jamiクライアントは現在、デフォルトの(設定可能な)ブートストラップノードとして bootstrap.jami.net:4222 を、ネットワークID 0(デフォルトの、公開OpenDHTネットワーク)を使用している。
OpenDHTネットワークに貢献する
すべてのJamiアカウントはOpenDHTノードを実行し、ネットワークに貢献し、Jamiのスケーリングを可能にする。
Jamiユーザーは、自分自身の安定したOpenDHTノードを実行し、それをJamiのブートストラップノードとして設定することで、完全な独立性を持つことができ、同時に、パブリックOpenDHTネットワークのすべてのユーザーの安定性、堅牢性、回復力の向上に貢献する。
スタンドアロンノードは、OpenDHTに含まれるdhtnodeユーティリティを使って実行できる。dhtnodeはデータを永続化せず、デフォルトのメモリ内ストレージ上限は8MiBである。
コミュニティが運営する安定したDHTノードは、所有者の要求に応じて、デフォルトの起動リストに追加される。これは、起動ノードの数が多いほど、より弾力的で独立したネットワークになるからだ。
JamiNSブロックチェーン
JamiNSブロックチェーンは実験的なもので、そのアーキテクチャは進化していくことが予想される。
Jamiクライアントは自らブロックチェーンノードを動かすのではなく、名前の登録と問い合わせにHTTPを使い、REST APIでJamiNSサーバーと通信する。これは、ブロックチェーンノードを動かすのに必要なリソースが、ほとんどのエンドユーザーにとって高すぎるためだ。
ネームサーバーはJamiのアカウントごとに設定することができ、Jamiクライアントを多かれ少なかれ集中した様々なユーザーディレクトリに接続することができる。
JamiNSブロックチェーンに貢献する
デフォルトのJamiの名前サービスは、Savoir-faire Linuxが提供するns.jami.netで、Ethereumのブロックチェーンノードに接続されている。その目的は、誰もが(そう望むなら)自分自身のブロックチェーンノードとHTTPサービスを実行し、いくつかのEtherをマイニングし、それをJamiに自分のユーザー名を登録するために必要な取引手数料を支払うために使うことができるようにすることにある。
Ethereum契約、ブロックチェーン生成ファイル、NodeJSモジュール(HTTPサーバー)のコードは、ここにある: 1
Jami Nodeを実行する
前提条件:
Jamiネットワークに参加する
Jamiネットワークに参加するプロセスは、通常のethereumネットワークに参加するプロセスと似ているが、データディレクトリを初期化するためにgenesisファイルが使用されるという違いがある。
- JamiのgenesisファイルをJami github repoからダウンロードする。
- Jamiブロックチェーンのデータを保存するためのディレクトリをコンピュータ上に作成する。
MacOSの例(/Users/username/jamichain)
Linuxの例(/home/username/jamichain)
Windowsの場合(C:¥Users/username¥jamichain)
3 ./geth --datadir /home/username/jamichain init genes is.json
を実行し、(2)で作成したディレクトリをgethで初期化する。
4.あとは、以下のように必要なコマンドラインオプションを指定して、Jamiのブートノードの1つを指定してgethを起動すればよい:
geth --datadir=/home/username/jamichain --syncmode=full --networkid 1551 --bootnodes "enode://11ba6d3bfdc29a8afb24dcfcf9a08c8008005ead62756eadb363523c2ca8b819efbb264053db3d73949f1375bb3f03090f44cacfb88bade38bb6fc2cb3d890a5@173.231.120.228:30301" console
これで、Jamiのネットワークと同期しているコンソールが添付されたgethデーモンが起動する。