Diverz-gráfgenerálás-alapú főkönyvtartalom szintetizáció
Egy blokkláncon futó okosszerződés leírható egy olyan komponensként, amely minden tranzakcióban kap valamilyen tranzakcióspecifikus bemenetet (~függvényparaméterek) és a blokklánc által könyelt főkönyv (~elosztott adatbázis) aktuális állapotát, majd kimeneteként visszaad egy frissített főkönyv állapotot.
Hogyan tudunk érvelni arról, hogy az okosszerződésünk mindenféle bemeneti főkönyvtartalom és paraméterek esetén megfelelő frissített főkönyvet állít elő?
A különböző bemeneti főkönyvtartalmak generálása (szintetizálása) kihívást jelent; pl. a legelterjedtebb konzorciális blokklánc platformon, a Hyperledger Fabric-on a főkönyv egy kulcs-érték adatbázis – egy relatíve egyszerű kulcs-érték párokra leképezett objektumorientált adatstruktúra esetén sem triviális olyan kulcs-érték párokat generálni, melyek a tesztelés szempontjából relevánsak.
A téma alapötlete, hogy egy metamodell alapján minél diverzebb, gráfként előálló főkönyvadatokat generálunk, majd ezeket képezzük le a főkönyv elvárt formátumára (pl. kulcs-érték halmazra) és ezeken futtatjuk le tesztjeinket.
A megvalósítás során kipróbálható, sőt használandó a tanszéken fejlesztett Refinery nevű gráfgenerátor eszköz is! A feladat alapvetően gyakorlati, de preferencia szerint lehet az elméletibb részével is foglalkozni.
BME-MIT


