Мне нравится a fejlődés gyorsaságáért és a kiváló hordozhatóságért. Nagyon jó, ha mindig van egy eszköz a zsebében, készen áll a problémák megoldására.
Nagy kár volt, amikor megismerkedtem a hazai blokklánccal nem volt kész PHP SDK az arzenáljában. Nos, meg kellett írnom.
Eleinte használnom kellett tranzakciók aláírására. Tehát három cím kezeléséhez három csomópontot kellett elindítani... Szánalmas látvány volt, bár megoldott néhány problémát. Egészen addig, amíg meg nem értette, hogy a csomópontokra támaszkodva zsákutca. Először is, a korlátozott funkcionalitás miatt , másodszor a sebesség miatt (a csomópontok akkoriban nagyon lassúak voltak).
Két párhuzamos munkába kezdtem. Az egyik, hogy készítsünk egy blokklánc-felfedezőt, amely gyors és teljesen független lesz a csomópont API-tól. A második az, hogy a Waves Platformmal való munkavégzéshez szükséges összes funkciót egy helyen gyűjtsük össze. Így jelentek meg a projektek и .
Az első lépés a Waves blokklánc színfalai mögött az volt . Nem volt könnyű, de így is sikerült független számítást írnunk az összes egyenlegről, és még hibát is találtunk a számításokban az eredeti csomópontokon ( Egyébként náluk működik, fizetnek a talált hibákért). A w8io böngésző funkcióiról ebben a témakörben tudhat meg többet:
A w8io-n dolgozva már voltak kétségeim, de amikor a munka a logikus végéhez ért, és elkezdtem létrehozni az SDK-t, kétségeim beigazolódtak. Néhány funkciót nem találtam sehol, köztük a legfontosabbakat, a kriptográfiaiakat. Aztán azzal kezdtem, hogy saját téglákat készítettem az alapozáshoz. Így születtek: a base58 kódoláshoz (valójában bármilyen ábécé kódolása bármelyikhez), kompatibilis aláírások létrehozásához és ellenőrzéséhez (opciókkal ), az egyik hash kiszámításához (ami csak a PHP 7.2 óta volt elérhető), stb.
Itt kell köszönetet mondanom néhány értékes tanácsért, amelyek az irányba mutattak a számomra ismerős, de elavult include fájlok helyett.
Pár hónap után , kijött és készen áll a Waves platform összes szabványos funkciójával való együttműködésre. Minden elérhető A tranzakciók egyszerűen létrehozhatók, aláírhatók és elküldhetők egyetlen csomag használatával, amely a PHP összes 64 bites verzióján fut 5.6-tól kezdve.
A WavesKitet a projektünkhöz kapcsoljuk:
composer require deemru/waveskitHasználjuk:
use deemruWavesKit;
$wk = new WavesKit( 'T' );
$wk->setSeed( 'manage manual recall harvest series desert melt police rose hollow moral pledge kitten position add' );
$tx = $wk->txBroadcast( $wk->txSign( $wk->txTransfer( 'test', 1 ) ) );
$tx = $wk->ensure( $tx );A fenti példában létrehozunk egy WavesKit objektumot, amely a „T” teszthálózaton fut. Telepítünk egy kezdő kifejezést, amelyből a kulcsok és a fiók címe automatikusan kiszámításra kerül a nyilvános kulcs alapján. Ezután létrehozunk egy 0.00000001 Waves átviteli tranzakciót az automatikusan kiszámolt címből a seed kifejezéssel a „teszt” alias címre, átvisszük privát kulccsal aláírandó és elküldjük a hálózatnak. Ezt követően meggyőződünk arról, hogy a tranzakciót a hálózat sikeresen visszaigazolta.
A tranzakciókkal végzett munka koncentrálódik . A tranzakciókkal való munka jobb megértéséhez tanulmányozhatja vagy azonnal lapozzon a szemléltető példákhoz .
Mivel a WavesKit valós használatra készült, már rendelkezik fejlett funkciókkal. Az első gyilkos funkció az , amely ellenőrzi a szükséges szintű bizalom elérését, hogy a tranzakció nem veszett el, hanem éppen ellenkezőleg, megerősítették, és elérte a szükséges számú megerősítést a hálózatban.
Egy másik golyóálló mechanizmus az, hogy a WavesKit hogyan kommunikál a csomópontokkal. Üvegházi körülmények között a keretrendszer csak a fő csomóponttal működik, állandó kapcsolatot tart fenn vele, de hiba esetén automatikusan át tud váltani tartalékra. Ha biztonsági mentési csomópontok tömbjét állítja be, meghívhatja a függvényt hogy az aktuális magasság és válaszsebesség maximális értéke alapján a legjobb csomópontot határozzuk meg főként. Most adjon hozzá egy belső lekérdezési gyorsítótárat, és érezze, hogy gondoskodnak a felhasználókról és a csomópontok tulajdonosairól.
Az egyik legújabb fejlett mechanizmus a funkció . Ez azért jelent meg, mert a bejövő tranzakciókra valós időben kellett válaszolni. Ez a funkció teljesen megoldja a blokklánc tranzakcióinak feldolgozásával kapcsolatos összes árnyalatot. Nincs több fájdalom, csak állítsa be a visszahívási funkciót a kívánt opciókkal, és várja meg, amíg az új tranzakciók elindítják a folyamatokat. Például egy másik projektem teljesen e funkció köré épül, könnyen tanulmányozhatja, hogyan működik közvetlenül .
Szeretem a nyílt forráskódot, ez az emberiség egyik legnagyobb vívmánya. Mivel én vagyok az egyetlen fejlesztő, és elértem azt az állapotot, amikor minden igényem megoldott, arra kérem Önt, hogy használja és járuljon hozzá .
Forrás: will.com
