Fragen zu den JSON strings

Benutzeravatar
aiQon
Windoof-User
Windoof-User
Beiträge: 32
Registriert: 9. Dez 2010 18:23
Wohnort: Darmstadt

Fragen zu den JSON strings

Beitrag von aiQon »

hey,
ich hab alles fertig bis auf die MS geschichten, meine Fragen:
1) ist die reihenfolge der key/value pairs relevant? konkretes beispiel: folie 34. kann statt key: value, neighbours: values auch stehen neighbours: values, key:value?
2) wenn ich meine neighbors liste und mehrfacheinträge in meinen finger tables habe, kann ich die mehrfacheinträge einfach in den JSON string klatschen oder soll ich die erst unique machen?

Cheers, stas
weeks of coding can save hours of planing

Benutzeravatar
BadTaste
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 181
Registriert: 18. Apr 2005 16:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Fragen zu den JSON strings

Beitrag von BadTaste »

Hi,

zu 1) Nein, verwendet bitte das Format, wie in den Folien angegeben.

zu 2) Doppelte Einträge bitte rauswerfen.

Benutzeravatar
aiQon
Windoof-User
Windoof-User
Beiträge: 32
Registriert: 9. Dez 2010 18:23
Wohnort: Darmstadt

Re: Fragen zu den JSON strings

Beitrag von aiQon »

1) mit einrückungen? (frage nach dem sinn)
weeks of coding can save hours of planing

Benutzeravatar
BadTaste
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 181
Registriert: 18. Apr 2005 16:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Fragen zu den JSON strings

Beitrag von BadTaste »

Die Einrückungen müssen natürlich nicht aus den Folien übernommen werden.
Hierbei ist nur wichtig, dass die Strings korrekt vom MS interpretiert werden können, es sich also um Standard-konformes JSON handelt.
Ist dies nicht gegeben, gibt der MS eine Fehlermeldung aus.

Benutzeravatar
aiQon
Windoof-User
Windoof-User
Beiträge: 32
Registriert: 9. Dez 2010 18:23
Wohnort: Darmstadt

Re: Fragen zu den JSON strings

Beitrag von aiQon »

das ist doch zum *** :<

geht sowas nicht:
{"neighbors": ["fef311b06", "1bf1695e80", "29029f88ad", "45741be1c4", "92192e52f9", "cc96effd79"], "key": "3f3aed300"}

ich krieg ums verrecken in python 2.6 keine ordnung in die json ausgabe...
weeks of coding can save hours of planing

z.z.
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 2. Apr 2008 11:44
Kontaktdaten:

Re: Fragen zu den JSON strings

Beitrag von z.z. »

Das Problem ist, dass Java im Gegensatz zu dynamisch typisierten Sprachen wie Python, JavaScript oder PHP eine feste Struktur für das JSON braucht. Dies widerspricht zwar der Idee von JSON, wir haben uns aber dennoch für JSON entschieden weil es ein einfaches schlankes Format ist.

Wir verwenden die Bibliothek GSON, in der man wie bereits erwähnt eine Struktur des erwarteten JSON-Strings angeben muss. Wenn hier jemand eine bessere Bibliothek kennt wären wir natürlich dankbar über einen Tipp.

Zu deinem speziellen Problem: Der Pyhon JSON Encoder hat eine Option sort_keys über die gesteuert werden kann ob die Keys sortiert werden sollen, oder nicht. Da du aber wahrscheinlich ein Dictionary verwendest wird dir das nicht helfen, da Dictionarys Hash-Tabellen sind und die Keys nicht sortiert sind. Die pragmatische Lösung wäre also den JSON-String "von hand" zusammenzusetzen.

VMann
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 16. Apr 2009 11:51

Re: Fragen zu den JSON strings

Beitrag von VMann »

Ich bin mir nicht so ganz sicher, ob ich die Formatvorgaben richtig verstanden habe.

1) ist der Wert nach "Key" die eigene Adresse?
2) wird so eine Adresse zusammengesetzt aus der Hex-Darstellung von IP+Port+ChordID?
3) gibt es einen Unterschied zwischen MS_Neighbors und MS_CHORD_ROUTING_TABLE, ausser das beim zweiten predecessor und successor explizit ausgewiesen werden? (und wieso wird hier ein Plural verwendet?)


Und gibt es irgendwo eine Dokumentation zur gson library? Ich bin mir nicht so sicher, was genau die gson methoden machen, insbesondere wenn es ums konvertieren in einen json-string geht.
Computer tun nicht das, was du von ihnen willst, sie tun das, was du ihnen sagst.

Benutzeravatar
BadTaste
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 181
Registriert: 18. Apr 2005 16:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Fragen zu den JSON strings

Beitrag von BadTaste »

Hi,

1) key ist der eigene Identifier in Hex-Repräsentation (nicht die Adresse).
2) Wie gesagt, Hex-Repräsentation des Identifiers.
3) Wie du richtig sagst, werden bei MS_CHORD_ROUTING_TABLE successor(s) und predecessor(s) explizit angegeben.
Plural wurde hier verwendet (genauso wie ein JSON-Array), weil wir zunächst überlegt hatten mehrere successors / predecessors speichern zu lassen und Replikate der gespeicherten Daten abzulegen. Zur Vereinfachung haben wir uns aber dagegen entschieden.

sge
Mausschubser
Mausschubser
Beiträge: 80
Registriert: 3. Okt 2007 10:49
Wohnort: Darmstadt

Re: Fragen zu den JSON strings

Beitrag von sge »

Hi,
ich habe auch noch mal eine Frage zu dem MS_CHORD_ROUTING_TABLE-Reply.
Sollen bei dieser Nachricht bei den Fingern auch -- wie bei den neighbors der MS_NEIGHBORS-Message -- die doppelten Einträge entfernt werden, oder erwartet ihr dort die vollständige Fingertable?

Benutzeravatar
BadTaste
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 181
Registriert: 18. Apr 2005 16:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Fragen zu den JSON strings

Beitrag von BadTaste »

Wir erwarten die vollständige Finger Table, d.h. dass sicherlich auch doppelte Einträge vorkommen werden.

Thorsten Peter
Windoof-User
Windoof-User
Beiträge: 27
Registriert: 18. Mai 2009 23:40

Re: Fragen zu den JSON strings

Beitrag von Thorsten Peter »

Hmmm, in unserer FingerTable werden Duplikate automatisch rausgeworfen (Datenstruktur Set).... Müssen wir das jetzt nochmal ändern?

Benutzeravatar
BadTaste
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 181
Registriert: 18. Apr 2005 16:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Fragen zu den JSON strings

Beitrag von BadTaste »

ja :(

Zahnmeister
Neuling
Neuling
Beiträge: 5
Registriert: 7. Mär 2008 11:26

Re: Fragen zu den JSON strings

Beitrag von Zahnmeister »

Also nochmal um sicher zu gehen, dass wir das mit den JSON-Strings auch richtig verstanden haben:

MS_NEIGHBORS:
- beinhaltet alle successors aus der finger table (ohne Duplikate), sowie zusätzlich den predecessor.
- Wobei von diesen "Nachbarn" die identifier in das JSON-Array geschrieben werden.
- Die Reihenfolge der identifier im JSON-Array ist egal.

MS_CHORD_ROUTING_TABLE:
- Alle finger (auch Duplikate und der direkte successor) werden dort (unter "fingers") angegeben.
- Die Reihenfolge dieser finger-identifier im JSON-Array ist relevant.
- Der predecessor wird extra angegeben.
- Der successor wird nochmal extra angegeben (wobei dieser schon min. einmal in den fingern vorkommt).

MS_PROVIDED_VALUES:
- Alle bereitgestellten values werden angegeben.
- Die Reihenfolge der value-identifier im JSON-Array ist egal.

MS_DOWNLOADED_VALUES:
- Alle jemals heruntergeladenen Files werden samt chunks angegeben.
- Die Anordnung der files ist egal.
- Die Anordnung der chunk-identifier im JSON-Array ist egal.

Generell gilt, dass die Reihenfolge der Elemente im JSON-String auf erster Ebene einzuhalten ist. (Anordnung wie in den Beispielen auf den Folien)


Ist das so korrekt?

Benutzeravatar
BadTaste
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 181
Registriert: 18. Apr 2005 16:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Fragen zu den JSON strings

Beitrag von BadTaste »

Ja, bitte nur bedenken, dass die Reihenfolge der Finger ebenfalls relevant ist.

Thorsten Peter
Windoof-User
Windoof-User
Beiträge: 27
Registriert: 18. Mai 2009 23:40

Re: Fragen zu den JSON strings

Beitrag von Thorsten Peter »

Hiho,

hier doch noch zwei kleine Fragen zu den MS_DOWNLOADED_VALUES replies:
1. Zählen FileDescriptors auch zu "List the identifiers of all values ever downloaded for each downloaded file"
2. Wenn ich für einen value/chunk/Filedescriptor selbst verantwortlich bin und ihn nicht runterladen muss, soll dieser dann trotzdem unter MS_DOWNLOADED_VALUES gelistet werden? In diesem Fall müsste man quasi nur die Dateinamen kennen, die ich runterladen sollte (und sonst quasi gar nicht am Chord-Netz teilnehmen), um richtige Antworten auf MS_DOWNLOADED_VALUES liefern, richtig?

Vielen Dank im voraus und viele Grüße

Antworten

Zurück zu „Archiv“