Az ENVIENTA Platform fejlesztői szemmel

decentralizált hardver tudásbázis

Az ENVIENTA Platform fejlesztői szemmel

decentralizált hardver tudásbázis

Sokszor írtunk már az ENVIENTA Platformról mint az ENVENTA projekt központi eleméről, de mindig csak nagy vonalakban beszéltünk róla. Ebben a cikkben megpróbálom kicsit fejlesztői szemmel körbejárni a témát amolyan kérdés-válasz formában. Fontos megjegyezni, hogy a projekt még erősen fejlesztési fázisban van, így még minden képlékeny, bármi változhat. A lentebb írtak főként az általam elképzelt irányt képviselik.

Mi az ENVIENTA Platform?

Az ENVIENTA Platform célja, hogy összekösse a termékfejlesztés minden résztvevőjét (feltalálókat, vevőket, gyártókat, stb.), és végigsegítse a nyílt forrású projekteket az ötlettől a finanszírozáson át egészen a gyártásig. Úgy hisszük, hogy egy ilyen platform nagyban segítheti és gyorsíthatja az innovációt, és segíthet megoldást találni olyan égető problémákra, mint az éghajlatváltozás vagy a vízkrízis.

Az ENVIENTA Platform nem egy szoftver, hanem egy több szoftver elemből álló szoftver ökoszisztéma. Az egyes elemek laza módon kapcsolódnak, és a célunk, hogy a rendszer hosszú távon teljesen decentralizált módon, a közösség által fejlesztve és üzemeltetve működjön.

Hogyan épül fel az ENVIENTA Platform?

Az ENVIENTA Platform minden egyes projektje egy Git tároló. Amikor a projekt oldalát böngésszük, akkor erre a Git tárolóra húzunk egy mindenki számára könnyen értelmezhető és kezelhető felületet. A felület segítségével komolyabb informatikai tudás nélkül bárki indíthat új projektet, vagy csatlakozhat már meglévő projektekhez.

http://platform.envienta.org/

A Git maga eleve decentralizált. Valójában nem létezik olyan, hogy magasabb rendű, vagy központi tároló, csak a tárolók közötti szinkronizáció (push/pull). Azt, hogy melyik Git tárolót fogadjuk el aktuális változatnak, a fejlesztők közötti megegyezés határozza meg. Amikor a platformon valaki létrehoz egy projektet, egy ilyen Git tároló fog létrejönni számára, amit az ENVIENTA szerverei tárolnak. A tervek közt szerepel, hogy ezeket a tárolókat IPFS-be (és esetleg Swarm-ba) is publikáljuk. Ez valójában nem a decentralizáltságot növeli, hanem azt, hogy ha szükségünk van egy tároló tartalmára, azt megtalálhassuk. A fentiekből látszik tehát, hogy az ENVIENTA szerverén tárolt változatnak nem lesz kitüntetett szerepe, a rendszer valóban decentralizált.

Hogy jön a képbe a blokklánc?

Ha valaki létrehoz egy projektet, azt az Ethereum blokkláncra publikálhatja. Ennek több célja is van. Egyfelől mivel a projekt tárolás decentralizált (akár több ENVIENTA-hoz hasonló tároló is futhat az ökoszisztémában), ezért a blokklánc az a központi hely, ami egy egységes nyilvántartást jelent a projektekhez. Ilyen szempontból a projektek regisztrálására szolgáló okosszerződés hasonló az Ethereum ENS névszolgáltatásához, azzal a különbséggel, hogy itt nem csak név szerint tesszük kereshetővé a projekteket, hanem tartalom alapján is. A regisztrációs bejegyzések figyelésével és indexelésével kereső építhető, amelynek segítségével az egész ökoszisztémában megtalálhatóak a projektek, az IPFS-nek köszönhetően még akkor is, ha azok csak a felhasználók gépén találhatóak meg. Ilyen szempontból talán még a torrent trackerekhez hasonlítható a rendszer, ahol a központi tároló csak a tartalmak elérhetőségét tárolja, magát a tartalmat a felhasználók egymástól tudják beszerezni.

A blokkláncra írás egyfajta időbélyegzésnek is minősül, hiszen bizonyítható általa, hogy egy adott tartalom egy adott időpillanatban létezett, és hogy az adott tartalmat ki publikálta (ki írta a blokkláncra). Ez ugyan önmagában nem helyettesíti a szabadalmaztatás bonyolult és költséges folyamatát, de arra pont elég lehet, hogy egy nyílt forrású terméket ne szabadalmaztathassanak mások, ezzel megbénítva az adott termék terjesztését és fejlődését.

Ugyancsak a blokkláncon történik a termékek validációja. Ez azt jelenti, hogy az adott projekt kérheti az ENVIENTA minősített validátorait (értékelőit), hogy szakmai szempontból értékeljék a terveket. Ez előfeltétele annak, hogy a termék gyártásba kerülhessen (pl. a gyártók már csak olyan termékek közül válogatnak, amik biztosan működnek, nem veszélyesek, stb.). Ugyancsak a validátorok által ki is tiltható egy termék a platformról, ha az nem összeegyeztethető az ENVIENTA irányelveivel (pl. valaki egy fegyver terveit tölti fel). A validátorok kiválasztása decentralizáltan, reputáció alapon történik, de ennek pontos részletei még kidolgozás alatt állnak.

Mi a szerepe az ENVIENTA tokennek?

Az ENVIENTA white paper-ben több use-case-t is meghatároztunk a tokenek felhasználására, de ezek közül a legfontosabb talán a projektek támogatása. Az ENVIENTA nyílt forrás liszensz rendszere még kidolgozás alatt áll, de ennek fontos eleme, hogy ha valaki értékesít egy terméket, az a fair-use jegyében köteles támogatni a terméket kifejlesztő projektet, ez a támogatás pedig ENV tokenek formájában történik. Felfogható ez egyfajta liszensz díjnak, termék adónak, vagy akár kötelező adománynak (donation) is. A díjak fizetéséhez szükséges ENV tokeneket a gyártók kriptotőzsdén tudják beszerezni a tokeneket birtokló felhasználóktól. A projektnek befolyó tokeneket egy projekthez tartozó okoszszerződés osztja el a tagok közt, vagy tárolja egy poolban amiből a projekt továbbfejlesztése finanszírozható. Az így megszerzett tokeneket a tagok tőzsdén keresztül értékesíthetik (nagyrészt a gyártóknak, akik folyamatos keresletet biztosítanak), így zárul be a kör. A tokenek használatával sokkal egyszerűbb az elszámolás (ne feledjük el, hogy egy projekt akár több száz taggal is rendelkezhet a világ minden részén), és mivel az árfolyamot a kereslet és kínálat viszonya határozza meg, független a hagyományos pénzrendszertől.

Miért PHP alapú portált fejlesztetek egy blokklánc projekt fölé?

Ha valaki megnézi az ENVIENTA platform jelenleg elérhető forráskódját, egy PHP alapú Laravel portált fog találni. Bár a projektet jelenleg egy viszonylag heterogén társaság fejleszti (én pl. elsősorban Java-ban szoktam fejleszteni), azért esett a választás a PHP-ra, mert bárhol hosztolható és könnyen tanulható bárki számára. Hosszú távon azt szeretnénk elérni, hogy az ENVIENTA platform egy igazi közösségi projekt legyen, és bárki (akár egy lelkes Maker vagy felhasználó) hozzátehessen ha akar, erre pedig a PHP a legalkalmasabb. Nem véletlen, hogy a legnépszerűbb CMS és blog rendszerek (pl. WordPress) is PHP-ben íródtak, valamint a Facebook is PHP alapú (bár ők egy módosított változatot használnak).

Fontos látni azt is, hogy mivel a platform nem egy konkrét szoftver, hanem egy ökoszisztéma, ezért teljesen nyitott a lehetőség egyéb, alternatív felületek fejlesztésére. Bárki összerakhat egy Ruby, Java, Go, JS, stb. nyelven íródott portált, vagy akár desktop klienst a projektek böngészésére és kezelésére, de végső soron akár egy parancssoros Git kliens és Ethereum kliens használatával is elérhető a teljes funkcionalitás.

Hogyan épül fel az ENVIENTA portál modulrendszere?

Az ENVIENTA portál fejlesztésénél alapvető szempont volt a bővíthetőség, éppen ezért maga a portál csak az alap funkcionalitásra (Git tárolók tartalmának szerkesztése) koncentrál, minden egyéb funkcionalitás modulok formájában érhető el. A modul rendszer működése a Facebook-éhoz hasonló, vagyis minden egyes modul az adott modul szolgáltatójának szerverén fut szeparált módon (szabadon választott szerver környezet és programozási nyelv), és iframe-ben kerül beemelésre a portálra. Az egyes modulok API-kon keresztül kommunikálhatnak a egymással és a portállal. Ennek a felépítésnek köszönhetően minden projekt maga választhatja meg a használni kívánt eszközöket (news feed, issue tracker, chat, projekt management eszközök, stb.).


Remélhetőleg a fentiekből mindenki számára körvonalazódott az a fajta decentralizált struktúra, amit az ENVIENTA projekt megvalósítani kíván, és sikerült megindokolni a fejlesztést érintő döntéseinket. Fontos látni, hogy jelenleg még az út elején tartunk, így rengeteg minden kidolgozásra és megvalósításra vár, ennek ellenére már most rendelkezünk egy portállal, ahová bárki feltöltheti a terveit, és nagy erőkkel folynak a további fejlesztések.