ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

Νέα από τον πλανήτη…planet.ellak.gr: Storj | Decentralized αποθηκευτικός χώρος

by: Cerebrux

Το Storj μας δίνει δωρεάν 150GB αποθηκευτικού χώρου σε ένα αποκεντρωμένο και κατανεμημένο σύστημα αρχείων που είναι αδύνατον να παραβιαστεί. Θα δούμε μια γενική περιγραφή του και την χρήση του ως σύστημα backup αρχείων.

Το Storj DCS (Decentalized Cloud Storage) είναι ένα ανοιχτού κώδικα σύστημα αποκεντρωμένης αποθήκευση στο νέφος το οποίο κρυπτογραφεί αυτόματα όλα τα αρχεία μας πριν μεταφορτωθούν στο cloud. Πέρα από τα βασικά που μπορείτε να ανεβάσετε σε αυτό, όπως αρχεία, εικόνες, βίντεο, μπορείτε επίσης να χρησιμοποιήσετε τον δωρεάν ελεύθερο χώρο, για διαμοιρασμό αρχείων, για στατική ιστοσελίδα αλλά και ως αποθηκευτικό χώρο για έκτακτη ανάγκη πρόσβασης σε αρχεία Backup (το οποίο και θα δούμε στο παρόν οδηγό).

Τι σημαίνει Decentralized αποθηκευτικός χώρος

Σε αντίθεση με την αποθήκευση όλων των κρυπτογραφημένων δεδομένων ενός χρήστη σε έναν μόνο κεντρικό υπολογιστή – server κλπ, το Storj κατακερματίζει τα κρυπτογραφημένα αρχεία σε πολλούς κόμβους σε μια διαδικασία γνωστή ως decentralized cloud storage.

Κάθε στοιχείο, κρυπτογραφείται χρησιμοποιώντας συμμετρική κρυπτογράφηση AES-256-GCM. Αυτό είναι μια τυπική διαδικασία σε κάθε αρχείο πριν μεταφορτωθεί στο δίκτυό του Storj για να διασφαλιστεί ότι κανένας μη εξουσιοδοτημένος χρήστης δεν μπορεί να έχει πρόσβαση σε αυτά. Μετά την κρυπτογράφηση, τα αρχεία κατακερματίζονται σε 80 ξεχωριστά κομμάτια που κατανέμονται σε 80 γεωγραφικά διάσπαρτους και απομακρυσμένους κόμβους σε όλο τον κόσμο , με αποτέλεσμα οι παραβιάσεις δεδομένων να ανήκουν στο παρελθόν. Ακόμα κι αν κάποια κακόβουλη ομάδα ήταν σε θέση να παραβιάσει έναν κόμβο, δεν θα μπορούσε ποτέ να ανακατασκευάσουν τα αρχεία επειδή θα χρειάζονταν τα άλλα τμήματα αρχείων από τους υπόλοιπους κόμβους.

Πέρα από την κατακερματισμένη φύση αλλά και την κρυπτογράφηση ένα προς ένα αρχείων, οι χρήστες μπορούν επίσης να ενεργοποιήσουν τον έλεγχο ταυτότητας δύο παραγόντων (2FA) τόσο για την πρόσβαση στα αρχεία μέσω web όσο και για την γραμμή εντολών.

Τι είναι αυτοί οι αποκεντρωμένοι κόμβοι

Σε ένα White paper που δημοσιεύτηκε τον Δεκέμβριο του 2014, το Storj παρουσιάστηκε για πρώτη φορά ως έννοια μιας αποκεντρωμένης πλατφόρμα αποθήκευσης στο cloud με peer-to-peer κρυπτογράφηση.

Δύο χρόνια αργότερα, δημοσιεύθηκε μια ενημερωμένη λευκή βίβλος. Σε αυτήν, περιγράφηκε ένα αποκεντρωμένο δίκτυο που συνδέει τους χρήστες που χρειάζονται χώρο αποθήκευσης στο cloud με αυτούς που έχουν χώρο στον σκληρό δίσκο για πώληση.

Άτομα με διαθέσιμο χώρο στον σκληρό τους δίσκο και μια καλή σύνδεση στο διαδίκτυο μπορούν να συμμετέχουν στο δίκτυο ως μια μονάδα στο δίκτυο, που ονομάζεται κόμβος (βλέπε : Storj Node). Η πλατφόρμα κυκλοφόρησε στα τέλη του 2018 και οι συμμετέχοντες με ελεύθερο χώρο στον δίσκο τους ανταμείβονται με το κρυπτονόμισμα Storj (Storj/Euro : €0.84 ).

Σήμερα, το Storj λειτουργεί σε πάνω από 10.000 κόμβους σε 84 διαφορετικές χώρες.

Πως χρησιμοποιούμε το Storj

Το Storj προσφέρει δύο ξεχωριστές διεπαφές μεταφόρτωσης. Ένα απλοϊκό μέσω του browser, για χρήστες που αναζητούν μια βασική και απλοποιημένη προσέγγιση για την αποκέντρωση του περιεχομένου και μια πιο προηγμένη διεπαφή που λειτουργεί μέσω γραμμής εντολών. Λάβετε υπόψη ότι η Storj Labs δεν γνωρίζει ούτε αποθηκεύει το Seed Phrase κρυπτογράφησης (τι είναι το Seed Phrase βλέπε : Κρυπτονομίσματα | Πορτοφόλια vs Ανταλλακτήρια), επομένως εάν το χάσετε, δεν θα μπορείτε να ανακτήσετε τα αρχεία σας !.

Sorj | Μέσω browser

Από άποψη εμφάνισης και οργάνωσης, όταν χρησιμοποιείτε το Storj μέσω browser θα δείτε ότι όλα όσα χρειάζεστε βρίσκονται στον πίνακα ελέγχου «Dashboard» του project σας (μπορείτε να οργανώνετε τα δεδομένα σε projects και buckets).

  • Δημιουργείστε λογαριασμό στο Storj.io

Οι μετρητές αποθήκευσης και bandwidth βρίσκονται μπροστά, παρακολουθώντας αποτελεσματικά πόσα gigabyte έχετε χρησιμοποιήσει για μια μεταφόρτωση. Κάτω από αυτό, θα βρείτε μια καρτέλα λεπτομέρειες που παρακολουθεί πόσοι χρήστες έχουν πρόσβαση σε ένα έργο και σε πόσους «κάδους» χωρίζεται ένα έργο.

Storj | Decentralized αποθηκευτικός χώρος

Σε αυτούς τους κάδους αποθήκευσης (buckets) θα ανεβάσετε, καθώς και θα διαχειριστείτε σε ποιους χρήστες θα δώσετε δικαιώματα να μπορούν να έχουν πρόσβαση στα έργα σας μέσω του Dashboard. Αφού επιλέξετε ποια αρχεία θέλετε να ανεβάσετε, θα μπορείτε να δείτε σε ποια μέρη του πλανήτη βρίσκονται οι κόμβοι με τα αρχεία σας, καθώς και να εκχωρήσετε συνδέσμους σε αυτούς με τους οποίους θέλετε να μοιραστείτε τα αρχεία.

Λάβετε υπόψη ότι αν χρησιμοποιείτε το Storj από τον browser, αυτό προσφέρει κρυπτογράφηση μόνο από την πλευρά του διακομιστή κατά τη μεταφόρτωση μέσω του browser (βλέπε: Design Decision: Server-side Encryption). Ενώ θα μπορείτε να δημιουργήσετε μια φράση πρόσβασης, δεν υπάρχει τρόπος να δείτε τι είδους κρυπτογραφήσεις θα εφαρμοστούν στους κάδους σας μόλις φύγουν από τη συσκευή σας. Για κρυπτογράφηση από άκρο σε άκρο (end-to-end encryption), οι χρήστες θα πρέπει να κάνουν αποστολή αρχείων μέσω της γραμμής εντολών.

Storj | Μέσω γραμμής εντολών

Η χρήση μέσω γραμμής εντολών είναι το καταλληλότερη για poweruser, προγραμματιστές, sysadmins και devops, καθώς όπως φαντάζεστε, παρέχει ευρύτερη γκάμα χρήσεων.

Η μεταφόρτωση και η λήψη με τη γραμμή εντολών του Storj είναι αρκετά απλή μόλις πιάσετε το νόημα, και κάθε φορά που ανεβάζετε ένα αρχείο, το Storj DCS CLI θα κάνει αυτόματα όλες τις διεργασίες που αναφέραμε. Κρυπτογραφεί τα δεδομένα χρησιμοποιώντας κρυπτογράφηση από άκρο σε άκρο (συμπεριλαμβανομένης της διαδρομής και των μεταδεδομένων), «σπάει» τα μεγάλα αρχεία σε τμήματα των 64 MB (ή για μικρότερα αρχεία σε ένα ενιαίο τμήμα ), στη συνέχεια κρυπτογραφεί τα τμήματα, έπειτα σπάζοντας κάθε τμήμα σε 80 κομμάτια τα διανέμει αυτά στο δίκτυό κόμβων του Storj που λειτουργούν ανεξάρτητα το ένα από το άλλο. Όλα αυτά συμβαίνουν στο παρασκήνιο με μια απλή εντολή cp.

Η γραμμή εντολών Storj χρησιμοποιείται μέσω της εφαρμογής που ονομάζεται Uplink και είναι διαθέσιμη σε συσκευές Windows, Mac και Linux. Ακολουθήστε τα παρακάτω βήματα για να ετοιμάσετε το περιβάλλον χρήσης μέσω τερματικού

  1. Δημιουργείστε λογαριασμό στο Storj.io. Αν το κάνατε στο προηγούμενο βήμα, αγνοείστε αυτό το βήμα.
  2. Κάντε Λήψη και Εγκατάσταση του Uplink
  3. Δημιουργείστε ένα νέο Access Grant και αποθηκεύστε το Satellite Address και API Key καθώς θα εμφανιστούν μόνο μία φορά. Τρέξτε ./uplink access create σε Windows ή uplink access create σε Linux και macOS και ακολουθήστε τις οδηγίες. Όταν σας ζητηθούν τα κελιδιά API, εισαγάγετε τα. Έπειτα παράξτε το Access Grant τρέχοντας ./uplink share --readonly=false σε Windows ή uplink share --readonly=false σε Linux και macOS
  4. Μην αποκαλύπτετε ποτέ το Access Grant με πλήρη δικαιώματα διότι περιέχει το κλειδί κρυπτογράφησης και θα επιτρέψει τη μεταφόρτωση, λήψη ή διαγραφή των δεδομένων σας από ολόκληρο το έργο!

Δημιουργείστε ένα bucket (κάδος) αποθήκευσης π.χ. magiriki :

uplink mb sj://magiriki

Ανεβάστε ένα αρχείο π.χ. makaronada.jpg το οποίο έχετε στο desktop σας:

uplink cp ~/Desktop/makaronada.jpg sj://magiriki

Το αρχείο αποθηκεύεται ως object (αντικείμενο).

Αν θέλετε να μοιράσετε την εικόνα π.χ. μόνο για 2 ώρες, με ένα link τρέξτε :

uplink share --url --not-after=+2h sj://magiriki/makaronada.jpg

Για να δείτε τα περιεχόμενα του κάδου

uplink ls sj://magiriki

Για να κατεβάσετε ένα αντικείμενο από το Storj bucket σας, σε τοπικό φάκελο π.χ. στο Desktop σας

uplink cp sj://magiriki/makaronada.jpg ~/Desktop/makaronada.jpg 

Για να διαγράψετε ένα αντικείμενο από το bucket π.χ. makaronada.jpg

uplink cp sj://magiriki/makaronada.jpg

Storj | 3rd party Integration – διασύνδεση με γέφυρες σε άλλες εφαρμογές

Το Storj είναι ένα S3 compatible Gateway και έχει εκτεταμένη διασύνδεση με άλλα λογισμικά για να μπορείτε να τα χρησιμοποιείτε ως έμμεσες εφαρμογές για αποθήκη αρχείων. Μερικά παραδείγματα:

Storj | Backup Αρχείων μέσω Rclone

Εμείς θα επεκτείνουμε τον οδηγό μας Vorta Borg | Αυτόματο backup αρχείων σε εξωτερικό δίσκο και δικτυακό δίσκο και τον φάκελο στον οποίο δημιουργήσαμε τα backup μας θα τα στείλουμε στο Storj για χρήση ως έκτακτη ανάγκη πρόσβασης στα backup μας.

Για να το επιτύχουμε θα χρησιμοποιήσουμε το Rclone το οποίο διαθέτει ενσωματωμένη γέφυρα για το Storj. Υπάρχουν δυο μέθοδοι αποστολής δεδομένων

  1. Native integration: Εδώ αναλαμβάνει όλη την δουλειά ο υπολογιστής μας (κρυπτογράφηση και αποστολή δεδομένων), προσφέρεται καλύτερες ταχύτητες downloading (κατέβασμα των αντιγράφων ασφαλείας σε περίπτωση που το χρειαστούμε)
  2. Hosted Gateway: Εδώ χρησιμοποιούμε έναν S3 gateway του Storj για υψηλότερες ταχύτητες upload (ανέβασμα), χαμηλότερη κατανάλωση πόρων (η κρυπτογράφηση γίνεται στον server)

Εμείς θα δούμε την 1η μέθοδο. Κάποιες παρατηρήσεις για να είστε προετοιμασμένοι:

  • Διαβάστε πρώτα Vorta Borg | Αυτόματο backup αρχείων σε εξωτερικό δίσκο και δικτυακό δίσκο για να καταλάβετε τι θα στείλουμε στο Storj
  • Θα πρέπει να έχετε ρυθμίσει Access Grant και να έχετε κρατήσει τα API keys. Αν όχι δημιουργήστε ένα νέο Bucket για τα backups σας και αποθηκεύστε τα API του Project
  • Το πρώτο ανέβασμα περίπου 40-50GB αρχείων backup, σε 100Mbps γραμμή, σε ένα Raspberry Pi4 αφιερωμένο στο να κρατάει backups και να τα στέλνει στο Storj, πήρε περίπου 24-29 ώρες
  • Είναι αρκετά απαιτητική διαδικασία σε πόρους συστήματος οπότε μπορείτε π.χ. να το χρησιμοποιείστε ως μέθοδο backup μια φορά την εβδομάδα.

Παρακάτω δείχνω την διαδικασία που ακολούθησα για raspberry Pi 4. Σε αυτόν ήδη γίνονται τα backups από διάφορες συσκευές, όπως είπα μεσώ του Vorta Borg backup σε έναν φάκελο Mybackups. Το πλάνο είναι :

  • να χρησιμοποιηθεί αυτός ο φάκελος
  • θα αποστέλλεται ένα αντίγραφό του 1 φορά την εβδομάδα στο Storj
  • με χρήση του Rclone
  • θα τρέχει κάθε Κυριακή στις 23:00

Rclone to Storj | Πρώτη ρύθμιση και πρόσβαση του rclone στο Storj

Πάμε να ξεκινήσουμε κάνοντας λήψη και εγκατάσταση του Rclone και έπειτα ρύθμισή του για αυτόματη αποστολή των backup στο Storj

Ξεκινάμε την πρώτη ρύθμιση του

rclone config

Θα εμφανιστεί ένα μενού όπου θα πληκτρολογήστε n και πατήστε Enter για να δημιουργήσετε μια νέα απομακρυσμένη διαμόρφωση.

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n

Εισαγάγετε ένα όνομα για τη νέα απομακρυσμένη διαμόρφωση, π.χ. mybackups και πατήστε Enter. Θα εμφανιστεί μια μακρά λίστα με υποστηριζόμενα backend αποθήκευσης. Πληκτρολογήστε storj (Επιλογή 36) και πατήστε Enter.

Επιλέξτε τη μέθοδο ελέγχου ταυτότητας:

  • υπάρχουσα παραχώρηση πρόσβασης
  • ή νέα παραχώρηση πρόσβασης από το API Key ( Access token).
Choose an authentication method.
Choose a number from below, or type in your own string value.
Press Enter for the default (existing).
 1 / Use an existing access grant.
   \ (existing)
 2 / Create a new access grant from satellite address, API key, and passphrase.
   \ (new)
provider>

Εάν επιλέξατε τον έλεγχο ταυτότητας με μια υπάρχουσα παραχώρηση πρόσβασης (επιλογή 1), εισαγάγετε το access grant που έχετε για το Storj project.

Εάν επιλέξατε τον έλεγχο ταυτότητας με μια νέα παραχώρηση πρόσβασης (επιλογή 2), εισαγάγετε πρώτα τη διεύθυνση του satellite επιλέγοντας μία από τη λίστα

Choose a number from below, or type in your own string value.
Press Enter for the default (europe-west-1.storj.io).
 1 / US Central 1
   \ (us-central-1.storj.io)
 2 / Europe West 1
   \ (europe-west-1.storj.io)
 3 / Asia East 1
   \ (asia-east-1.storj.io)
satellite_address>

στην συνέχεια πρέπει να εισαγάγετε το κλειδί API που είχατε δημιουργήσει νωρίτερα.

Enter a value. Press Enter to leave empty.
api_key> 1Cjfjf...

Το τελευταίο βήμα σε όλα είναι να πληκτρολογήσετε την φράση κρυπτογράφησης

Option passphrase.
Encryption passphrase.
To access existing objects enter passphrase used for uploading.
Enter a value. Press Enter to leave empty.
passphrase> your-secret-encryption-phrase

Η φράση κρυπτογράφησης χρησιμοποιείται για την κρυπτογράφηση και την αποκρυπτογράφηση των δεδομένων που είναι αποθηκευμένα στο Storj DCS . Εάν έχετε προηγουμένως ανεβάσει δεδομένα σε αυτό το project, πρέπει να εισαγάγετε την ίδια φράση κρυπτογράφησης για να τα κατεβάσετε με επιτυχία.

Θα σας ζητήσει αν επιβεβαιώσετε με μια σύνοψη, την απομακρυσμένης διαμόρφωσης. Πληκτρολογήστε y και πατήστε Enter για να το επιβεβαιώσετε.

[mybackups]
type = storj
satellite_address = 121RTSDpyNZVcEU84Ticf2L1ntiuUi@europe-west-1.storj.io.tardigrade.io:7777
api_key = 1Cjfjf...
passphrase = your-secret-encryption-phrase
access_grant = 1E1F...
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Τώρα λογικά θα πρέπει να δείτε διαθέσιμη μια απομακρυσμένη διαμόρφωση. Πληκτρολογήστε q και πατήστε Enter για έξοδο από τον οδηγό διαμόρφωσης.

Current remotes:
Name                 Type
====                 ====
mybackups            storj
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

Τώρα το Rclone έχει πρόσβαση σε ένα project mybackups στο Storj λογαριασμό σας. Ας φτιάξουμε ένα ριζικό φάκελο αποθήκευσης των backup (bucket ή κάδος όπως το ονομάζει το Storj).

rclone mkdir mybackups:onomafakelou

Για να ανεβάσουμε τον τοπικό φάκελο mybackups μας στο παραπάνω Storj project mybackups:onomafakelou δί

rclone sync --progress ~/mybackups/ mybackups:onomafakelou

η εντολή θα κοιτάξει τα περιεχόμενα του mybackups:onomafakelou και θα ανεβάζει ΜΟΝΟ τις αλλαγές απο το τοπικό ~/mybackups/

Για μια λίστα εντολών με το rclone δείτε Rclone Storj

Rclone to Storj | Αυτοματοποίηση του rclone για αποστολή του backup στο Storj

Φυσικά αν θέλετε, τρέχετε την προηγούμενη εντολή μια φορά την εβδομάδα ή όποτε θέλετε εσείς. Αν θέλετε να το αυτοματοποιήσετε, θα χρησιμοποιήσουμε ένα έτοιμο bash script που θα χρησιμοποιηθεί σε cron job και θα μπορεί να ελέγχει αν εκτελείται ήδη μια διεργασίελέγχει αν έχει ολοκληρωθεί η διαδικασία επιτυχώς και θα γράφει και logfile

  • Κατεβάστε το script απο το github
  • Ανοίξτε το με τον αγαπημένο vim editor
  • Αλλάξτε ΜΟΝΟ τα παρακάτω σημεία με τα δικά σας στοιχεία
# input arguments
src="mybackups" # τοπικός φάκελος ως source
dest="mybackups:onomafakelou" # ο φάκελος bucket στο storj ως destination
log_path="$ΗΟΜΕ/.rclone/" # αλλάζουμε το που γράφει το logfile

Αφού αποθηκεύσουμε τις αλλαγές μας στο script, θα πρέπει να δημιουργήσουμε ενα cronjob για να το καλούμε αυτόματα

crontab -e

και προσθέτουμε την παρακάτω γραμμή αλλάζοντας μόνο την διαδρομή στην οποία κατεβάσατε το rclone-cron.sh π.χ. αν ειναι στον home φακελο μας:

0 4 * * 7 /home/ubuntu/rclone-cron.sh sync >> /home/ubuntu/rclone-sum.log 2>&1 

και αποθηκεύουμε το cronjob. Η γραμμή που προσθέσαμε:

  • 0 4 * * 7 σημαίνει στις 04:00 κάθε Κυριακή (αν θέλετε διαφορετική ώρα και μέρα μπορείτε να φτιάξετε το κατάλληλο στο https://crontab.guru/ )
  • /home/ubuntu/rclone-cron.sh sync συγχρόνισε τα περιεχόμενα που όρισα
  • >> /home/ubuntu/rclone-sum.log 2>&1 και γράψε μια σύνοψη του αποτελέσματος της διεργασίας

αυτή η σύνοψη θα είναι στο αρχείο rclone-sum.log και θα μοιάζει με το παρακάτω:

2022-03-21T17:15:02Z| 🏁 starting rclone sync (mybackups -> mybackups:onomafakelou)
2022-03-21T17:16:03Z| 🚨 another sync is already in progress, script will exit
2022-04-02T01:00:03Z| 🏁 starting rclone sync (mybackups -> mybackups:onomafakelou)
2022-04-02T11:10:00Z| 🎉 rclone sync complete! (took 10h9m57s)

Η αναλυτική αναφορά όμως θα γράφεται πάντα στον κρυφό φάκελο που ορίσαμε .rclone/ μέσα στο script.

Storj | Επίλογος

To Storj όπως και το IPFS που είχαμε μιλήσει παλιότερα, «αντιγράφει» την λογική των blockchain των κρυπτονομισμάτων για να μας παρέχουν φθηνό, προσβάσιμο και ανθεκτικό χώρο αποθήκευσης δεδομένων.

Διαβάστε τα link που περιέχονται στο άρθρο για να αποκτήσετε πλήρη εικόνα για την νέα μορφή υπηρεσιών αποθήκης που θα δούμε να χρησιμοποιούνται όλο και πιο συχνά και για διαφορετικούς σκοπούς.

https://cryptowiki.me/wiki/Storj_(STORJ)

Πηγή άρθρου: planet.ellak.gr , https://cerebrux.net/

Leave a Comment

Social Media Auto Publish Powered By : XYZScripts.com