Τεκμηρίωση
Το Meshbell είναι ένα όργανο έκτακτης ανάγκης σε κλίμακα γειτονιάς. Η επαλήθευση είναι το υπόστρωμα, όχι ένα χαρακτηριστικό. Αυτή η σελίδα λέει το πώς, και πού βρίσκονται τα άκρα.
Επισκόπηση
Μια προειδοποίηση κινδύνου στο Meshbell είναι μια μικρή υπογεγραμμένη εγγραφή. Ονομάζεται από τη σύνοψη των ίδιων της των byte, υπογράφεται με ένα κλειδί συσκευής, και δεν αλλάζει ποτέ. Μια διόρθωση είναι μια νέα εγγραφή που δείχνει προς την παλιά, και αυτό είναι που επιτρέπει σε μια προειδοποίηση και στη διόρθωσή της να ταξιδεύουν μαζί, και σε κάθε συσκευή να ξαναελέγχει ό,τι λαμβάνει.
Το τηλέφωνό σου έχει δύο συνδέσεις, και καμία δεν χρειάζεται internet
Αυτό είναι όλο το μοντέλο σύνδεσης, και η καρτέλα Σύνδεση της εφαρμογής είναι το σημείο όπου βλέπεις και τις δύο.
| Σύνδεση | Πού φτάνει | Πώς ξεκινά |
|---|---|---|
| Bluetooth | Σε έναν ασύρματο τσέπης: έναν συνοδευτικό κόμβο LoRa μέσα στην τσάντα σου. Αυτός είναι ο μόνος τρόπος για να βγει ένα τηλέφωνο στον αέρα, γιατί κανένα iPhone δεν έχει ασύρματο LoRa μέσα του. | Πατάς Σύνδεση. Μια σάρωση κοστίζει μπαταρία και δεσμεύει αποκλειστικά τον ασύρματο, οπότε την ξεκινά ένας άνθρωπος, ποτέ η εφαρμογή. |
| Wi-Fi | Σε μια γέφυρα γειτονιάς: ένα πάντα ανοιχτό κουτί στο τοπικό δίκτυο, που κρατά την εγγραφή και τη διαθέτει σε τηλέφωνα και προγράμματα περιήγησης. | Αυτόματα κατά την εκκίνηση. Η εφαρμογή ψάχνει για γέφυρα σε όποιο Wi-Fi κι αν βρίσκεσαι, και υπάρχει πεδίο χειροκίνητης διεύθυνσης για δίκτυα που εμποδίζουν την ανακάλυψη. |
Και οι δύο συνδέσεις τροφοδοτούν ένα ημερολόγιο και μία κλειδοθήκη. Μια εγγραφή που φτάνει από τον αέρα και μία που φτάνει μέσω Wi-Fi προσγειώνονται στο ίδιο αρχείο καταγραφής και περνούν τον ίδιο έλεγχο. Το σβήσιμο του ασυρμάτου δεν σταματά τη λήψη από τη γέφυρα, γιατί πρόκειται για ξεχωριστές διαδρομές προς το ίδιο σημείο.
Όλα όσα βρίσκονται πάνω από το δίκτυο είναι φτιαγμένα έτσι ώστε η απώλεια μιας σύνδεσης, ενός διακομιστή ή ενός μοντέλου να σου κοστίζει έναν σχολιασμό, ποτέ την ίδια την ειδοποίηση.
Το μοντέλο εμπιστοσύνης
Το Meshbell κρατά δύο ερωτήματα χωριστά, επειδή είναι διαφορετικά δεδομένα και το θόλωμά τους είναι ο τρόπος με τον οποίο εξαπλώνεται η κακή πληροφορία.
| Ερώτημα | Τι το απαντά | Τι μπορεί να πει |
|---|---|---|
| Ποια εγγραφή είναι αυτή, και είναι ακέραιη; | Η διεύθυνση περιεχομένου και ο έλεγχος υπογραφής, που εκτελούνται και τα δύο στη συσκευή σου | δεσμευμένο · προεπισκόπηση · αλλοιωμένο |
| Ποιος το υπέγραψε, και μπορώ να το ελέγξω; | Η κλειδοθήκη στη συσκευή σου | επαληθευμένο · δεν μπορεί να ελεγχθεί · πλαστό |
Ο δεύτερος άξονας έχει σκόπιμα τρεις τιμές. Μια πλαστογραφία, που ελέγχθηκε έναντι ενός κλειδιού που κατέχεις και απέτυχε, δεν είναι το ίδιο δεδομένο με ένα άγνωστο κλειδί, όπου απλώς δεν υπάρχει ακόμη τρόπος ελέγχου. Το να τα ενώσεις σε μία λέξη, «άκυρο», θα έκρυβε ακριβώς τη διάκριση που χρειάζεται ένας άνθρωπος. Ένα μήνυμα αποθηκεύεται ως αξιόπιστο μόνο όταν η κλειδοθήκη λέει επαληθευμένο.
Επαληθευμένο απευθείας από τον αέρα, χωρίς προηγούμενο αντίγραφο
Ένα σύντομο πλαίσιο ασυρμάτου είναι μια προεπισκόπηση: ένας δείκτης προς μια εγγραφή, που εμφανίζεται αλλά δεν θεωρείται ποτέ αξιόπιστος και δεν χρησιμοποιείται ποτέ για να επινοηθεί περιεχόμενο. Μια εγγραφή μπορεί επίσης να σταλεί ολόκληρη ως αυτοπιστοποιούμενος φάκελος, χωρισμένη σε πολλά πλαίσια και επανασυναρμολογημένη στην άλλη άκρη. Μια συσκευή που δεν έχει ξαναδεί ποτέ την εγγραφή μπορεί τότε να την ανακατασκευάσει, να παραγάγει ξανά τη διεύθυνση περιεχομένου της και να ελέγξει την υπογραφή της, φτάνοντας σε ετυμηγορία επαληθευμένο σε μια γειτονιά καθαρά ασυρμάτου, χωρίς internet πουθενά στον βρόχο.
Τα πλαίσια φτάνουν χωρίς πιστοποίηση μέσω LoRa, και τα τμήματα μιας χωρισμένης εγγραφής δεν είναι υπογεγραμμένα κατά τη μεταφορά. Μόνο η επανασυναρμολογημένη εγγραφή επαληθεύεται. Μια ελλιπής ομάδα το λέει και παραμένει προεπισκόπηση.
Το τείχος προστασίας οδηγιών
Το ένα πράγμα που μια εφαρμογή έκτακτης ανάγκης δεν πρέπει ποτέ να κάνει είναι να μετατρέψει μια φήμη σε εντολή. Το Meshbell το επιβάλλει στη δομή του κώδικα, όχι με πειθαρχία ελέγχου.
- Η οθόνη που εμφανίζει μια οδηγία, δηλαδή το τι να κάνεις, δεν μπορεί να κατασκευαστεί από μη επαληθευμένο μήνυμα. Το σύστημα τύπων το αρνείται.
- Το κείμενο καθοδήγησης προέρχεται από ένα ενσωματωμένο εγχειρίδιο με εκδόσεις, με κλειδί το id. Δεν προέρχεται ποτέ από ελεύθερο κείμενο που ταξιδεύει στο δίκτυο, ούτε ποτέ από γλωσσικό μοντέλο. Ένα μοντέλο μπορεί να συνοψίσει μια κατάσταση, σε πεζό λόγο, με ετικέτα ότι πρόκειται για συμπέρασμα. Δεν έχει κανένα πεδίο στο οποίο να βάλει εντολή.
- Μια αναμεταδιδόμενη επίσημη ειδοποίηση εμφανίζεται ως εγγύηση ενός γείτονα, όχι ως επίσημη. Η ετυμηγορία της το λέει με λέξεις: αναμεταδιδόμενη επίσημη ειδοποίηση, δεν αντιμετωπίζεται ως επίσημη εδώ.
Η υπόσχεση, σε μία γραμμή. Η εφαρμογή δεν μετατρέπει ποτέ μια φήμη σε οδηγία, και αυτή η πρόταση είναι ιδιότητα του κώδικα και όχι διακήρυξη αποστολής.
Το επίπεδο συντονισμού
Οι επαληθευμένες ειδοποιήσεις απαντούν στο τι συμβαίνει και στο αν μπορείς να το εμπιστευτείς. Μια γειτονιά σε έκτακτη ανάγκη έχει επίσης τα συνηθισμένα πρακτικά: ποιος έχει δηλώσει ασφαλής, πού είναι το καταφύγιο, ποιος έχει γεννήτρια. Το Meshbell μεταφέρει ένα δεύτερο, σκόπιμα ξεχωριστό επίπεδο για αυτή τη δουλειά, μέσα στην ίδια την εφαρμογή στην καρτέλα Γειτονιά και σε πρόγραμμα περιήγησης για όποιον δεν έχει την εφαρμογή.
Αυτό το επίπεδο είναι μη επαληθευμένο εκ σχεδιασμού. Δεν έχει διεύθυνση περιεχομένου, δεν είναι υπογεγραμμένο, και δεν αποτελεί μέρος του καναλιού ειδοποιήσεων. Είναι μεταβλητή κοινή κατάσταση που οι γείτονες γράφουν και επεξεργάζονται, οπότε αντιμετώπισέ το σαν σημείωμα κολλημένο σε μια πόρτα. Το τείχος προστασίας οδηγιών εξακολουθεί να ισχύει: τίποτα εδώ δεν μπορεί να εμφανιστεί ως επίσημη οδηγία, και το παραπάνω μοντέλο εμπιστοσύνης διέπει μόνο τις ειδοποιήσεις.
Τι περιέχει
| Επιφάνεια | Τι είναι | Μορφή απορρήτου |
|---|---|---|
| Καταμέτρηση ασφαλών | Δήλωση «είμαι ασφαλής» με ένα πάτημα. Όλοι βλέπουν έναν συγκεντρωτικό αριθμό σε σχέση με ένα κατά προσέγγιση σύνολο νοικοκυριών. | Χωρίς ονόματα, διευθύνσεις ή τοποθεσίες, και χωρίς κατάλογο. Ο αριθμός αποκρύπτεται μέχρι να δηλώσουν μερικοί, ώστε να μην μπορεί να συναχθεί ένα μεμονωμένο νοικοκυριό. |
| Λίστες πόρων | Κοινές λίστες που μπορούν να επεξεργαστούν όλοι: καταφύγιο και θέρμανση, νερό και προμήθειες, ρεύμα και φόρτιση, και μια λίστα «ποιος μπορεί να βοηθήσει» όπου γράφεται ο καθένας μόνος του. Τα στοιχεία μπορούν να φέρουν ετικέτα τοποθεσίας. | Οποιοσδήποτε στη γέφυρα μπορεί να προσθέσει ή να επεξεργαστεί. Μόνο αυτοκαταχώριση. Κανείς δεν προστίθεται από κάποιον άλλον. |
| Πίνακας | Σύντομες αναρτήσεις με ετικέτα καναλιού (πληροφορία, προσφορά, αίτημα, ερώτηση) και με χρονικό παράθυρο κατά το πόσο πρόσφατες είναι, που αναρτώνται με όνομα που πληκτρολογείς. | Όποιο όνομα πληκτρολογήσεις. Χωρίς λογαριασμό, χωρίς επαληθευμένη ταυτότητα. |
| Εκτυπώσιμο στιγμιότυπο | Μια απόδοση μιας σελίδας στο /coord/print με την καταμέτρηση, τις λίστες και τις τελευταίες αναρτήσεις του πίνακα, για όταν τελειώσουν οι μπαταρίες. | Η ίδια καταμέτρηση, μόνο συγκεντρωτική, οπότε είναι ασφαλές να κολληθεί σε έναν πραγματικό πίνακα. |
Γιατί κρατιέται χωριστά
Η ανάμειξη μεταβλητών σημειώσεων γειτόνων μέσα σε ένα υπογεγραμμένο αρχείο καταγραφής ειδοποιήσεων μόνο προσθήκης θα χαλούσε και τα δύο. Έτσι, ο χώρος αποθήκευσης του συντονισμού είναι κάτι δικό του: μόνο τοπικό δίκτυο, μεταβλητός, και τον διαθέτει η γέφυρα δίπλα στην επαληθευμένη ροή και όχι μέσα σε αυτήν. Ένας διαχειριστής κρατά ένα διακριτικό διαχείρισης για τη συντήρηση, όπως το σβήσιμο δοκιμαστικών δεδομένων ή το κλάδεμα ενός πίνακα που ξέφυγε, και οι διαδρομές διαχείρισης αποτυγχάνουν κλειστά χωρίς αυτό. Η ανάρτηση και η δήλωση δεν χρειάζονται κανένα διαπιστευτήριο. Τα δύο επίπεδα μοιράζονται μια οθόνη, ποτέ ένα όριο εμπιστοσύνης.
Λειτουργία εκτός σύνδεσης
Η υποβάθμιση είναι η αναμενόμενη κατάσταση, όχι σφάλμα. Όταν μια διαδρομή δεδομένων είναι εκτός λειτουργίας, το Meshbell διαθέτει τα τελευταία γνωστά καλά δεδομένα με ετικέτα για την ηλικία τους, «όπως ήταν πριν από 40 λεπτά», αντί για ένα κενό που δείχνει σίγουρο. Η βαθμίδα χωρίς κανένα μοντέλο, ένα παλιό τηλέφωνο χωρίς τίποτα έξυπνο πάνω του, είναι βαθμίδα προϊόντος πρώτης γραμμής. Μια εφαρμογή έκτακτης ανάγκης που λειτουργεί μόνο στον πιο καινούριο εξοπλισμό προδίδει ακριβώς τους ανθρώπους που είναι πιθανότερο να τη χρειαστούν.
Η λήψη τρέχει όσο η εφαρμογή είναι ανοιχτή. Το Meshbell δεν ακούει στο παρασκήνιο ούτε όταν έχει κλείσει, και δεν θα ισχυριστεί ότι το κάνει.
Ασύρματοι και εξοπλισμός
Το Meshbell τρέχει και μόνο στο τηλέφωνό σου. Οι ασύρματοι επεκτείνουν την εμβέλειά του όταν το δίκτυο είναι εκτός λειτουργίας. Ένα πλέγμα γειτονιάς χτίζεται από φθηνό, έτοιμο εξοπλισμό LoRa που τρέχει το ανοιχτό firmware MeshCore.
| Εξάρτημα | Κόστος | Ρόλος |
|---|---|---|
| Ένας συνοδευτικός ασύρματος LoRa, για παράδειγμα ένας κόμβος Heltec | ~$30 | Το τηλέφωνό σου κάνει σύζευξη μαζί του μέσω Bluetooth για να στέλνει και να ακούει δελτία. Ένας συνοδευτικός ασύρματος εξυπηρετεί ένα τηλέφωνο τη φορά. Αν τον κρατά άλλο τηλέφωνο ή άλλη εφαρμογή, το δικό σου το λέει καθαρά αντί να γυρίζει στο κενό. |
| Περισσότεροι ασύρματοι σε όλη τη γειτονιά | ~$30 ο καθένας | Καθένας είναι μια αναπήδηση, και καθένας επαναλαμβάνει μια εγγραφή μία φορά και μετά σταματά, ώστε ο αέρας να μένει καθαρός. Τρεις ή περισσότεροι αρχίζουν να δίνουν πραγματική εμβέλεια πολλών αναπηδήσεων, από τετράγωνο σε τετράγωνο και πάνω από κορυφογραμμές. |
| Μια πάντα ανοιχτή γέφυρα, συνήθως ένα Raspberry Pi | ~$50-80 | Κρατά ένα ανθεκτικό αρχείο καταγραφής και το διαθέτει μέσω τοπικού Wi-Fi στη port 4190. Θα χρησιμοποιήσει σύνδεση προς το internet όταν υπάρχει, και δεν χρειάζεται καμία. |
Ρυθμίσεις ασυρμάτου για τις ΗΠΑ. Ο πάγκος δοκιμών αναφοράς του Meshbell τρέχει στα 910.525 MHz, bw 62.5 kHz, sf7, cr 4/5, μέσα στη ζώνη 902-928 MHz που δεν απαιτεί αδειοδότηση, με φάκελο σύνδεσης συνοδευτικού ασυρμάτου 172 B. Διάβαζε πάντα πίσω τη διαμόρφωση του ασυρμάτου σου πριν εκπέμψεις. Η προεπιλογή της περιοχής μπορεί να είναι μια ζώνη για την οποία δεν έχεις άδεια.
Ζώνες ασυρμάτου ανά περιοχή
Το τηλέφωνό σου δεν έχει ασύρματο LoRa μέσα του, οπότε δεν αγγίζει ποτέ τη ζώνη. Αυτή τη ρύθμιση την κατέχει το ίδιο το firmware του ασυρμάτου. Το Meshbell διαβάζει τον συντονισμό από τον ασύρματο όταν συνδέεται, τον εμφανίζει, και λέει καθαρά όταν ο ασύρματος δεν είναι στο κανάλι που χρησιμοποιεί η περιοχή σου.
Τα 910.525 MHz είναι ο σταθμός της Βόρειας Αμερικής. Κάθε περιοχή παρακάτω έχει το δικό της κανάλι, τοποθετημένο μέσα στη ζώνη χωρίς αδειοδότηση που επιτρέπει εκείνη η περιοχή. Όπου η κοινότητα του MeshCore δημοσιεύει συνιστώμενο κανάλι για μια χώρα, το Meshbell υιοθετεί ακριβώς εκείνο το κανάλι και τις ρυθμίσεις του, ώστε οι αναμεταδότες MeshCore που ήδη στέκονται εκεί να μπορούν να μεταφέρουν δελτία Meshbell. Όπου η κοινότητα δεν έχει δημοσιεύσει κανένα, το Meshbell επιλέγει ένα κανάλι που βρίσκεται μακριά από το πιο πολυσύχναστο μέρος της ζώνης.
| Περιοχή | Ζώνη | Κανάλι Meshbell | Κύκλος εκπομπής ή ακρόαση πριν από την εκπομπή |
|---|---|---|---|
| Ηνωμένες Πολιτείες και Καναδάς | 902-928 MHz | 910.525 MHz | Χωρίς όριο κύκλου εκπομπής, οπότε μια γέφυρα μπορεί να εκπέμπει σήμα όσο συχνά χρειάζεται. Έως 36 dBm, μαζί με την κεραία. Αυτή είναι η ίδια η σύσταση του MeshCore για τις Ηνωμένες Πολιτείες και τον Καναδά, οπότε οι υπάρχοντες αναμεταδότες MeshCore εδώ μπορούν να μεταφέρουν δελτία Meshbell. |
| Ευρώπη και Ηνωμένο Βασίλειο | 869.4-869.65 MHz | 869.618 MHz · sf8 · cr 4/8 | Κύκλος εκπομπής 10%, περίπου έξι λεπτά χρόνου εκπομπής την ώρα. Έως 29 dBm. Το Ηνωμένο Βασίλειο εφαρμόζει τα ίδια όρια, οπότε δεν έχει ξεχωριστή ρύθμιση. Αυτή είναι η ίδια η σύσταση του MeshCore για την Ευρώπη και το Ηνωμένο Βασίλειο, οπότε οι υπάρχοντες αναμεταδότες MeshCore εδώ μπορούν να μεταφέρουν δελτία Meshbell. |
| Τσεχία | 869.4-869.65 MHz | 869.432 MHz | Ο ίδιος κύκλος εκπομπής 10% και το ίδιο ανώτατο όριο 29 dBm με την Ευρώπη, σε δικό της κανάλι. Αυτή είναι η ίδια η σύσταση του MeshCore για την Τσεχία, οπότε οι υπάρχοντες αναμεταδότες MeshCore εκεί μπορούν να μεταφέρουν δελτία Meshbell. |
| Κάτω Χώρες | 869.4-869.65 MHz | 869.618 MHz | Ο ίδιος κύκλος εκπομπής 10% και το ίδιο ανώτατο όριο 29 dBm με την Ευρώπη. Αυτή είναι η ίδια η σύσταση του MeshCore για τις Κάτω Χώρες, οπότε οι υπάρχοντες αναμεταδότες MeshCore εκεί μπορούν να μεταφέρουν δελτία Meshbell. Μοιράζεται τη συχνότητα της Ευρώπης αλλά τρέχει τα προεπιλεγμένα sf7 και cr 4/5, οπότε τα δύο δεν ακούν το ένα το άλλο ακόμη και στην ίδια συχνότητα. |
| Πορτογαλία | 869.4-869.65 MHz | 869.618 MHz · cr 4/6 | Ο ίδιος κύκλος εκπομπής 10% και το ίδιο ανώτατο όριο 29 dBm με την Ευρώπη. Αυτή είναι η ίδια η σύσταση του MeshCore για την Πορτογαλία, οπότε οι υπάρχοντες αναμεταδότες MeshCore εκεί μπορούν να μεταφέρουν δελτία Meshbell. Μοιράζεται τη συχνότητα της Ευρώπης αλλά τρέχει sf7 και cr 4/6, οπότε τα δύο δεν ακούν το ένα το άλλο ακόμη και στην ίδια συχνότητα. |
| Αυστραλία | 915-928 MHz | 916.575 MHz · cr 4/8 | Χωρίς όριο κύκλου εκπομπής. Έως 30 dBm. Η ζώνη ξεκινά εδώ από τα 915 MHz, οπότε το κανάλι της Βόρειας Αμερικής δεν είναι νόμιμο. Αυτή είναι η ίδια η σύσταση του MeshCore για την Αυστραλία, οπότε οι υπάρχοντες αναμεταδότες MeshCore εκεί μπορούν να μεταφέρουν δελτία Meshbell. |
| Νέα Ζηλανδία | 915-928 MHz | 917.375 MHz | Χωρίς όριο κύκλου εκπομπής. Έως 30 dBm. Η ζώνη ξεκινά και εδώ από τα 915 MHz, οπότε το κανάλι της Βόρειας Αμερικής δεν είναι νόμιμο. Αυτή είναι η ίδια η σύσταση του MeshCore για τη Νέα Ζηλανδία, οπότε οι υπάρχοντες αναμεταδότες MeshCore εκεί μπορούν να μεταφέρουν δελτία Meshbell. |
| Βραζιλία | 915-928 MHz | 923.125 MHz · sf8 · cr 4/8 | Χωρίς όριο κύκλου εκπομπής. Έως 30 dBm. Αυτή είναι η ίδια η σύσταση του MeshCore για τη Βραζιλία, οπότε οι υπάρχοντες αναμεταδότες MeshCore εκεί μπορούν να μεταφέρουν δελτία Meshbell. |
| Νοτιοανατολική Ασία | 920-923 MHz | 921.875 MHz | Κύκλος εκπομπής 10%, όσο στην αυστηρότερη χώρα της ομάδας. Έως 17 dBm. Μία ομαδική ρύθμιση για Ταϊλάνδη, Σιγκαπούρη, Μαλαισία και Ινδονησία, οπότε έλεγξε τη δική σου χώρα πριν αφήσεις μια γέφυρα να τρέχει. Η κοινότητα δεν δημοσιεύει κανάλι για αυτές τις χώρες, οπότε αυτό είναι του ίδιου του Meshbell, επιλεγμένο μακριά από το πιο πολυσύχναστο μέρος του παραθύρου. |
| Βιετνάμ | 920-923 MHz | 920.25 MHz · sf8 | Κύκλος εκπομπής 10%. Έως 17 dBm, και οι κανόνες εδώ αλλάζουν, οπότε έλεγξε τους ισχύοντες πριν αφήσεις μια γέφυρα να τρέχει. Αυτή είναι η ίδια η σύσταση του MeshCore για το Βιετνάμ, οπότε οι υπάρχοντες αναμεταδότες MeshCore εκεί μπορούν να μεταφέρουν δελτία Meshbell. |
| Ινδία | 865-868 MHz | 866.5 MHz | Κύκλος εκπομπής 1%, περίπου 36 δευτερόλεπτα χρόνου εκπομπής την ώρα. Έως 16 dBm. Ο ασύρματος δεν μπορεί να κρατηθεί μόνος του σε τόσο στενό όριο, οπότε η γέφυρα πρέπει να ρυθμίζει τον ρυθμό της. Η κοινότητα δεν δημοσιεύει κανάλι για την Ινδία, οπότε αυτό είναι του ίδιου του Meshbell, επιλεγμένο μακριά από το πιο πολυσύχναστο μέρος της ζώνης. |
| Νότια Κορέα | 920.9-923.3 MHz | 921.4 MHz | Χωρίς όριο κύκλου εκπομπής, αλλά ο ασύρματος πρέπει να ακούει πριν μιλήσει. Έως 23 dBm. |
| Ιαπωνία | 920.6-928 MHz | 924.6 MHz · bw 125 kHz | Κύκλος εκπομπής 10% και ακρόαση πριν από κάθε εκπομπή. Έως 16 dBm. Το μεγαλύτερο εύρος ζώνης είναι αυτό που κρατά μια μεμονωμένη ριπή αρκετά σύντομη για τους κανόνες της Ιαπωνίας. |
| Ρωσία | 864-865 MHz | 864.5 MHz | Κύκλος εκπομπής 0.1%, περίπου 3.6 δευτερόλεπτα χρόνου εκπομπής την ώρα, εκτός αν ο ασύρματος ακούει πριν μιλήσει. Έως 16 dBm. |
Αν μια γραμμή δεν λέει κάτι άλλο, ένα κανάλι τρέχει sf7, cr 4/5 και bw 62.5 kHz. Μια γραμμή που ακολουθεί κανάλι MeshCore φέρει ό,τι χρησιμοποιεί εκείνο το κανάλι, και για αυτό αρκετές δείχνουν διαφορετικό συντελεστή διασποράς ή ρυθμό κωδικοποίησης, ενώ η Ιαπωνία τρέχει bw 125 kHz για να χωρέσει στους κανόνες της. Δύο ασύρματοι ακούν ο ένας τον άλλον μόνο όταν συχνότητα, εύρος ζώνης, συντελεστής διασποράς και ρυθμός κωδικοποίησης ταιριάζουν όλα.
Οι ασύρματοι έρχονται σε δύο οικογένειες, μία κομμένη για 902-928 MHz και μία κομμένη για 863-870 MHz, και μαζί καλύπτουν κάθε περιοχή αυτής της λίστας, αλλά η ζώνη 470 MHz της Κίνας χρειάζεται διαφορετικό τσιπ ασυρμάτου και διαφορετική κεραία, οπότε δεν είναι ρύθμιση στην οποία μπορεί να μεταβεί κανείς.
Τρεις περιοχές δεν είναι έτοιμες. Η Ιαπωνία, η Νότια Κορέα και η Ρωσία προϋποθέτουν έναν ασύρματο που ακούει πριν μιλήσει, και το firmware του MeshCore δεν το κάνει ακόμη, οπότε αυτές οι τρεις μένουν εκτός μέχρι να το κάνει. Μια περιοχή φέρει επίσης ένα ανώτατο όριο ισχύος, και η ισχύς είναι ξεχωριστή ρύθμιση στον ασύρματο, οπότε η αλλαγή του καναλιού δεν είναι το ίδιο με τη μείωση της ισχύος. Διάβαζε πάντα πίσω τη διαμόρφωση του ασυρμάτου σου πριν εκπέμψεις.
Ρύθμιση γέφυρας
Μια γέφυρα είναι ένας πάντα ανοιχτός κόμβος στον δρόμο, συνήθως ένα Raspberry Pi, που μεταφέρει την επαληθευμένη ροή και το επίπεδο συντονισμού μέσω τοπικού Wi-Fi, ώστε το τηλέφωνο ή το πρόγραμμα περιήγησης κάθε γείτονα να μπορεί να τα φτάσει χωρίς δίκτυο κινητής και χωρίς internet. Είναι η δεύτερη από τις δύο συνδέσεις του τηλεφώνου: το Bluetooth φτάνει σε έναν ασύρματο τσέπης, το Wi-Fi φτάνει σε μια γέφυρα, και καθεμιά λειτουργεί χωρίς καθόλου internet.
Αν είσαι ο οικοδεσπότης, ένας προετοιμασμένος γείτονας
Το πρόγραμμα εγκατάστασης περιλαμβάνεται μέσα στην εφαρμογή και εξάγεται κατευθείαν από το τηλέφωνό σου, οπότε δεν κατεβαίνει τίποτα. Αποσυμπίεσέ το στο Pi, τρέξε το script εγκατάστασης, και εμφανίζει τη διεύθυνση που θα μοιράσεις. Ο κόμβος σηκώνεται αυτόνομος: διαθέτει τις οθόνες συντονισμού, μια εγκαταστάσιμη διαδικτυακή εφαρμογή για τους γείτονες που έχουν μόνο πρόγραμμα περιήγησης, έναν κωδικό QR αυτής της διεύθυνσης, και μια προβολή διαχείρισης για τη συντήρηση. Αναγγέλλεται στο τοπικό δίκτυο ως _meshbell._tcp, και την εύρεση την αναλαμβάνει η εφαρμογή. Δεν υπάρχει τίποτα να ρυθμίσεις με το χέρι και κανένας λογαριασμός να δημιουργήσεις.
Αν είσαι γείτονας που δεν έχει ακούσει ποτέ για πλέγμα
Συνδέσου στο Wi-Fi του δρόμου και άνοιξε την καρτέλα Γειτονιά. Η εφαρμογή ψάχνει τη γέφυρα μόνη της και συνδέεται. Όταν η ανακάλυψη χρειάζεται βοήθεια, κάνει τις απλές ερωτήσεις, είναι αυτό το σωστό δίκτυο και είναι ξύπνια η γέφυρα, και προσφέρει πεδίο χειροκίνητης διεύθυνσης. Αν ένας υπολογιστής φτάνει στη γέφυρα αλλά αυτό το τηλέφωνο όχι, τα δύο βρίσκονται σχεδόν πάντα σε διαφορετικά δίκτυα Wi-Fi.
Η γέφυρα παραδίδει, δεν αποφασίζει ποτέ. Μια γέφυρα μπορεί να προωθήσει μια επαληθευμένη ειδοποίηση, αλλά δεν μπορεί να κάνει καμία αληθινή. Οι υπογραφές ελέγχονται στη δική σου συσκευή, και σε ένα απλό πρόγραμμα περιήγησης ελέγχονται μέσα σε εκείνο το πρόγραμμα περιήγησης. Μια παραβιασμένη ή κακόβουλη γέφυρα μπορεί να ρίξει ή να καθυστερήσει μηνύματα. Δεν μπορεί ποτέ να πλαστογραφήσει ένα αξιόπιστο. Για αυτόν τον λόγο το μοντέλο εμπιστοσύνης ζει στο τηλέφωνο και όχι στον κόμβο.
Αρχιτεκτονική
Η λογική του πεδίου είναι καθαρή και φορητή. Χτίζεται και δοκιμάζεται σε ένα Raspberry Pi χωρίς κανένα μηχάνημα της Apple στον βρόχο, οπότε τα μέρη που αποφασίζουν αν ένα μήνυμα είναι αξιόπιστο επαληθεύονται συνεχώς και όχι μόνο στην κυκλοφορία. Η εφαρμογή iOS είναι ένα λεπτό στρώμα απεικόνισης πάνω από αυτήν.
- Το κανονικό JSON, με ταξινομημένα κλειδιά και καρφωμένο ASCII, δίνει σε κάθε συσκευή μια προεικόνα πανομοιότυπη ανά byte, ώστε μια διεύθυνση περιεχομένου που υπολογίζεται σε τηλέφωνο να ταιριάζει με μία που υπολογίζεται σε κόμβο.
- Υπογραφή και επαλήθευση Ed25519, μία υλοποίηση σε Apple και Linux.
- Ένα αρχείο καταγραφής μόνο προσθήκης, μόνο εισαγωγής. Οι εγγραφές δεν ενημερώνονται και δεν διαγράφονται ποτέ, οπότε το ιστορικό, μαζί με τις διορθώσεις, διατηρείται και μπορεί να ξαναελεγχθεί.
- Μια πύλη συμμόρφωσης μεταξύ γλωσσών: τα ίδια πλαίσια αποκωδικοποιούνται από την εφαρμογή και από έναν ανεξάρτητο κόμβο Python και ελέγχονται byte προς byte, ώστε τα δύο να μην μπορούν να αποκλίνουν σιωπηλά.
Ειλικρινή όρια
Δηλωμένα καθαρά, γιατί ένα εργαλείο έκτακτης ανάγκης που υπερβάλλει για τον εαυτό του είναι επικίνδυνο.
- Το Meshbell είναι μια πρώιμη beta. Έχει μεταφέρει ένα υπογεγραμμένο δελτίο μέσα από πραγματικούς ασυρμάτους LoRa και το επαλήθευσε σε τηλέφωνο. Δεν αντικαθιστά τις επίσημες υπηρεσίες έκτακτης ανάγκης, οπότε κράτα ενεργοποιημένες τις ειδοποιήσεις που ήδη έχεις.
- Η επίδοση στον πάγκο δοκιμών είναι μία μόνο αναπήδηση. Η αναμετάδοση πολλών αναπηδήσεων είναι σχεδιασμένη και υλοποιημένη, όχι όμως ακόμη μετρημένη στο πεδίο, και καμία τιμή απόστασης σε αυτόν τον ιστότοπο δεν έχει μετρηθεί στον πάγκο δοκιμών.
- Οι εγγραφές που είναι πολύ μεγάλες για ένα πλαίσιο χωρίζονται, και η επανασυναρμολόγηση πολλών τμημάτων δεν έχει ακόμη παρατηρηθεί να ολοκληρώνεται στο τηλέφωνο στον πάγκο δοκιμών. Μια ελλιπής ομάδα παραμένει προεπισκόπηση και το λέει.
- Τα κλειδιά υπογραφής ζουν στην κλειδοθήκη του iOS, μόνο σε αυτή τη συσκευή. Μπορούν να εξαχθούν από οτιδήποτε μπορεί ήδη να διαβάσει την κλειδοθήκη της εφαρμογής. Δεν υπάρχει εδώ προστασία από θύλακα υλικού και δεν θα ισχυριστούμε ότι υπάρχει.
- Οι εγγραφές είναι υπογεγραμμένες, όχι κρυπτογραφημένες. Το Meshbell δεν είναι ιδιωτική ανταλλαγή μηνυμάτων. Θεώρησε ότι ό,τι βρίσκεται στον αέρα μπορεί να διαβαστεί από οποιονδήποτε είναι σε εμβέλεια.
- Η διανομή κλειδιών, δηλαδή το πώς μαθαίνει η συσκευή σου ποιο δημόσιο κλειδί ανήκει σε ποιον, βρίσκεται σε εξέλιξη. Μια υπογραφή αποδεικνύει την κατοχή κλειδιού. Η σύνδεση ενός κλειδιού με έναν πραγματικό άνθρωπο είναι ξεχωριστό και συνειδητό πρόβλημα, που σήμερα λύνεται με συνάντηση από κοντά.
- Η λήψη τρέχει μόνο όσο η εφαρμογή είναι ανοιχτή. Δεν υπάρχει ακρόαση στο παρασκήνιο.
- Το επίπεδο συντονισμού είναι μη επαληθευμένο εκ σχεδιασμού και ξεχωριστό από το υπογεγραμμένο κανάλι ειδοποιήσεων. Είναι χρήσιμο για τα πρακτικά, ποτέ πηγή επίσημης οδηγίας, και είναι μόνο τοπικού δικτύου, οπότε φτάνει σε όποιον βρίσκεται στη γέφυρα και όχι στο ευρύτερο πλέγμα.
- Το Meshbell δεν διαλειτουργεί σήμερα με ασυρμάτους Meshtastic στον αέρα.