git-ssb - hébergement décentralisé de référentiels git

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.





DépÎt Git-ssb dans git-ssb
git-ssb git-ssb

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
      
      



(blob ), pack- , blob.





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



. , .





SSB.





?

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)





  • Radicle





  • Gitopia





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 .








All Articles