fyziktom / VirtualEconomyFramework

Framework for economy applications
https://veframework.com/
MIT License
24 stars 7 forks source link

WIP: 182 blockchain indexer #183

Closed fyziktom closed 1 year ago

fyziktom commented 1 year ago

v návaznosti na issue #182.

fyziktom commented 1 year ago

Tak nyní už by si to zasloužilo nějaký podrobnější komentář, protože tento pull request je celkem monstrózní. Nicméně bylo to nutné. Další změny ještě přijdou, nicméně přemýšlím, že jej tak do týdne mergnu, aby bylo možné vydat balíček, který bude již komunikovat s novým serverem, nicméně je potřeba stále dodělat ještě několik úprav/dočištění. Prvně k současnému stavu:

Podařilo se vytvořit nový indexovací server pro Neblio blockchain. Půjde použít i pro jiné Utxo based blockchainy jako je třeba Bitcoin, apod. Server nyní je v testovacím módu spuštěný na VM, takže bude možné jej využívat pro vývojáře jako pomoc pokud nebudou mít spuštěný vlastní server. Nicméně v rámci readme k severu je popis nastavení a také soubory pro služby pro spuštění v Linux. Server je možné si spustit i na localhost spolu s QTWallet (nebo nebliod), což je ideální pro vývoj.

Kvůli otazníkům kolem stability Neblio API, které provozuje současný neblio tým jsem nyní hotfixnul VEDriversLite.NeblioAPI tak aby už bylo přesměrované na nový server. Tato část čeká již delší dobu na update, protože by bylo vhodné vytvořit nějaký unifikovanější základní interface pro blockchain api. To se pak bude injektovat při tvorbě accountu. Na to bych však otevřel samostatnou issue, kvůli přehlednosti. Takže nyní to bude mergnuté takto.

Jednou z hodně důležitých změn je implementace NTP1 protokolu. Ten umožňuje parsovat či vytvářet OP_RETURN data tak jak je navrhlo Neblio. Je to celkem šikovné, protože to přidává velmi jednoduše tokenovou vrstvu do v podstatě jakéhokoliv blockchainu. Dříve bylo potřeba se dotázat NeblioAPI nebo nodu, aby vytvořil tato data. Nyní vše probíhá interně ve VEDriversLite. Toto zásadně zrychlilo načítání účtu a také umožní jeho lepší paralelizaci. Zároveň to umožnilo vytvoření lepších testů, takže přibylo hodně testů a to především na metody v rámci NeblioTransactionHelpers.cs, kde chyběly testy na často používané funkce pro tvorbu transakcí. Nicméně, opět toto bych raději už řešil v rámci samostatné Issue a pravděpodobně až po vyřešení úpravy NeblioAPI, kde jsou i funkce v rámci NeblioAPIHelpers, které pomáhají procházet Utxos, apod.

Další informace jsou i v rámci nových článků na wiki, například:

Před mergem udělám ještě nějaké pročištění, dokomentování, apod.

sonarcloud[bot] commented 1 year ago

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot E 1 Security Hotspot
Code Smell A 252 Code Smells

56.7% 56.7% Coverage
9.0% 9.0% Duplication

fyziktom commented 1 year ago

potřebuji to mergnout. je tam ještě hodně takových neupravených částí, ale přináší to tak důležité updaty, že je potřeba to posunout kupředu. postupně budou jednotlivé části refaktorovány v samostatných issues.