Seminarium: Systemy Rozproszone
20 października 2022 12:15, sala 4070, transmisja online
Kamil Jonak, Jakub Panasiuk



VerLoc: Weryfikowanie lokalizacji w systemach zdecentralizowanych



Sieci zdecentralizowane często wykorzystują informację o lokalizacji geograficznej węzłów, które się w niej znajdują. W przypadku, gdy część węzłów celowo deklaruje fałszywe położenie oraz manipuluje pomiarami, zweryfikowanie otrzymanych informacji staje się bardzo istotne.

Systemy takie jak Spotter czy Octant do weryfikacji lokalizacji wykorzystują zaufane punkty orientacyjne, które pozwalają z dużą dokładnością przybliżyć położenie geograficzne pojedynczego węzła. Take działanie jest jednak zależne od poprawności danych przekazywanych przez ustalone punkty. Możliwość celowego zakłamywania pomiarów sprawia, że te rozwiązania nie są odpowiednie dla zdecentralizowanych systemów.

W trakcie prezentacji opowiem o VerLoc, czyli systemie, który pozwala na rzetelne określenie lokalizacji węzłów bez wykorzystania zaufanych punktów orientacyjnych w sytuacji, gdy część węzłów potencjalnie przekazuje fałszywe informacje. Przybliżę sposób działania tego rozwiązania oraz omówię jego dokładność.

Zapraszam,
Kamil Jonak



Bibliografia:





Tworzenie nowych procesów za pomocą io_uring spawn



Tradycyjne tworzenie procesów przy użyciu fork lub exec było z nami przez dekady i niestety nie są one zbyt efektywnymi operacjami. Jedną z metod „ulepszenia” tych rozwiązań był vfork lecz po jego wywołaniu dziecko procesu nie może zrobić praktycznie nic oprócz exec i exit – nie może pisać do pamięci, nie może zwracać ani również wywoływać niczego!

Kiedy io_uring został stworzony przez Josha Tripletta to nowy sposób komunikacji z kernelem został rozpowszechniony. Zapewnia on komunikacje programów z jądrem w postaci dwóch ring bufferów. Polega to na tym, że program wpisuje na submission queue operację, którą jądro ma wykonać a wynik tej operacji kernel wkłada na completion queue z której program może odczytać.

Podczas mojej prezentacji przybliżymy pokrótce jak io_uring działa i będziemy eksplorować jak taka komunikacja może przyspieszyć tworzenie procesów dzięki omijaniu narzutu wchodzenia i wychodzenia z jądra przy każdej operacji.

Zapraszam,
Jakub Panasiuk



Bibliografia: