Howdy! How can we help you?
-
気候変動1
-
ブラウザ71
-
戦争36
-
ヘイトスピーチ10
-
偽情報、誤情報7
-
ジェンダー3
-
国家安全保障10
-
fediverse20
-
alternative_app18
-
デジタルセキュリティツール15
-
国内の監視社会化と反監視運動6
-
VPN9
-
GIFCT2
-
政府・国際機関の動向166
-
スパイウェア20
-
OS関係20
-
教育・学校9
-
監視カメラ16
-
労働現場の監視9
-
プライバシー157
-
デジタルID(マイナンバーなど)12
-
GPS1
-
AI77
-
オリンピックと監視社会7
-
文化12
-
労働運動17
-
リンク集12
-
金融監視3
-
COVID-19と監視社会18
-
検閲105
-
海外動向412
-
オンライン会議システム14
-
暗号化69
-
アクティビストとセキュリティ32
-
ビッグテック、大量監視260
-
SNSのセキュリティ20
-
共謀罪1
-
メールのセキュリティ42
-
Articles1
(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デーモンが起動する。