Mulle meeldib see arenduskiiruse ja suurepärase kaasaskantavuse jaoks. On väga hea, kui sul on alati taskus tööriist probleemide lahendamiseks valmis.
Kodumaise plokiahelaga tutvudes oli päris kahju tema arsenalis ei olnud valmis PHP SDK-d. No ma pidin selle kirjutama.
Algul pidin kasutama tehingute allkirjastamiseks. Nii et kolme aadressi haldamiseks tuli käivitada kolm sõlme ... See oli haletsusväärne vaatepilt, kuigi see lahendas mõned probleemid. Kuni saabus arusaam, et sõlmedele lootmine on tupiktee. Esiteks piiratud funktsionaalsuse tõttu , teiseks kiiruse tõttu (sõlmed olid neil päevil väga aeglased).
Alustasin kahe paralleelse tööga. Üks on teha plokiahela uurija, mis on kiire ja täiesti sõltumatu sõlme API-st. Teine on koguda kõik funktsioonid Waves Platformiga töötamiseks ühte kohta. Nii tekkisid projektid. и .
Esimene samm Waves'i plokiahela kulisside taga oli . See ei olnud lihtne, kuid siiski õnnestus kirjutada kõigi saldode sõltumatu arvutus ja isegi leida algsete sõlmede arvutustes viga ( Muide, see töötab nende jaoks, nad maksavad leitud vigade eest). Lisateavet w8io brauseri funktsioonide kohta leiate sellest lõimest:
W8io kallal töötamise käigus tekkis mul juba kahtlus, kuid kui töö loogilise lõpuni jõudis ja SDK-d looma hakkasin, said mu kahtlused kinnitust. Ma ei leidnud kuskilt mõnda funktsiooni, sealhulgas kõige olulisemat krüptograafilist. Seejärel alustasin oma vundamendi telliste valmistamisega. Nii nad sündisid: kodeerimiseks base58-s (tegelikult mis tahes tähestiku kodeerimiseks mis tahes), ühilduvate allkirjade loomiseks ja kontrollimiseks (valikutega ), ühe räsi arvutamiseks (mis on saadaval alles alates PHP 7.2-st) jne.
Siin pean tänama mõne väärtusliku nõuande eest, mis mind suunas minu jaoks tavapärase, kuid vananenud asemel, kaasata faile.
Paari kuu pärast , tuli välja ja on nüüd valmis töötama kõigi Waves platvormi standardfunktsioonidega. Kõik saadaval tehinguid saab hõlpsasti luua, allkirjastada ja saata ainult ühe paketiga, mis töötab kõigis PHP 64-bitistes versioonides alates versioonist 5.6 (kaasa arvatud).
Ühendame WavesKiti oma projektiga:
composer require deemru/waveskit
Me kasutame:
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 );
Ülaltoodud näites loome WavesKiti objekti, mis töötab testvõrgus "T". Seadsime seemnefraasi, millest lähtuvalt avaliku võtme alusel automaatselt arvutatakse välja konto võtmed ja aadress. Järgmiseks loome algfraasist automaatselt arvutatud aadressilt ülekandetehingu 0.00000001 Waves "test" aliase aadressile, edastame selle privaatvõtmega allkirjastamiseks ja saadame võrku. Pärast seda veendume, et tehing on võrgu poolt edukalt kinnitatud.
Tehingud on keskendunud . Tehingutega töötamise paremaks mõistmiseks võite uurida või minge otse illustreerivate näidete juurde .
Kuna WavesKit on välja töötatud reaalses kasutuses, on sellel juba täiustatud funktsioonid. Esimene tapjafunktsioon on , mis kontrollib nõutava kindlustunde saavutamist, et tehing ei läinud kaotsi, vaid, vastupidi, kinnitati ja saavutas võrgus vajaliku arvu kinnitusi.
Teine kuulikindel mehhanism on see, kuidas WavesKit suhtleb sõlmedega. Kasvuhoonetingimustes töötab raamistik ainult põhisõlmega, säilitades sellega pideva ühenduse, kuid tõrgete korral võib see automaatselt lülituda varusõlmedele. Kui seadistate ooterežiimi sõlmede massiivi, saate funktsiooni kutsuda parima sõlme kui põhisõlme määramiseks praeguse kõrguse ja reageerimiskiiruse maksimumväärtuse järgi. Nüüd lisage sellele sisemine päringu vahemälu ja tundke nii kasutajate kui ka sõlmeomanike hoolt.
Üks uusimaid täiustatud mehhanisme on funktsioon . See ilmnes seoses vajadusega reageerida sissetulevatele tehingutele reaalajas. See funktsioon lahendab täielikult kõik nüansid, mis on seotud plokiahelas tehingute töötlemisega. Pole enam valu, lihtsalt seadistage oma tagasihelistamise funktsioon soovitud valikutega ja oodake, kuni protsessid alustavad uusi tehinguid. Näiteks veel üks minu projekt täielikult selle funktsiooni ümber ehitatud, saate hõlpsalt teada, kuidas see õigesti töötab .
Ma armastan avatud lähtekoodi, see on inimkonna üks suurimaid saavutusi. Kuna olen ainuke arendaja ja jõudnud seisu, et kõik mu vajadused on lahendatud, kutsun teid üles kasutama ja panustama .
Allikas: www.habr.com
