GUID zu UID | Arma3

  • Guten Tag liebe Native-Network Community,
    ich bin gerade dabei ein kleines Projekt mit der RCON API zumachen. Leider habe ich festgestellt das ich die GUID zu UID ändern muss bzw. ich muss die erhaltene GUID zur UID umwandeln. Ich habe lange gesucht und gegoogelt. Ich finde leider nur converter diese die UID zur GUID umwandeln. Hat einer eine Idee wie ich das schaffe eine GUID zur UID umzuwandeln?


    Ich freu mich auf eure Hilfe, wenn noch fragen dazu bestehen. LEGT LOS!


    Mit freundlichen Grüßen
    NiklasIT - Entwickler

  • Ja, lies auch meinen text richtig, schreib einfach die guid rein und du bekommst komplett alle Angaben zurück, eben auch die uid

    Er möchte einen eigenen Umwandler haben, um diesen in sein Projekt zu integrieren. Nicht aber eine Lösung bei der man das ganze immer auf einer Webseite eintippen muss.

  • Das Problem ist ja dass das UID > GUID mittels md5 hash geregelt wird


    entweder du legst jetzt ein paar millionen einträge in deiner DB an welche schon die einzelnen SteamIDs "vorrenderst" damit du über die GUID später dann ne Query machen kannst um die UID herauszufinden
    MD5 Reverse ist soweit ich weis unmöglich bzw dauert halt ne ewigkeit

  • Hier ein PHP Script um die Datenbank vollzuspamen mit uid + guid :P


    Ich generiere derzeit mit 230k Entries / Minute





    Datenbank Struktur:

  • Nochmal ein kleines Update des PHP Scripts für mehr Meldungen:



    Konsolen Output ist dann derartig

  • WOOOPS


    "Klitzekleiner" Performance Schub fürs generieren
    anstatt 280k Einträge pro Minute > 6 Mill Einträge pro Minute


  • sodele :D


    ich hab jetzt halbwegs ne API zusammen gebaut ;)
    erreichbar unter converter.multivitamin.wtf
    ihr könnt entweder die SteamID64 angeben oder die Battleye GUID um jeweils das gegenüber liegende zu bekommen


    By SteamID64:

    Code
    1. GET REQUEST: http://converter.multivitamin.wtf/76561198032854208
    2. JSON RESPONSE: {"error":null,"data":{"guid":"cd0bee234b4419e60618a708029585e8","SteamID64":"76561198032854208"}}



    By Battleye GUID:


    Code
    1. GET REQUEST: http://converter.multivitamin.wtf/cd0bee234b4419e60618a708029585e8
    2. JSON RESPONSE: {"error":null,"data":{"guid":"cd0bee234b4419e60618a708029585e8","SteamID64":"76561198032854208"}}


    Was spricht gegen eine solch große Datenbank selber zu hosten?
    Die Datenbank hat derzeit eine Gesamtdatenmenge von mehr als 160 Millionen Datensätzen und hat eine stolze größe von 12,6 Gigabyte
    Durch falsche Indexierungen kann es sein dass eine einfache Query mehrere !!MINUTEN!! benötigt bis diese durchlaufen ist!


    Die zusammensetzung der Daten dauert etwa bei einer Leistung von 6 Millionen Daten pro Minute ca 30 Minuten
    Die nachträgliche Indexierung und Unique Wert festlegung sowie Änderung der Kollation der GUID benötigte an die 60 Minuten Rechenzeit.



    //EDIT: Nachträgliche Eintragungen der Datenbank dauern wesentlich länger durch die Indexierung des GUID Wertes derzeitige Schreibleistung von neuen Datensätzen 3000 - 3500 Einträge pro Minute (50 / Sekunde)

  • Ich habe 400 Mio GUIDS und Steam 64 IDs in eine SSDB (Redis) geschrieben. hat ungefähr 20 Minuten gedauert die DB zu erstellen, läuft im Ram und braucht etwas 12 GB RAM.


    Über einen Redis Client (auch in PHP verfügbar) kann man über die GUID dann einfach die Steam 64 ID abrufen.
    Updates sind nicht notwendig, da es "nur" 400 Mio GUIDs gibt und diese sich nicht ändern.

  • Naja ich lass sie halt Indexiert über meine HDD Raid laufen, braucht zwar ca 30G Platz auf der Platte für 200 Mio UIDs aber dafür benötigt die keinen Platz im Ram
    Ram ist da um ein vielfaches teuerer als wie der Platz auf der HDD
    Und mit der Indexierung ist die halt ein paar millisekunden langsamer als wie deine RAM DB


    Mittlerweile würde ich die DB Struktur auch leicht anders machen, man könnte im Prinzip auf die "ID" Reihe verzichten dann würde der warscheinlich 20-30% weniger Speicherplatz brauchen

  • derzeit sind 220 mio ids eingetragen, es gibt jedoch um die 350 mio, da ich die platte datenbank vm zu knapp bemossen hab sind da nur 100G zugewiesen und der derzeitig verwendete platz ist bei rund 60G durch die Indexierung


    Ich werde ab Dezember bzw Jänner sowieso auf eine Hetzner Kiste umsteigen, dann werd ich dieses Problem aus der Welt schaffen^^