SSB ( Secure Scuttlebutt ) est un rĂ©seau social dĂ©centralisĂ© et le protocole sur lequel il fonctionne. git-ssb enveloppe les rĂ©fĂ©rentiels git normaux avec ce protocole. SSB veut remplacer Facebook et git-ssb veut remplacer GitHub. Sous la coupe - un guide rapide pour git-ssb. Pertinent pour ceux qui ne sont pas Ă l'aise avec l'idĂ©e mĂȘme d'utiliser des services centralisĂ©s comme intermĂ©diaire. Une sorte de pilule rouge aux consĂ©quences inattendues dans ce cas.
Scuttlebutt sécurisé
Le protocole SSB dĂ©crit les rĂšgles de synchronisation de vos donnĂ©es entre les nĆuds du rĂ©seau intĂ©ressĂ©s. Vos donnĂ©es sont un historique de vos actions sur le rĂ©seau, une liste chaĂźnĂ©e d'objets json. La connexion est dĂ©finie par la somme de hachage de l'objet prĂ©cĂ©dent (comme dans la blockchain). Ainsi, une fois publiĂ©s, les objets sont immuables et non amovibles. Vous ne pouvez ajouter qu'Ă la fin de la liste. Un cas d'utilisation typique suppose que chaque Ă©lĂ©ment de la liste est un article de blog ou un commentaire. Les images et autres objets lourds sont stockĂ©s hors de la liste sous la forme d'objets blob et rĂ©pliquĂ©s sĂ©parĂ©ment. Les objets de la liste peuvent y faire rĂ©fĂ©rence.
La plupart des internautes bloguent sur les applications Patchwork et Manyverse . Il existe une dizaine d'applications de blogs, elles sont pour la plupart compatibles les unes avec les autres et diffÚrent par leur interface. De plus, il y a les échecs, le chat, le gestionnaire de paquets (ssb-npm) et git (git-ssb) . Certains développeurs SSB utilisent git-ssb comme principal service de contrÎle de source. Nous essaierons aussi.
Installez ssb-server et git-ssb
ssb-server est nĂ©cessaire pour se synchroniser avec d'autres nĆuds du rĂ©seau p2p. Il doit ĂȘtre exĂ©cutĂ© lorsque vous poussez, tirez, rĂ©cupĂ©rez, crĂ©ez une demande d'extraction ou crĂ©ez un dĂ©pĂŽt.
Le package git-ssb comprend:
programme de gestion des référentiels (git-ssb)
git-remote-helper , qui comprend les adresses commençant par 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)
-
-
Les quatre premiers sont analysés en détail dans l'article de Daniel Aleksandersen " Comparaison de quatre outils de distribution P2P pour les référentiels Git ". Il y a des commentaires des développeurs SSB.
Merci pour l'attention. J'espÚre que ce n'était pas trop ennuyeux. Bonne décentralisation vers ceux qui s'en soucient.
L'image dans l'en-tĂȘte a Ă©tĂ© gĂ©nĂ©rĂ©e Ă l'aide du service myoctocat.com .