WavesKit - Waves блокчейн менен иштөө үчүн PHP алкагы

Мага жагат PHP иштеп чыгуу ылдамдыгы жана мыкты көчүрүү үчүн. Чөнтөгүңүздө көйгөйлөрдү чечүү үчүн ар дайым даяр курал болгондо абдан жакшы.

Ата мекендик блокчейн менен таанышканда абдан уят болду Толкундар платформасы анын арсеналында даяр PHP SDK болгон эмес. Ооба, мен аны жазууга туура келди.

Алгач колдонууга туура келди түйүндөр транзакцияларга кол коюуга. Ошентип, үч даректи башкаруу үчүн үч түйүндү иштетиш керек болчу... Кээ бир көйгөйлөрдү чечкени менен бул аянычтуу көрүнүш болду. Түйүндөргө таянуу туңгуюк деген түшүнүк келгенге чейин. Биринчиден, чектелген функцияга байланыштуу API, экинчиден, ылдамдыгынан (түйүндөр ал күндөрү өтө жай болгон).

Мен эки параллелдүү жумушту баштадым. Алардын бири - API түйүнүнөн тез жана толугу менен көз карандысыз блокчейн изилдөөчүсүн жасоо. Экинчиси, Waves платформасы менен иштөө үчүн бардык функцияларды бир жерде чогултуу. Мына ушундай долбоорлор ишке ашты. w8io и WavesKit.

Waves блокчейнинин көшөгөлөрүнүн артындагы биринчи кадам болду w8io браузери. Бул оңой болгон жок, бирок дагы эле бардык баланстардын өз алдынча эсебин жазууга, ал тургай баштапкы түйүндөрдөгү эсептөөлөрдөн ката табууга жетишти (мүчүлүштүктөрдү сыйлоо программасы Айтмакчы, бул алар үчүн иштейт, алар табылган каталар үчүн төлөшөт). Бул темада w8io браузеринин иштеши жөнүндө көбүрөөк биле аласыз: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

w8io боюнча иштөө процессинде менде шектенүүлөр бар болчу, бирок иш логикалык жактан аяктап, SDK түзө баштаганда, менин күмөндөрүм тастыкталды. Кээ бир функцияларды, анын ичинде эң маанилүү криптографиялык функцияларды эч жерден таба алган жокмун. Анан пайдубалымдын кирпичтерин куюп баштадым. Алар ушундайча төрөлгөн: ABCode base58де коддоо (чындыгында каалаган алфавитин каалаганына коддоо үчүн), Curve25519 шайкеш колдорду түзүү жана текшерүү үчүн (опциялар менен стероиддер боюнча), Blake2b хэштердин бирин эсептөө үчүн (ал PHP 7.2ден бери гана жеткиликтүү) ж.б.

Бул жерде мен рахмат айтышым керек Инала Карданова мени жетектеген кээ бир баалуу кеңеш үчүн композитор мен үчүн кадимки, бирок эскирип калган файлдардын ордуна.

Бир-эки айдан кийин WavesKit күндүн жарыгын көрдү, чыкты бета версиялары жана азыр Waves платформасынын бардык стандарттык функциялары менен иштөөгө даяр. Баары жеткиликтүү негизги тармак транзакцияларды оңой түзүүгө, кол коюуга жана PHPдин 64 камтылган бардык 5.6-бит версияларында иштеген бир эле пакет менен жөнөтүүгө болот.

WavesKitти биздин долбоорго туташтырабыз:

composer require deemru/waveskit

Биз колдонобуз:

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 );

Жогорудагы мисалда биз "T" testnetинде иштеген WavesKit объектин түзөбүз. Биз ачкычтар жана эсептин дареги ачык ачкычтын негизинде автоматтык түрдө эсептелген урук фразасын койдук. Андан кийин биз трансфер транзакциясын түзөбүз 0.00000001 Waves урук сөз айкашынан автоматтык түрдө эсептелген даректен "сыноо" лакап аттын дарегине, аны купуя ачкыч менен кол коюуга өткөрүп, тармакка жөнөтөбүз. Андан кийин, транзакция тармак тарабынан ийгиликтүү тастыкталганына ынанабыз.

транзакциялар багытталган tx менен башталган функциялар. транзакциялар менен иштөөнү жакшыраак түшүнүү үчүн, сиз изилдей аласыз WavesKit документтери же иллюстративдик мисалдарга түз өтүңүз үзгүлтүксүз интеграциялык тесттер.

WavesKit реалдуу колдонууда иштелип чыккандыктан, анын өнүккөн функциялары бар. Биринчи өлтүргүч өзгөчөлүгү болуп саналат иштешин камсыз кылуу, транзакциянын жоголбогондугуна, тескерисинче, тастыкталган жана тармакта талап кылынган ырастоолордун санына жеткендигине ишенимдин талап кылынган деңгээлине жетүүнү көзөмөлдөгөн.

Дагы бир ок өтпөс механизм - бул WavesKitтин түйүндөр менен байланышы. Парник шарттарында алкак негизги түйүн менен гана иштейт, аны менен туруктуу байланышты сактайт, бирок каталар болгондо, ал автоматтык түрдө резервдик түйүнгө өтүшү мүмкүн. Эгер сиз күтүү түйүндөрүнүн массивин орнотуп жатсаңыз, функцияны чакыра аласыз setBestNode учурдагы бийиктиктин жана жооп ылдамдыгынын максималдуу мааниси боюнча негизги түйүн катары мыкты түйүн аныктоо. Эми буга ички суроо кэшин кошуп, колдонуучулардын да, түйүн ээлеринин да камкордугун сезиңиз.

Акыркы өнүккөн механизмдердин бири - бул функция txMonitor. Бул реалдуу убакытта кирген транзакцияларга жооп берүү зарылдыгына байланыштуу пайда болгон. Бул функция блокчейндеги транзакцияларды иштетүү менен байланышкан бардык нюанстарды толугу менен чечет. Мындан ары кыйналбайсыз, жөн гана өзүңүз каалаган варианттар менен кайра чалуу функцияңызды орнотуңуз жана процесстериңизди баштоо үчүн жаңы транзакцияларды күтүңүз. Мисалы, менин дагы бир долбоорлорум VECRO толугу менен бул функциянын айланасында курулган, сиз анын кантип туура иштээрин оңой биле аласыз долбоордун кодунда.

Мен ачык булакты жакшы көрөм, бул адамзаттын эң чоң жетишкендиктеринин бири. Мен жалгыз иштеп чыгуучу болгондуктан жана менин бардык муктаждыктарым чечилген абалга жеткендиктен, сизди колдонууга жана салым кошууга чакырам. WavesKit.

Source: www.habr.com

Комментарий кошуу