அலைகள் பிளாக்செயினில் திறந்த மூல பரவலாக்கப்பட்ட இணைப்பு நிரல்

வேவ்ஸ் பிளாக்செயின் அடிப்படையிலான பரவலாக்கப்பட்ட இணைப்பு திட்டம், பெடெக்ஸ் குழுவால் வேவ்ஸ் லேப்ஸ் மானியத்தின் ஒரு பகுதியாக செயல்படுத்தப்பட்டது.

இடுகை ஸ்பான்சர் செய்யப்படவில்லை! நிரல் திறந்த மூலமாகும், அதன் பயன்பாடு மற்றும் விநியோகம் இலவசம். நிரலின் பயன்பாடு dApp பயன்பாடுகளின் வளர்ச்சியைத் தூண்டுகிறது மற்றும் பொதுவாக, பரவலாக்கத்தை ஊக்குவிக்கிறது, இது நெட்வொர்க்கின் ஒவ்வொரு பயனருக்கும் பயனுள்ளதாக இருக்கும்.

அலைகள் பிளாக்செயினில் திறந்த மூல பரவலாக்கப்பட்ட இணைப்பு நிரல்

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

செயல்பாட்டின் அடிப்படையில், இது ஒரு சாதாரண துணை அமைப்பாகும், இது ஒரு பரிந்துரையாளருடன் பதிவுசெய்தல், பரிந்துரைகளுக்கான பல-நிலை ஊதியம் மற்றும் கணினியில் பதிவு செய்வதற்கான உந்துதல் (கேஷ்பேக்) ஆகியவற்றை செயல்படுத்துகிறது. கணினி ஒரு "தூய" dApp ஆகும், அதாவது, வலைப் பயன்பாடு அதன் சொந்த பின்தளம், தரவுத்தளம் போன்றவை இல்லாமல் பிளாக்செயினுடன் நேரடியாக தொடர்பு கொள்கிறது.

பல திட்டங்களில் பயனுள்ளதாக இருக்கும் நுட்பங்கள் பயன்படுத்தப்படுகின்றன:

  • உடனடியாகத் திருப்பிச் செலுத்துவதன் மூலம் ஒரு ஸ்மார்ட் கணக்கை கிரெடிட்டில் அழைப்பது (அழைப்பின் போது, ​​அழைப்பிற்கு பணம் செலுத்த கணக்கில் டோக்கன்கள் எதுவும் இல்லை, ஆனால் அவை அழைப்பின் விளைவாக தோன்றும்).
  • PoW-captcha - ஸ்மார்ட் கணக்கு செயல்பாடுகளின் உயர் அதிர்வெண் தானியங்கி அழைப்புக்கு எதிரான பாதுகாப்பு - கேப்ட்சாவைப் போன்றது, ஆனால் கணினி வளங்களைப் பயன்படுத்துவதற்கான ஆதாரம் மூலம்.
  • டெம்ப்ளேட் மூலம் தரவு விசைகளுக்கான கோரிக்கை.

விண்ணப்பம் கொண்டுள்ளது:

  • ride4dapps மொழியில் ஸ்மார்ட் கணக்கு குறியீடு (திட்டமிட்டபடி, முக்கிய ஸ்மார்ட் கணக்கில் இணைக்கப்பட்டுள்ளது, இதற்காக நீங்கள் இணைந்த செயல்பாட்டை செயல்படுத்த வேண்டும்);
  • வேவ்ஸ் நோட் ரெஸ்ட் ஏபிஐயின் மேல் சுருக்க அடுக்கை செயல்படுத்தும் js ரேப்பர்;
  • vuejs கட்டமைப்பில் உள்ள குறியீடு, இது நூலகம் மற்றும் RIDE குறியீட்டைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு.

பட்டியலிடப்பட்ட அனைத்து அம்சங்களையும் விவரிப்போம்.

ஸ்மார்ட் கணக்கை உடனடியாக திருப்பிச் செலுத்துவதன் மூலம் கடனாக அழைக்கிறது

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

"பெறுநரின் இழப்பில்" (ஸ்கிரிப்ட் நிறுவப்பட்ட ஸ்மார்ட் கணக்கு) இன்வோக்ஸ்கிரிப்டை அழைக்க முடிந்தால் அது மிகவும் வசதியாக இருக்கும், மேலும் இந்த சாத்தியம் வெளிப்படையான வழியில் இல்லாவிட்டாலும் உள்ளது.

இன்வோக்ஸ்கிரிப்டிற்குள், அழைப்பாளரின் முகவரிக்கு ஸ்கிரிப்ட் டிரான்ஸ்ஃபர் செய்யப்பட்டால், அது கட்டணத்தில் செலவழிக்கப்பட்ட டோக்கன்களை ஈடுசெய்கிறது, அழைப்பின் போது அழைப்புக் கணக்கில் சொத்துக்கள் எதுவும் இல்லாவிட்டாலும், அத்தகைய அழைப்பு வெற்றி பெறும். போதுமான டோக்கன்களுக்கான காசோலை பரிவர்த்தனைக்கு அழைக்கப்பட்ட பிறகு செய்யப்படுகிறது, அதற்கு முன் அல்ல, எனவே அவை உடனடியாக மீட்டெடுக்கப்பட்டால், கிரெடிட்டில் பரிவர்த்தனைகளை செய்ய முடியும்.

ஸ்கிரிப்ட் டிரான்ஸ்ஃபர்(i.அழைப்பாளர், i.கட்டணம், அலகு)

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

func checkFee(i:Invocation) = {
if i.fee > maxFee then throw(“unreasonable large fee”) else
if i.feeAssetId != unit then throw(“fee must be in WAVES”) else true
}

மேலும், தீங்கிழைக்கும் மற்றும் அர்த்தமற்ற நிதி விரயத்திலிருந்து பாதுகாக்க, தானியங்கி அழைப்புக்கு (PoW-captcha) எதிராக பாதுகாப்பு தேவைப்படுகிறது.

PoW-கேப்ட்சா

ப்ரூஃப்-ஆஃப்-வொர்க் கேப்ட்சாவின் யோசனை புதியதல்ல மற்றும் அலைகளை அடிப்படையாகக் கொண்டவை உட்பட பல்வேறு திட்டங்களில் ஏற்கனவே செயல்படுத்தப்பட்டுள்ளது. யோசனையின் புள்ளி என்னவென்றால், எங்கள் திட்டத்தின் வளங்களை வீணடிக்கும் ஒரு செயலைச் செய்ய, அழைப்பாளர் தனது சொந்த வளங்களையும் செலவிட வேண்டும், இது வளக் குறைப்புத் தாக்குதலை மிகவும் விலை உயர்ந்ததாக ஆக்குகிறது. பரிவர்த்தனையை அனுப்பியவர் PoW சிக்கலைத் தீர்த்துவிட்டார் என்பதற்கான மிக எளிதான மற்றும் குறைந்த விலை சரிபார்ப்புக்கு, பரிவர்த்தனை ஐடி சோதனை உள்ளது:

எடுத்தால்(toBase58String(i.transactionId), 3) != “123” பின்னர் எறியுங்கள் (“வேலை தோல்விக்கான சான்று”) வேறு

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

டெம்ப்ளேட் மூலம் தரவு விசைகளை வினவவும்

பிளாக்செயினை ஒரு தரவுத்தளமாகப் பயன்படுத்த, வார்ப்புருக்களைப் பயன்படுத்தி தரவுத்தளத்தை ஒரு முக்கிய-வால் என வினவுவதற்கு ஏபிஐ கருவிகளை வைத்திருப்பது இன்றியமையாதது. அத்தகைய கருவித்தொகுப்பு ஒரு அளவுருவாக ஜூலை 2019 தொடக்கத்தில் தோன்றியது ?போட்டிகளில் REST API கோரிக்கையில் /முகவரிகள்/தரவு?பொருத்தங்கள்=regexp. இப்போது, ​​நாம் ஒன்றுக்கும் மேற்பட்ட விசைகளைப் பெற வேண்டும், எல்லா விசைகளையும் ஒரே நேரத்தில் இணைய பயன்பாட்டிலிருந்து பெறவில்லை, ஆனால் சில குழுக்கள் மட்டுமே, விசையின் பெயரால் நாம் தேர்வு செய்யலாம். எடுத்துக்காட்டாக, இந்தத் திட்டத்தில், திரும்பப் பெறும் பரிவர்த்தனைகள் இவ்வாறு குறியாக்கம் செய்யப்பட்டுள்ளன

withdraw_${userAddress}_${txid}

டெம்ப்ளேட்டைப் பயன்படுத்தி கொடுக்கப்பட்ட எந்த முகவரிக்கும் பணம் திரும்பப் பெறுவதற்கான பரிவர்த்தனைகளின் பட்டியலைப் பெற இது உங்களை அனுமதிக்கிறது:

?matches=withdraw_${userAddress}_.*

இப்போது முடிக்கப்பட்ட தீர்வின் கூறுகளை பகுப்பாய்வு செய்வோம்.

vuejs குறியீடு

குறியீடு ஒரு வேலை செய்யும் டெமோ, உண்மையான திட்டத்திற்கு அருகில் உள்ளது. இது Waves Keeper மூலம் உள்நுழைவதையும், affiliate.js நூலகத்துடன் பணிபுரிவதையும் செயல்படுத்துகிறது, இதன் உதவியுடன் கணினியில் ஒரு பயனரைப் பதிவு செய்கிறது, பரிவர்த்தனை தரவை வினவுகிறது, மேலும் பயனரின் கணக்கில் சம்பாதித்த பணத்தை திரும்பப் பெற உங்களை அனுமதிக்கிறது.

அலைகள் பிளாக்செயினில் திறந்த மூல பரவலாக்கப்பட்ட இணைப்பு நிரல்

RIDE இல் குறியீடு

பதிவு, நிதி மற்றும் திரும்பப் பெறுதல் செயல்பாடுகளைக் கொண்டுள்ளது.

பதிவு செயல்பாடு கணினியில் ஒரு பயனரை பதிவு செய்கிறது. இது இரண்டு அளவுருக்களைக் கொண்டுள்ளது: பரிந்துரையாளர் (பரிந்துரை செய்பவரின் முகவரி) மற்றும் செயல்பாட்டுக் குறியீட்டில் பயன்படுத்தப்படாத உப்பு அளவுரு, இது பரிவர்த்தனை ஐடியைத் தேர்ந்தெடுக்கத் தேவை (PoW-captcha task).

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

பதிவு செயல்பாட்டின் விளைவாக இரண்டு பதிவுகள் உள்ளன:

${owner)_referer = referer
${referer}_referral_${owner} = owner

இது முன்னோக்கி மற்றும் பின்னோக்கித் தேடலை அனுமதிக்கிறது (கொடுக்கப்பட்ட பயனரைப் பரிந்துரைப்பவர் மற்றும் கொடுக்கப்பட்ட பயனரின் அனைத்து பரிந்துரைகளும்).

நிதிச் செயல்பாடு உண்மையான செயல்பாட்டை மேம்படுத்துவதற்கான ஒரு டெம்ப்ளேட் ஆகும். வழங்கப்பட்ட படிவத்தில், இது பரிவர்த்தனை மூலம் மாற்றப்பட்ட அனைத்து நிதிகளையும் எடுத்து அவற்றை 1, 2, 3 நிலைகளின் பரிந்துரையாளர் கணக்குகளுக்கு, "கேஷ்பேக்" கணக்கு மற்றும் "மாற்றம்" கணக்கிற்கு விநியோகிக்கிறது (முந்தைய கணக்குகளுக்கு விநியோகிக்கும்போது மீதமுள்ள அனைத்தும் இங்கே கிடைக்கும்).

கேஷ்பேக் என்பது இறுதிப் பயனரை பரிந்துரை அமைப்பில் பங்கேற்க ஊக்குவிக்கும் ஒரு வழியாகும். "கேஷ்பேக்" வடிவில் கணினியால் செலுத்தப்படும் கமிஷனின் பகுதியைப் பயனர் பரிந்துரைகளுக்கான வெகுமதிகளைப் போலவே திரும்பப் பெறலாம்.

பரிந்துரை முறையைப் பயன்படுத்தும் போது, ​​நிதிச் செயல்பாடு மாற்றியமைக்கப்பட வேண்டும், கணினி செயல்படும் ஸ்மார்ட் கணக்கின் முக்கிய தர்க்கத்தில் கட்டமைக்கப்பட வேண்டும். எடுத்துக்காட்டாக, பந்தயம் கட்டப்பட்டதற்கு பரிந்துரை வெகுமதி வழங்கப்பட்டால், நிதிச் செயல்பாடு பந்தயம் கட்டப்பட்ட தர்க்கத்தில் கட்டமைக்கப்பட வேண்டும் (அல்லது வெகுமதி செலுத்தப்படும் மற்றொரு இலக்கு நடவடிக்கை செய்யப்படுகிறது). இந்த அம்சத்தில் குறியிடப்பட்ட பரிந்துரை வெகுமதிகளின் மூன்று நிலைகள் உள்ளன. நீங்கள் அதிகமாகவோ அல்லது குறைவாகவோ நிலைகளை உருவாக்க விரும்பினால், இது குறியீட்டிலும் சரி செய்யப்படுகிறது. வெகுமதி சதவீதம், level1-level3 மாறிலிகளால் அமைக்கப்படுகிறது, குறியீட்டில் அது கணக்கிடப்படுகிறது தொகை * நிலை / 1000, அதாவது, மதிப்பு 1 0,1% உடன் ஒத்துள்ளது (இதை குறியீட்டிலும் மாற்றலாம்).

செயல்பாட்டு அழைப்பு கணக்கின் இருப்பை மாற்றுகிறது மற்றும் படிவத்தை பதிவு செய்யும் நோக்கத்திற்காக உள்ளீடுகளை உருவாக்குகிறது:

fund_address_txid = address:owner:inc:level:timestamp
Для получения timestamp (текущего времени) используется такая вот связка
func getTimestamp() = {
let block = extract(blockInfoByHeight(height))
toString(block.timestamp)
}

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

# withdraw log: withdraw_user_txid=amount:timestamp

விண்ணப்ப

பயன்பாட்டின் முக்கிய பகுதி affiliate.js நூலகம் ஆகும், இது துணை தரவு மாதிரிகள் மற்றும் WAVES NODE REST API ஆகியவற்றுக்கு இடையேயான பாலமாகும். கட்டமைப்பு-சுயாதீனமான சுருக்க அடுக்கு (எதை வேண்டுமானாலும் பயன்படுத்தலாம்) செயல்படுத்துகிறது. செயலில் உள்ள செயல்பாடுகள் (பதிவு, திரும்பப் பெறுதல்) கணினியில் அலைகள் கீப்பர் நிறுவப்பட்டிருப்பதாக கருதுகின்றன, நூலகமே இதை சரிபார்க்காது.

செயல்படுத்தும் முறைகள்:

fetchReferralTransactions
fetchWithdrawTransactions
fetchMyBalance
fetchReferrals
fetchReferer
withdraw
register

முறைகளின் செயல்பாடுகள் பெயர்கள், அளவுருக்கள் மற்றும் திரும்பும் தரவு ஆகியவை குறியீட்டில் விவரிக்கப்பட்டுள்ளன. பதிவு செயல்பாட்டிற்கு கூடுதல் கருத்துகள் தேவை - இது பரிவர்த்தனை ஐடி தேர்வு சுழற்சியைத் தொடங்குகிறது, இதனால் அது 123 இல் தொடங்குகிறது - இது மேலே விவரிக்கப்பட்ட PoW கேப்ட்சா ஆகும், இது வெகுஜன பதிவுகளிலிருந்து பாதுகாக்கிறது. செயல்பாடு தேவையான ஐடியுடன் ஒரு பரிவர்த்தனையைக் கண்டறிந்து, அலைகள் கீப்பர் மூலம் கையொப்பமிடுகிறது.

DEX துணை நிரல் கிடைக்கிறது GitHub.com.

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

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