BOINC@Poland

Inne => Archiwum => Wątek zaczęty przez: Rysiu w 31 Październik 2011, 16:57

Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: Rysiu w 31 Październik 2011, 16:57
MAm pewnien problem.

Piszę program i zastanawiam się w jaki sposób BOINC weryfikuje danego hosta. Za pierwszym razem gdy zainstalujemy managera doda on nowego hosta do bazy BOINC. O ile się nie molę gdy odinstalujemy managera i po jakimś czasie jeszcze raz jego zainstalujemy to też przypisze zweryfikuje nam hosta jako tego już kiedyś dodanego.

W przypadku reinstalacji systemu, pomimo, że maszyna fizycznie będzie ta sama to BOINC doda do systemu innego hosta.

Manager BOINC wyciąga jakiś ID systemu, na którym jest uruchomiony?
Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: Troll81 w 31 Październik 2011, 17:25
zapewne tworzy biorąc pod uwagę że każdy host ma ID w boinc który nijak ma się do innych numerków....
Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: Rysiu w 31 Październik 2011, 17:40
Ten ID z BOINC tutaj nic do gadania nie ma.

W Linuxie np. mamy polecenie hostid. Zwraca ono 32-bitową liczbę będącą unkalnym identyfikatorem hosta (wiadomo, że i tak może tarfić się, że kilka osób będzie miało takie samo).

Jeżeli się nie mylę ID z BOINC to zwykły klucz PK AI z tabeli hostów. Chodzi mi tutaj o samą procedurę unikalnej identyfikacji hosta dzięki czemu mamy zawsze pewność, że jest to host o ID X, a nie ID Y.
Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: Tomasz R. Gwiazda w 31 Październik 2011, 18:11
guid ?
Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: Rysiu w 31 Październik 2011, 19:25
Z tego co widzę GUID to losowy string w jakimś tam standardzie.

Chodzi mi jednak o to, że w systemowi musi być jakiś taki string przypisany. Możemy wygenerować losowo własnego stringa, zapisać jago do jakiegoś pliku na dysku, a potem tylko porównywać tego stringa z umieszczonym w bazie i identyfikować hosta. Problem pojawia się w momencie gdy program nie będzie miał uprawnień do zapisu pliku w określonej lokalizacji (zakładamy, że może być on uruchomiony wszędzie) lub użytkownik sam skasuje/zmodyfikuje plik ze stringiem.
Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: G w 01 Listopad 2011, 05:07
jest jeszcze BIOS. W jednym przypadku, gdzie do bios'a można było wprowadzić indywidualną nazwę kompa - reinstalka systemu nie przerwała ciągłości naliczania punktów Einsteina dla tej fizycznej maszyny. W pozostałych przypadkach mimo takiej samej nazwy usera nadawany jest nowy identyfikator.
Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: Rysiu w 01 Listopad 2011, 10:17
Heh. Szukam rozwiązania możliwie najbardziej uniwersalnego.

Wariantem jaki najszybciej wpada mi do głowy jest wygenerowanie hasha (MD5) ze stringa [login] + [nazwa hosta] + [czas] i umieszczenie go w tym samym katalogu co znajduje się aplikacja.

Potem mając w bazie danych tego samego hasha możemy identyfikować hosta. Gdy plik z hashem zniknie to system dodaje nowego hosta i tyle.
Tytuł: Jednoznacza identyfikacja systemu przez aplikację
Wiadomość wysłana przez: Agbar w 15 Listopad 2011, 15:03
BOINC między innymi wykorzystuje hostname, czyli nazwę sieciową komputera. Dlatego lista hostów na stronie każdego projektu ma opcję "Połącz hosty z taką samą nazwą". Zero magii.