Ohledně mé představě, já jsem spíš chtěl dát větší power serverům než klientům. Asi se to dá očekávat, protože víc vidím do serverů, a klienty vidím jen jako primitivní javascriptové prohlížeče.
Ta myšlenka byla taková, že máš primární server (relay) jako u Mastodonu, ale máš profil svázaný s klíčem. Pokud publikuješ, publikuješ na svůj server. Jediné co se šíří do světa mezi ostatní servery je tvůj profil, resp. jen ta část, která obsahuje informaci, kam publikuješ. Pokud tě ostatní chtějí vidět, na svém serveru by měli najít informaci o tom, kde se nalézáš a tam se podívat.
Pokud změníš domovský server, rozešleš informaci o novém umístění tvého profilu. Část tvého profilu sice zůstane na domovském serveru, ale... a tady přichází další část:
Totiž fakt, že tě někdo followuje znamená, že jeho domovský server se připojuje na tvůj domovský server a stahuje tvé události a cashuje je na své straně. Ten kdo tě followuje tedy čte tvé zprávy na svém serveru. Synchronizaci si zajišťují servery samy. Pokud se tedy časem odstěhuješ někam, kde jsi měl aspoň jednoho followera, tam najdeš i celý svůj obsah.
Pokud někdo na tvůj obsah reaguje, jeho domovský server si zjistí, kde se nacházíš a jeho reakci zase syncne na tvůj domovský server. Víceméně všechny zmínky nebo reakce na tvé eventy se takto syncnou.
Díky tomu, že můžeš mít víc followerů na jednom serveru, lze stahování agregovat, takže ne že každý klient chodí na všechny servery, ale servery se jen synchují s agregovanými balíky eventů.
Takto jsem si to představoval já.
Tohle by šlo 100% realizovat v NOSTRu, kdyby se změnil význam některých věcí, například povinnost rozesílat NIP-65 na všechny relay. V rámci vývoje své relay se snažim naprogramovat FollowerService, která právě agreguje relay všech uživatelů, kteří mají na mé relay profil a stahuje obsah všech followerů a ukládá lokálně. To by mělo způsobit, že na té relay bude nějaký obsah i když tam přijdeš nový a nebudeš nikoho followovat. Miimálně uvidíš obsah lidí které followují uživatelé té relay.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 50 720×
Přečteno 23 730×
Přečteno 22 762×
Přečteno 20 748×
Přečteno 17 646×