WavesKit - Waves blockchain உடன் வேலை செய்வதற்கான PHP கட்டமைப்பு

எனக்கு பிடிக்கும் PHP வளர்ச்சியின் வேகம் மற்றும் சிறந்த பெயர்வுத்திறனுக்காக. உங்கள் பாக்கெட்டில் எப்பொழுதும் ஒரு கருவி இருக்கும் போது அது மிகவும் நல்லது, பிரச்சனைகளை தீர்க்க தயாராக உள்ளது.

உள்நாட்டு பிளாக்செயினுடன் பழகும்போது மிகவும் அவமானமாக இருந்தது அலைகள் மேடை அவனுடைய ஆயுதக் களஞ்சியத்தில் ஆயத்த PHP SDK இல்லை. சரி, நான் அதை எழுத வேண்டியிருந்தது.

முதலில் நான் பயன்படுத்த வேண்டியிருந்தது முனைகள் பரிவர்த்தனைகளில் கையெழுத்திட. எனவே, மூன்று முகவரிகளை நிர்வகிப்பதற்கு மூன்று முனைகளைத் தொடங்க வேண்டியிருந்தது... சில சிக்கல்களைத் தீர்த்தாலும், பரிதாபமான பார்வையாக இருந்தது. கணுக்களை நம்புவது ஒரு முட்டுச்சந்தாகும் என்ற புரிதல் வரும் வரை. முதலாவதாக, வரையறுக்கப்பட்ட செயல்பாடு காரணமாக ஏபிஐ, இரண்டாவதாக, வேகம் காரணமாக (அந்த நாட்களில் முனைகள் மிகவும் மெதுவாக இருந்தன).

நான் இரண்டு இணையான வேலைகளைத் தொடங்கினேன். ஒன்று, ஒரு பிளாக்செயின் எக்ஸ்ப்ளோரரை உருவாக்குவது, அது வேகமாகவும், நோட் ஏபிஐயிலிருந்து முற்றிலும் சுயாதீனமாகவும் இருக்கும். இரண்டாவது, அலைகள் தளத்துடன் பணிபுரியும் அனைத்து செயல்பாடுகளையும் ஒரே இடத்தில் சேகரிப்பது. இப்படித்தான் திட்டங்கள் தோன்றின w8io и வேவ்ஸ்கிட்.

அலைகள் பிளாக்செயினின் திரைக்குப் பின்னால் இருந்த முதல் படி w8io உலாவி. இது எளிதானது அல்ல, ஆனால் நாங்கள் இன்னும் அனைத்து நிலுவைகளின் சுயாதீன கணக்கீட்டை எழுத முடிந்தது மற்றும் அசல் முனைகளில் கணக்கீடுகளில் பிழையைக் கூட கண்டுபிடித்தோம் (bug-bounty நிரல் மூலம், இது அவர்களுக்கு வேலை செய்கிறது, அவர்கள் கண்டறிந்த பிழைகளுக்கு பணம் செலுத்துகிறார்கள்). இந்த தலைப்பில் w8io உலாவியின் செயல்பாட்டைப் பற்றி மேலும் அறியலாம்: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

w8io இல் பணிபுரியும் போது, ​​எனக்கு ஏற்கனவே சந்தேகம் இருந்தது, ஆனால் வேலை அதன் தர்க்கரீதியான முடிவுக்கு வந்து நான் SDK ஐ உருவாக்கத் தொடங்கியபோது, ​​எனது சந்தேகங்கள் உறுதிப்படுத்தப்பட்டன. மிக முக்கியமானவை, கிரிப்டோகிராஃபிக் செயல்பாடுகள் உட்பட சில செயல்பாடுகளை எங்கும் என்னால் கண்டுபிடிக்க முடியவில்லை. பிறகு அஸ்திவாரத்திற்கு சொந்தமாக செங்கற்களை செய்து ஆரம்பித்தேன். அவர்கள் பிறந்தது இதுதான்: ஏபிகோட் அடிப்படை58 க்கு குறியாக்கம் செய்ய (உண்மையில் எந்த எழுத்துக்களையும் குறியாக்கம் செய்ய), Curve25519 இணக்கமான கையொப்பங்களை உருவாக்க மற்றும் சரிபார்க்க (விருப்பங்களுடன் ஸ்டெராய்டுகள் மீது), பிளேக்2பி ஹாஷ்களில் ஒன்றைக் கணக்கிடுவதற்கு (இது PHP 7.2 முதல் மட்டுமே கிடைத்தது) போன்றவை.

இங்குதான் நான் நன்றி சொல்ல வேண்டும் இனல கர்தனோவா என்னை திசையில் சுட்டிக்காட்டிய சில மதிப்புமிக்க ஆலோசனைகளுக்கு இசையமைப்பாளர் எனக்குப் பரிச்சயமான, ஆனால் காலாவதியான கோப்புகளைச் சேர்ப்பதற்குப் பதிலாக.

ஓரிரு மாதங்களுக்குப் பிறகு WavesKit வெளியிடப்பட்டது, வெளியே வந்தது பீட்டா பதிப்புகள் மற்றும் அலைகள் இயங்குதளத்தின் அனைத்து நிலையான செயல்பாடுகளுடன் வேலை செய்ய இப்போது தயாராக உள்ளது. அனைத்து கிடைக்கும் முக்கிய நெட்வொர்க் பரிவர்த்தனைகளை எளிதாக உருவாக்கலாம், கையொப்பமிடலாம் மற்றும் ஒரே ஒரு தொகுப்பைப் பயன்படுத்தி அனுப்பலாம், 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 முகவரியிலிருந்து அலைகள் தானாகவே விதை சொற்றொடரைப் பயன்படுத்தி "சோதனை" என்ற மாற்று முகவரிக்கு கணக்கிட்டு, அதை ஒரு தனிப்பட்ட விசையுடன் கையொப்பமிடுவதற்கு மாற்றவும் மற்றும் பிணையத்திற்கு அனுப்பவும். இதற்குப் பிறகு, பிணையத்தால் பரிவர்த்தனை வெற்றிகரமாக உறுதிசெய்யப்பட்டதை உறுதிசெய்கிறோம்.

பரிவர்த்தனைகளுடன் வேலை கவனம் செலுத்துகிறது tx இல் தொடங்கும் செயல்பாடுகள். பரிவர்த்தனைகளுடன் பணிபுரிவதை நன்கு புரிந்துகொள்ள, நீங்கள் படிக்கலாம் WavesKit ஆவணங்கள் அல்லது உடனடியாக விளக்க உதாரணங்களுக்கு திரும்பவும் தொடர்ச்சியான ஒருங்கிணைப்பு சோதனைகள்.

WavesKit நிஜ உலக பயன்பாட்டில் உருவாக்கப்பட்டுள்ளதால், இது ஏற்கனவே மேம்பட்ட அம்சங்களைக் கொண்டுள்ளது. முதல் கொலையாளி அம்சம் செயல்பாட்டை உறுதி, இது பரிவர்த்தனை இழக்கப்படவில்லை என்ற நம்பிக்கையின் தேவையான அளவை அடைவதைக் கட்டுப்படுத்துகிறது, ஆனால், மாறாக, உறுதிப்படுத்தப்பட்டு, நெட்வொர்க்கில் தேவையான உறுதிப்படுத்தல்களின் எண்ணிக்கையை அடைந்தது.

மற்றொரு குண்டு துளைக்காத பொறிமுறையானது WavesKit முனைகளுடன் எவ்வாறு தொடர்பு கொள்கிறது என்பது. கிரீன்ஹவுஸ் நிலைமைகளில், கட்டமைப்பானது பிரதான முனையுடன் மட்டுமே இயங்குகிறது, அதனுடன் நிலையான இணைப்பைப் பராமரிக்கிறது, ஆனால் பிழைகள் ஏற்பட்டால் அது தானாகவே காப்புப்பிரதிக்கு மாறலாம். நீங்கள் காப்பு முனைகளின் வரிசையை அமைத்தால், நீங்கள் செயல்பாட்டை அழைக்கலாம் setBestNode தற்போதைய உயரம் மற்றும் மறுமொழி வேகத்தின் அதிகபட்ச மதிப்பின் அடிப்படையில் சிறந்த முனையை பிரதானமாக தீர்மானிக்க. இப்போது இதில் உள்ளக வினவல் தற்காலிகச் சேமிப்பைச் சேர்த்து, பயனர்கள் மற்றும் முனை உரிமையாளர்கள் இருவரையும் கவனித்துக் கொள்ளுங்கள்.

சமீபத்திய மேம்பட்ட வழிமுறைகளில் ஒன்று செயல்பாடு ஆகும் txMonitor. உள்வரும் பரிவர்த்தனைகளுக்கு உண்மையான நேரத்தில் பதிலளிக்க வேண்டியதன் காரணமாக இது தோன்றியது. இந்த செயல்பாடு பிளாக்செயினில் பரிவர்த்தனைகளை செயலாக்குவது தொடர்பான அனைத்து நுணுக்கங்களையும் முழுமையாக தீர்க்கிறது. மேலும் வலி இல்லை, விரும்பிய விருப்பங்களுடன் உங்கள் கால்பேக் செயல்பாட்டை அமைத்து, உங்கள் செயல்முறைகளைத் தொடங்க புதிய பரிவர்த்தனைகளுக்கு காத்திருக்கவும். உதாரணமாக, என்னுடைய மற்றொரு திட்டம் VECRO இந்தச் செயல்பாட்டைச் சுற்றி முழுமையாக கட்டமைக்கப்பட்டுள்ளது, இது நேரடியாக எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் எளிதாகப் படிக்கலாம் திட்டக் குறியீட்டில்.

நான் திறந்த மூலத்தை விரும்புகிறேன், இது மனிதகுலத்தின் மிகப்பெரிய சாதனைகளில் ஒன்றாகும். நான் மட்டுமே டெவலப்பர் மற்றும் எனது தேவைகள் அனைத்தும் தீர்க்கப்படும் நிலையை அடைந்துவிட்டதால், பயன்படுத்தவும் பங்களிக்கவும் உங்களை அழைக்கிறேன் வேவ்ஸ்கிட்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்