MeshCore Regions

Viele von euch haben sicher schon von den “Regions” gelesen oder das Video gesehen.

Mit dem neuen Release 1.10.0 wurden dazu die ersten Schritte veröffentlicht. Wirklich fertig ist das Feature nicht, aber da wir alle gerne experimentieren wollte ich das hier mal erläutern.

Das Problem

All Nachrichten in Channels, egal ob verschlüsselt oder nicht werden per Flood Routing über das Netz verbreitet. Das heisst, sämtliche Repeater welche diese Channel Nachrichten erhalten repetieren diese auch.

Wenn jetzt also zum Beispiel Abends im #freiburg diskutiert wird, dann wiederholen auch alle Repeater in der Schweiz diese Nachrichten und sämtliche unsere Companion Nodes erhalten diese, auch wenn man nicht im Channel ist. Auch wenn wir in #switzerland diskutieren machen da alle Repeater in Deutschland und in Österreich mit.

Das führt zu sehr viel Traffic auf unserem Mesh die eigentlich nicht nötig ist. Langfristig wird das zu einer Überlastung führen, es kann nicht jeder Repeater jede Nachricht von ganz Europa wiederholen.

Die Lösung

Der Lösungsansatz hier sind eben diese Regions. In Zukunft wird man definieren können in welche Region man eine Nachricht senden möchte, auf den Repeatern kann man Regionen hinzufügen und diese aktivieren.

Wenn man dann beim senden einer Nachricht eine Region an gibt, dann wiederholen nur Repeater diese Nachricht welche diese Region auch frei geschalten haben.

Keine Angst, das ist eine zusätzliche Funktion und beinflusst das aktuelle Verhalten nicht. Wenn man beim Senden einer Nachricht keine Region definiert, dann wiederholen wie bisher auch alle Repeater diese Nachricht.

Wenn man in Zukunft eine Nachricht sendet und angibt das man die nur in die Region #CH senden möchte, dann werden die Repeater welche diese Region nicht aktiviert haben diese auch nicht wiederholen.

Regionen auf Repeatern definieren

Ich hatte echt noch nicht viel Zeit, aber es funktioniert noch nicht alles was Andy im Video zeigt auch im Remote Management von Repeatern. Aber das funktioniert bereits…

Hinzufügen eine Region mit diesem Befehl im Terminal direkt in der App wenn man auf einen Repeater eingeloggt ist, in diesem Beispiel die Region #CH.

region put #CH

Aktivieren einer Region mit diesem Befehl im Terminal direkt in der App wenn man auf einen Repeater eingeloggt ist, in diesem Beispiel die Region #CH.

region allowf #CH

Die wichtigsten Punkte

  • Ziel ist es die Traffic durch Channel-Messages zu minimieren.

  • Im Moment muss man noch gar nichts tun. Man kann Repeater auf 1.10.0 aktualisieren und die funktionieren wie bisher weiter.

  • Das Feature ist nicht fertig, es gibt in der MeshCore App zum Beispiel noch keine einfache Art die Region zu setzen beim senden von Nachrichten.

Ich habe hier selber echt noch nicht viel Erfahrung, lasst uns wissen was ihr hier heraus gefunden habt. Und falls ihr das anderst verstanden habt, dann gebt mir Bescheid, ich lerne noch so gerne dazu!

Auf dem Repeater CHIX Hasenmatt ist die Region #CH bereits frei geschalten und aktiviert.

Die Regionen sind frei definierbar, #CH ist einfach nur mein Vorschlag für die Region Schweiz.

@chrigu hat hier die Dokumentation zu allen Befehlen gefunden:

Dazu mal eine Frage.

Habe heute auf meinem Repeater Zuhause, die Region #CH eingestellt. Natürlich auch allowf #CH. Droppt mein Repeater jetzt nicht sämtliches Anderes wenn denn theoretisch, was ja aktuell nicht der Fall ist, jemand etwas sendet wenn dessen Repeater/Companion nicht #CH ist?

Zudem sehe ich auf dem Meshanalyzer dass z.B bei CHIX Hasenmatt diverse Regions hinterlegt sind. Wie verwendet ihr diese in der Realität? Entschuldigt die ganzen Fragen, aber ich will das Zeug hier vernünftig aufbauen und frage daher lieber mal zu viel. Bringt ja nichts wenn meine Repeater im Oberwallis nicht „compliant“ zu allen Anderen wären und potentielle Nutzer das Netzwerk nicht brauchen könnten weil sie die Regions-Option nicht kennen oder aber ich falsch definiert habe.

1 Like

Achtung, diese Regions in MeshCore Analyzer haben mit den Message Scope Regions nicht gemeinsam.

Im Analyzer werden Regions verwendet, um den ungefähren Standort der Datensammler zu definieren. Diese Regions tragen Namen gemäss dem nächsten Flughafen:

2 Likes

Das beantwortet schon Mal eine weitere Frage die ich hatte :grin: Danke :+1:

1 Like

Wollte grad mekern, habe nämlich auf dem Hasenmatt noch nicht wirklich Regions konfiguriert :wink:

Meiner Meinung nach ist es nach wie vor zu früh um sich mit diesem Thema rum zu schlagen, es ist in der App nach wie vor noch nicht implementiert. Somit ist das Feature eh noch nicht recht zu gebrauchen und wir müssen uns dazu noch nicht wirklich Gedanken machen.

Hoffe ich bin noch Up-To-Date.

Guten Abend.

Das mit den Regions interessiert mich auch brennend. Eigentlich nicht für mich persönlich aber, für die Kollegen südlich von uns. Das Thema region ist plötzlich aktuell geworden, ich weiss nicht wieso. Ich habe nur ein paar Fragen: funktionieren die verschiedenen Befehle welche diese Einstellungen betreffen? Wenn ja, nur mit spezieller Firmware?

Was ich herausgefunden habe, nicht so erfreuliches, ist folgendes:

Ich bin als Admin in meinen rpt, alles bestens, habe in CLI ein paar Bfehle ausgeführt, alles gut, bis ich den Befehl “region load” eingegeben habe. Nach diesem Befehl ist es nicht mehr möglich Befehle über CLI einzugeben, oder irgendwelche Befehle in der Setting Seite auszuführen. Kein Advert, nichts. Status funktioniert ab und zu noch aber sonst geht nichts mehr. Neustart bringt nichts aber der rpt funktioniert normal.

Das ist der Grund warum ich mehr über diese Befehle erfahren möchte.

Einen schönen Abend an alle.

73 de Rolf

Hier gibts News:

Möge die Planung beginnen. Eine vermutl. nicht allzu einfache Aufgabe. Ideen sammeln?

Wir sind hier in der Schweiz ja noch nicht wirklich am Anschlag und MeshCore funktioniert nach wie vor sehr gut, auch ohne die Regions. Es wäre aber sicher spannend das zu lernen und die Repeater bereits richtig zu konfigurieren. Mein Vorschlag wäre wie folgt:

  1. Auf all unseren Repeatern fügen wir die Region #CH dazu.
  2. Wer möchte kann zusätzlich noch den Kanton einfügen, oder mehrere falls die an Grenzen stehen. Da würde ich die offiziellen Abkürzungen empfehlen, also zum Beispiel: #ZH, #BE, #VS und so weiter.

Mein CHIX Hasenmatt werde ich mal so konfigurieren, ist aber noch nicht erledigt:

  1. Ich werde weiterhin alle Nachrichten erlauben, der Repeater wird also auch Nachrichten welche nicht einer Region zugeordnet sind weiter senden.
  2. Für die Schweiz Region #CH hinzufügen.
  3. Für die Kantone werde ich noch die Regionen #SO #BE und #JU einfügen.

Was meint ihr dazu?

2 Likes

Der Vorschlag, bei allen Repeatern #CH plus den Standortkanton des Repeaters, und - sollte er grössere Bereiche der Nachbarkantone - abdecken, diese ebenfalls einzutragen, ist praktikabel.

Zu Bedenken möchte ich aber trotzdem geben, dass wir damit ein neues Abfragesystem, das nach Kantonskürzeln einführen. Das macht die Sache für uns relativ einfach - bei einem grenzüberschreitenden Mesh oder für Touristen mit einem Node im Gepäck könnte es kompliziert werden. Zudem konstruieren wir glaub grad eine Insellösung…!

Das bestehende Abfragesystem ist auf dem MeshCore Analyzer implementiert: Filter Regions / ‘Switzerland’

‘Switzerland’ umfasst dann alle IATA-Codes der Schweizer Flughäfen, welche ihrerseits ebenfalls einzeln ausgefiltert werden können.
Für Repeater Admins würde das bedeuten: #CH = Region Switzerland und den passenden dreistelligen IATA - Code des nächsten Schweizerischen Landes- oder Regionalflughafen einzutragen. → IATA-Codes: Liste der Flughäfen in der Schweiz – Wikipedia

Unser topografisches Gebiet würde somit in acht Repeater-Regionen eingeteilt. Das ist meines Erachtens absolut genügend für ein Mesh.
Spannend wäre es in Erfahrung zu bringen, wie das unsere Nachbarn rundherum zu handhaben gedenken. Es sollte mit den Regionencodes doch irgendwie harmonisiert sein… genau wie die Radioeinstellungen.

1 Like

Ich würde auch „grosszügig“ starten. Ein gutes Namensschema zu finden wäre hilfreich. Hier habe ich auch noch Ideen gefunden: meshcore:allgemeines:regions [MeshCore Wiki DE]

Dazu kurz eine „Vorsicht!“-Meldung. Ich hab das mit den Regions mal probiert und, wahrscheinlich, scharf gestellt. Die Konsequenz war, dass mein eigener Repeater zwar per Remote-Admin noch verfügbar war, aber ALLES was Text beinhaltet hat, also auch CLI usw. dann gedroppt hat und mich mit Schweigen gestraft hat. Hab das Ding dann neu geflashed und fertig :sweat_smile:

1 Like

Guten Morgen zusammen

Nach erneutem drüber nachdenken, finde ich die Regions zwar allesamt sehr spannend, habe aber Zweifel ob dies so nicht zu Problemen führen wird. Zumindest am Anfang. Wir die hier drin sind, sind ja gut organisiert. Aber wie sieht es bei den Leuten aus die nicht wirklich aktiv hier in der Community sind? Man kann die Meldung dass man Regions scharf stellt zwar gut über #switzerland kommunizieren, aber auch da bedarf es wieder der aktiven Anwesenheit der entsprechenden Leute. Ohne zu wissen wie viele Leute aktiv die Bewegung in Meshcore mitbekommen, wird das vielleicht bei Einigen eher passiveren Meshcore-Nutzern zu anfänglichen Problemen führen.

Gehen wir mal davon aus dass ich hier im Wallis meine eigene Suppe koche (wobei… aktuell stimmt das irgendwie) und von allem nichts mitbekomme. Irgendwann hab ich das Wallis komplett erschlossen (wohl Wunschdenken) und erreiche ENDLICH den Rest der Schweiz. Nur werden meine Nachrichten überall gedropped weil keine Regionen definiert sind bzw. ihr Regionen scharf habt und ich nicht. Denke mal ich würde gefrustet sein :sweat_smile: Vielleicht würde ich mich dann im Internet umsehen um zu schauen wo das Problem liegt. Aber irgendwann wird der Tag X kommen, wo die Regionen nicht nur definiert sind, sondern auch geladen werden müssen da wir sonst einfach ohne Regions weiterfahren können.

Meiner Meinung nach müssen wir schauen, dass da so lange Vorlaufzeit wie möglich herrscht. In der Hoffnung, dass es alle mitbekommen und anwenden. Sonst werden wir, wie @Paul_Simmen bereits angedeutet hat, irgendwann eine Art Insel bilden. Wenn nur ein wichtiger Repeater falsch konfiguriert wird und Pakete droppt die er sonst weitergeleitet hat, kann es schon zu grossen Problemen führen. Und da nicht jeder hier aktiv ist, sehe ich die Gefahr dafür als gross an. Natürlich hoffe ich, dass ich mich Irre.

Aber bevor das Ganze irgendwann wirklich scharf wird, muss ein verständliches, schlaues und vor allem EINHEITLICHES System für die Regionen her. Und desto einfacher desto besser. Und ich denke es wäre gut, wenn es eher so konfiguriert wird dass es nicht die optimale Menge an Traffic minimiert, sondern mit dem möglichst geringen Potential, Nutzer auszusperren weil es zu sehr konfiguriert ist.

Das zumindest meine Meinung dazu. #VS, #CH zu konfigurieren wird bei mir nicht das Problem sein. Wenn man aber nun die Idee von Paul verfolgt - ja welchen Flugplatz hinterlege ich jetzt? Regional und/oder Hauptflughafen in meiner Nähe? Ich habe zwei. Soll ich jetzt beide? Nur einen? Ich bin mitten im Kanton. Soll ich jetzt die Nachbarkantone jetzt auch konfigurieren? Ich habe im Wallis Hilfe von einem Repeater in Interlaken bekommen - soll ich den nun auch konfigurieren bzw diese Region?

Solche Fragen und viele Weitere werden sich nicht nur mir stellen, sondern vor allem denjenigen, die dann plötzlich die Regionen definieren müssen weil wir alle scharf geschalten sind. Daher müssen wir das unbedingt sauber, einfach verständlich und auch anwendbar gestalten.

Das muss, man verzeihe mir den Ausdruck, idiotensicher werden weil es andernfalls zu kleinen Inseln führen wird und wahrscheinlich zusätzlich teilweise zu Reichweitenverlusten da einzelne Repeater oder ganze Repeater-Gruppen plötzlich nicht mehr verfügbar werden.

Eventuell bin ich da auch etwas übervorsichtig. Aber es wäre Schade wenn die theoretische Vernetzung über Ländergrenzen hinaus kaputt gehen würde.

Liebe Grüsse

Silvio

1 Like

Ich finde die Diskussion die wir hier haben sehr wichtig un konstruktiv, besten Dank für eure Rückmeldungen!

Wir könnten es für den Moment auch extrem einfach halten und als Good Practice anfangen bei den Repeatern zumindest die Region #ch zu setzen. So könnten wir anfangen Erfahrungen zu sammeln und dann auf Basis von denen die nächsten Schritte definieren. Im moment funktioniert ja alles, wir müssen hier nicht kurzfristig was machen um ein Problem zu lösen.

Das macht man mit diesen Befehlen:

region put #ch
region allowf #ch
region save

Die MeshCore App forciert #ch, #CH geht also nicht. #switzerland finde ich verwirrend weil so unser Channel heisst.

Eine Insel-Lösung bauen wir ja damit noch nicht, das würden wir erst sobald wenn wir den Repeatern nicht mehr erlauben, Nachrichten ohne Region zu wiederholen. Mit den oben vorgeschlagenen Lösung werden alle anderen Nachrichten ganz normal weiter geleitet, das resultiert in keinen Einschränkungen.

3 Likes

Ich bin auch dafür, defensiv vorzugehen. Die Idee mit einer #ch Region finde ich gut um zu Starten, v.a. weil wir ja seit Beginn den Kanal #switzerland haben, um ja genau so eine regionale Gruppe zu definieren. Wenn sich nun der Verkehr auf diese Gruppe begrenzen lässt, umso besser.

Gemäss Blog ist es so, dass der Scope, also welche Region zum Zuge kommt, beim Versenden eingestellt wird, nicht beim Empfangen. Die Verantwortung liegt also auch beim Sender der Nachricht. Empfangen kann er weiterhin alles.

Die Apps werden Features haben, mit denen man nach Regionen scannen kann. Ich denke, dass die Anwender der Apps sich mit der Zeit an diese (neuen) Workflows gewöhnen werden. Also dass man schaut, was es für Regionen gibt beim Einrichten der App.

Dass Kanäle und Regions beide mit #-Tag beginnen, finde ich sehr unglücklich und verwirrend. Das wird Probleme geben.

Soweit ich auf der Seite von Ripple gelesen habe, geht leider wohl nur Bindestrich oder Hashtag. Aber ich bin da ganz bei dir dass das nicht so ideal gelöst ist. Wobei man nun aber wieder denken können müsste, dass sich jemand einen Repeater nur dann hinstellen wird, wenn er in Meshcore etwas Fuss gefasst hat und die Unterschiede somit kennen wird.

Aber da sind wir wieder beim Thema „idiotensicher“.

Eine andere „Sorge“ die ich habe war das Verhalten meines Repeaters auf der aktuellen Release-Version sobald ich die #ch Einstellung geladen hatte. Ging ja hier im Thema noch jemandem so. Der Repeater schickte keine Text beinhaltenden Sachen zurück. Weder auf CLI Basis, noch sonst irgendwas Text basiertes. Da stellt sich mir zwangsweise die Frage ob es „bad luck“ war oder ein allgemeines Problem. Meine Repeater sind alle brav Zuhause in der Sonne und ich komm problemlos ran. Wenn solche Sachen aber bei einem Repeater an einem schlecht erreichbaren Ort passiert, sperrt man sich eventuell aus.

Kann das eventuell noch jemand anderes mal versuchen zu verifizieren?

1 Like

Das stimmt. Es ist verwirrend. Ich habe es so verstanden:

  • #switzerland channel (Gruppe) → logische Einheit
  • #ch region (Routing) → technische Einheit

Evtl. könnte man auch beide Einheiten gleich benennen. Weniger ist mehr. Einmal ist es der channel, und einmal die region. Beide heissen gleich. Dann muss man “nur” noch den Unterschied von channel und region lernen.

Ich kann mich schon arrangieren, wie auch immer die Lösung ausschaut. Aber wie erklären wir das dem Standardbenutzer? Was wäre intuitiv verständlich?

  • Sollte man alle Regions mit „#r-„ beginnen?
  • Sollte man bei den Entwicklern beantragen, dass für Regions kein #-Tag verwendet werden soll? Dafür ist es wohl schon zu spät…
  • Ideen?

Hier noch die Erklärung für die Hashtags:

Discord

1 Like