SSB(Secure Scuttlebutt)は、分散型ソーシャルネットワークであり、それが動作するプロトコルです。git-ssbは、通常のgitリポジトリをこのプロトコルでラップします。SSBはFacebookを置き換えたいと考えており、git-ssbはGitHubを置き換えたいと考えています。カットの下で-git-ssbへのクイックガイド。一元化されたサービスを仲介として使用するという考えそのものに不快感を覚える人に関連します。この場合、予期しない結果をもたらす一種の赤い丸薬。
安全なscuttlebutt
SSBプロトコルは、関心のあるネットワークのノード間でデータを同期するためのルールを記述します。データは、ネットワーク上でのアクションの履歴であり、jsonオブジェクトのリンクリストです。接続は、前のオブジェクトのハッシュ合計によって設定されます(ブロックチェーンの場合と同様)。したがって、一度公開されると、オブジェクトは不変であり、削除できません。リストの最後にのみ追加できます。一般的な使用例では、リスト内の各項目がブログ投稿またはコメントであると想定しています。写真やその他の重いオブジェクトは、ブロブの形でリストから保存され、個別に複製されます。リスト内のオブジェクトはそれらを参照できます。
PatchworkおよびManyverseアプリに関するほとんどのnetizensブログ。約12のブログアプリケーションがあり、それらはほとんど相互に互換性があり、インターフェイスが異なります。さらに、チェス、チャット、パッケージマネージャー(ssb-npm)、およびgit(git-ssb)があります。一部のSSB開発者は、メインのソース制御サービスとしてgit-ssbを使用しています。私たちもやってみます。
ssb-serverとgit-ssbをインストールします
ssb-serverは、p2pネットワーク内の他のノードと同期するために必要です。リポジトリをプッシュ、プル、フェッチ、プルリクエストを作成、またはフォークするときに実行する必要があります。
git-ssbパッケージには次のものが含まれます。
リポジトリを管理するためのプログラム(git-ssb)
git-remote-helper、ssbで始まるアドレスを理解します://
web-, GitHub
ssb-server.
$ sudo apt install git nodejs npm
$ npm install ssb-server git-ssb
ssb-server git-ssb $HOME/node_modules
. , ~/.profile
:
if [ -d "$HOME/node_modules/.bin/" ] ; then
PATH="$HOME/node_modules/.bin/:$PATH"
fi
$PATH
,
$ source ~/.profile
~/.profile
. (, Xfce) . $PATH
, .xsessionrc
~/.profile
:
. ~/.profile
ssb-server .
$ ssb-server start
identity ~/.ssb
.
, . , , . . , .
. , . . , .
$ ssb-server invite.accept <-->
: , - .
@cel
@cel - git-ssb.
$ ssb-server publish --type contact --contact "@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519" --following
~/.ssb
1Gb - ( git-) , . , .
. :
web-
$ git-ssb-web
, issue . , , , , . activity log, - , GitHub.
web- (, , issue ) . , : , issue ... ssb-server ( ) .
$ mkdir my-new-repo
$ cd my-new-repo
$ git init
Initialized empty Git repository in /tmp/my-new-repo/.git/
$ git-ssb create ssb my-new-repo
Created repo: ssb://<hash-code>.sha256 (my-new-repo)
Added remote: ssb
$ git remote -v
ssb ssb://<hash-code>.sha256 (fetch)
ssb ssb://<hash-code>.sha256 (push)
git init
git-ssb create ssb my-new-repo
, my-new-repo
URL remote ssb
. remote .
ssb remote . .
: - SSB. .
$ git push ssb master
, . git-ssb pack- blob, 5Mb. . , , :
$ git push ssb master -o allow-big
pack- - , git- pack- 5Mb.
git-ssb git-ssb. SSB DNS . ssb://%n92DiQh7ietE+R+X/I403LQoyf2DtR3WQfCkDKlheQU=.sha256
web-.
$ git clone ssb://%n92DiQh7ietE+R+X/I403LQoyf2DtR3WQfCkDKlheQU=.sha256 git-ssb
$ cd git-ssb
$ git remote -v
origin ssb://%n92DiQh7ietE+R+X/I403LQoyf2DtR3WQfCkDKlheQU=.sha256 (fetch)
origin ssb://%n92DiQh7ietE+R+X/I403LQoyf2DtR3WQfCkDKlheQU=.sha256 (push)
remote, SSB.
$ git-ssb fork my-fork
Created repo: ssb://<new-hash-code>.sha256 (git-ssb)
Added remote: my-fork
$ git remote -v
my-fork ssb://<new-hash-code>.sha256 (fetch)
my-fork ssb://<new-hash-code>.sha256 (push)
origin ssb://%n92DiQh7ietE+R+X/I403LQoyf2DtR3WQfCkDKlheQU=.sha256 (fetch)
origin ssb://%n92DiQh7ietE+R+X/I403LQoyf2DtR3WQfCkDKlheQU=.sha256 (push)
, remote.
-
.
$ git-ssb pull-request
, . , .
, . (git-ssb-intro), . @-/master
(git checkout -b @-/master
), (git push ssb
), - (git ssb pull-request
). master -.
, identity ( identity - . ) . git-ssb , . . identity, , . , , . , - , .
Identity ~/.$ssb_appname/secret
. ssb_appname
, identity (~/.ssb
). secret
, ssb-server .
permissionless , , identity.
, : - , , sudo make install
. , - . , , git pull
. , .
?
git-ssb-intro: a guide to hacking together on the distributed web
git:
GitTorrent ( BitTorrent)
HyperGit ( Dat)
igis-remote ( IPFS)
ipld-remote ( IPFS)
GitCenter ( ZeroNet)
Mango (Ethereum + IPFS)
-
-
最初の4つは、DanielAleksandersenの記事「Gitリポジトリ用の4つのP2P配布ツールの比較」で詳細に分析されています。SSB開発者からのコメントがあります。
ご清聴ありがとうございました。退屈すぎなかったといいのですが。気になる人への良い分散。
ヘッダーの画像は、myoctocat.comサービスを使用して生成されました。