அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp

வணக்கம்! இந்தக் கட்டுரையில், அலைகள் முனையில் ஒரு வழக்கமான dApp ஐ எவ்வாறு எழுதுவது மற்றும் இயக்குவது என்பதைக் காண்பிப்பேன். தேவையான கருவிகள், முறைகள் மற்றும் வளர்ச்சியின் உதாரணம் ஆகியவற்றைப் பார்ப்போம்.

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp

dApps மற்றும் வழக்கமான பயன்பாடுகளுக்கான மேம்பாட்டுத் திட்டம் கிட்டத்தட்ட ஒரே மாதிரியாக உள்ளது:

  • எழுத்து குறியீடு
  • தானியங்கி சோதனை எழுதுதல்
  • பயன்பாட்டைத் தொடங்கவும்
  • சோதனை

கருவிகள்

1. docker முனை மற்றும் வேவ்ஸ் எக்ஸ்ப்ளோரரை இயக்க

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

  • சோதனை டோக்கன்களுடன் உங்களுக்கு தொடர்ந்து புதிய கணக்குகள் தேவைப்படும். சோதனை நெட்வொர்க் குழாய் ஒவ்வொரு 10 நிமிடங்களுக்கும் 10 அலைகளை மாற்றுகிறது.
  • சோதனை நெட்வொர்க்கில் சராசரி தொகுதி நேரம் 1 நிமிடம், முனையில் - 15 வினாடிகள். ஒரு பரிவர்த்தனைக்கு பல உறுதிப்படுத்தல்கள் தேவைப்படும்போது இது குறிப்பாக கவனிக்கப்படுகிறது.
  • பொது சோதனை முனைகளில் ஆக்கிரமிப்பு கேச்சிங் சாத்தியமாகும்.
  • பராமரிப்பு காரணமாக அவை தற்காலிகமாக கிடைக்காமல் போகலாம்.

இனிமேல் நீங்கள் உங்கள் சொந்த முனையுடன் வேலை செய்கிறீர்கள் என்று கருதுகிறேன்.

2. சர்ப்போர்டு கட்டளை வரி கருவி

  • ppa, homebrew அல்லது exe ஐப் பயன்படுத்தி Node.jsஐ பதிவிறக்கி நிறுவவும்: https://nodejs.org/en/download/.
  • சர்போர்டை நிறுவவும், இது ஏற்கனவே உள்ள முனையில் சோதனைகளை இயக்க உங்களை அனுமதிக்கும் கருவியாகும்.

npm install -g @waves/surfboard

3. விஷுவல் ஸ்டுடியோ குறியீடு சொருகி

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

விஷுவல் ஸ்டுடியோ குறியீட்டைப் பதிவிறக்கி நிறுவவும்: https://code.visualstudio.com/

VS குறியீட்டைத் திறந்து வேவ்ஸ்-ரைடு செருகுநிரலை நிறுவவும்:

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp

Waves Keeper உலாவி நீட்டிப்பு: https://wavesplatform.com/products-keeper

முடிந்தது!

முனை மற்றும் அலைகள் எக்ஸ்ப்ளோரரைத் தொடங்கவும்

1. முனையைத் தொடங்கவும்:

docker run -d -p 6869:6869 wavesplatform/waves-private-node

REST API இன் வழியாக முனை தொடங்கப்பட்டிருப்பதை உறுதிசெய்யவும் http://localhost:6869:

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp
முனைக்கான ஸ்வாக்கர் REST API

2. Waves Explorer இன் நிகழ்வைத் தொடங்கவும்:

docker run -d -e API_NODE_URL=http://localhost:6869 -e NODE_LIST=http://localhost:6869 -p 3000:8080 wavesplatform/explorer

உலாவியைத் திறந்து அதற்குச் செல்லவும் http://localhost:3000. வெற்று உள்ளூர் முனை சுற்று எவ்வளவு விரைவாக கட்டப்பட்டது என்பதை நீங்கள் காண்பீர்கள்.

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp
Waves Explorer ஒரு உள்ளூர் முனை நிகழ்வைக் காட்டுகிறது

RIDE அமைப்பு மற்றும் சர்ப்போர்டு கருவி

வெற்று கோப்பகத்தை உருவாக்கி அதில் கட்டளையை இயக்கவும்

surfboard init

கட்டளையானது திட்ட அமைப்பு, "ஹலோ வேர்ல்ட்" பயன்பாடுகள் மற்றும் சோதனைகளுடன் ஒரு கோப்பகத்தை துவக்குகிறது. இந்த கோப்புறையை VS குறியீட்டுடன் திறந்தால், நீங்கள் பார்ப்பீர்கள்:

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp
Surfboard.config.json

  • ./ride/ கோப்புறையின் கீழ் நீங்கள் ஒரு ஒற்றை கோப்பை wallet.ride-ஐக் காண்பீர்கள் - dApp குறியீடு அமைந்துள்ள கோப்பகம். அடுத்த தொகுதியில் dApps பற்றி சுருக்கமாக பகுப்பாய்வு செய்வோம்.
  • ./test/ கோப்புறையின் கீழ் நீங்கள் *.js கோப்பைக் காண்பீர்கள். சோதனைகள் இங்கே சேமிக்கப்படுகின்றன.
  • ./surfboard.config.json – இயங்கும் சோதனைகளுக்கான உள்ளமைவு கோப்பு.

Envs ஒரு முக்கியமான பகுதி. ஒவ்வொரு சூழலும் இவ்வாறு கட்டமைக்கப்பட்டுள்ளது:

  • நெட்வொர்க்கின் dApp மற்றும் CHAIN_ID ஐத் தொடங்கப் பயன்படுத்தப்படும் முனையின் REST API இறுதிப்புள்ளி.
  • உங்கள் சோதனை டோக்கன்களின் ஆதாரமாக இருக்கும் டோக்கன்களைக் கொண்ட கணக்கிற்கான ரகசிய சொற்றொடர்.

நீங்கள் பார்க்க முடியும் என, surfboard.config.json முன்னிருப்பாக பல சூழல்களை ஆதரிக்கிறது. இயல்புநிலை என்பது உள்ளூர் சூழல் (defaultEnv விசை மாற்றக்கூடிய அளவுரு).

Wallet-டெமோ பயன்பாடு

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

ஒரு எளிய Wallet-டெமோ பயன்பாட்டைப் பார்ப்போம். dApp முகவரிக்கு யார் வேண்டுமானாலும் டோக்கன்களை அனுப்பலாம். உங்கள் அலைகளை மட்டுமே நீங்கள் திரும்பப் பெற முடியும். InvokeScript பரிவர்த்தனை மூலம் இரண்டு @Callable செயல்பாடுகள் கிடைக்கின்றன:

  • deposit()WAVES இல் இணைக்கப்பட்ட கட்டணம் தேவை
  • withdraw(amount: Int)இது டோக்கன்களைத் திருப்பித் தருகிறது

dApp வாழ்க்கைச் சுழற்சி முழுவதும், கட்டமைப்பு (முகவரி → தொகை) பராமரிக்கப்படும்:

செயல்
விளைந்த நிலை

ஆரம்ப
காலியாக

ஆலிஸ் 5 அலைகளை டெபாசிட் செய்கிறார்
ஆலிஸ்-முகவரி → 500000000

பாப் 2 அலைகளை டெபாசிட் செய்கிறார்

ஆலிஸ்-முகவரி → 500000000
பாப் முகவரி → 200000000

பாப் 7 அலைகளை திரும்பப் பெறுகிறார்
மறுக்கப்பட்டது!

ஆலிஸ் 4 அலைகளை திரும்பப் பெறுகிறார்
ஆலிஸ்-முகவரி → 100000000
பாப் முகவரி → 200000000

நிலைமையை முழுமையாகப் புரிந்துகொள்ள இங்கே குறியீடு உள்ளது:

# In this example multiple accounts can deposit their funds and safely take them back. No one can interfere with this.
# An inner state is maintained as mapping `address=>waves`.
{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
@Callable(i)
func deposit() = {
 let pmt = extract(i.payment)
 if (isDefined(pmt.assetId))
    then throw("works with waves only")
    else {
     let currentKey = toBase58String(i.caller.bytes)
     let currentAmount = match getInteger(this, currentKey) {
       case a:Int => a
       case _ => 0
     }
     let newAmount = currentAmount + pmt.amount
     WriteSet([DataEntry(currentKey, newAmount)]) 
   }
 }
@Callable(i)
func withdraw(amount: Int) = {
 let currentKey = toBase58String(i.caller.bytes)
 let currentAmount = match getInteger(this, currentKey) {
   case a:Int => a
   case _ => 0
 }
 let newAmount = currentAmount - amount
 if (amount < 0)
   then throw("Can't withdraw negative amount")
   else if (newAmount < 0)
     then throw("Not enough balance")
     else ScriptResult(
       WriteSet([DataEntry(currentKey, newAmount)]),
       TransferSet([ScriptTransfer(i.caller, amount, unit)])
      )
 }
@Verifier(tx)
func verify() = false

மாதிரி குறியீட்டையும் இங்கே காணலாம் மகிழ்ச்சியா.

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

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp
கோப்பை தொகுக்கும்போது வேறு டெக்ஸ்ட் எடிட்டரைப் பயன்படுத்த விரும்பினால், பயன்படுத்தவும்

surfboard compile ride/wallet.ride

இது பேஸ்64 தொகுக்கப்பட்ட RIDE குறியீட்டின் தொடரை வெளியிடும்.

'wallet.ride'க்கான சோதனை ஸ்கிரிப்ட்

பார்க்கலாம் சோதனை கோப்பு. ஜாவாஸ்கிரிப்ட்டின் மோச்சா கட்டமைப்பால் இயக்கப்படுகிறது. "முன்" செயல்பாடு மற்றும் மூன்று சோதனைகள் உள்ளன:

  • "முன்" MassTransferTransaction மூலம் பல கணக்குகளுக்கு நிதியளிக்கிறது, ஸ்கிரிப்டை தொகுத்து அதை பிளாக்செயினில் பயன்படுத்துகிறது.
  • "டெபாசிட் செய்யலாம்" என்பது பிணையத்திற்கு இன்வோக்ஸ்கிரிப்ட் பரிவர்த்தனையை அனுப்புகிறது, இரண்டு கணக்குகளில் ஒவ்வொன்றிற்கும் டெபாசிட்() செயல்பாட்டைச் செயல்படுத்துகிறது.
  • "டெபாசிட் செய்ததை விட அதிகமாக எடுக்க முடியாது" சோதனைகள் பிறரின் டோக்கன்களை யாரும் திருட முடியாது.
  • "டெபாசிட் செய்யலாம்" திரும்பப் பெறுதல்கள் சரியாகச் செயலாக்கப்பட்டதா என்பதைச் சரிபார்க்கிறது.

சர்போர்டில் இருந்து சோதனைகளை இயக்கவும் மற்றும் Waves Explorer இல் முடிவுகளை பகுப்பாய்வு செய்யவும்

சோதனையை இயக்க, இயக்கவும்

surfboard test

உங்களிடம் பல ஸ்கிரிப்ட்கள் இருந்தால் (உதாரணமாக, உங்களுக்கு தனி வரிசைப்படுத்தல் ஸ்கிரிப்ட் தேவை), நீங்கள் இயக்கலாம்

surfboard test my-scenario.js

சர்ப்போர்டு சோதனைக் கோப்புகளை ./test/ கோப்புறையில் சேகரித்து, surfboard.config.json இல் உள்ளமைக்கப்பட்ட முனையில் ஸ்கிரிப்டை இயக்கும். சில வினாடிகளுக்குப் பிறகு நீங்கள் இதைப் போன்ற ஒன்றைக் காண்பீர்கள்:

wallet test suite
Generating accounts with nonce: ce8d86ee
Account generated: foofoofoofoofoofoofoofoofoofoofoo#ce8d86ee - 3M763WgwDhmry95XzafZedf7WoBf5ixMwhX
Account generated: barbarbarbarbarbarbarbarbarbar#ce8d86ee - 3MAi9KhwnaAk5HSHmYPjLRdpCAnsSFpoY2v
Account generated: wallet#ce8d86ee - 3M5r6XYMZPUsRhxbwYf1ypaTB6MNs2Yo1Gb
Accounts successfully funded
Script has been set
   √ Can deposit (4385ms)
   √ Cannot withdraw more than was deposited
   √ Can withdraw (108ms)
3 passing (15s)

ஹூரே! சோதனைகள் தேர்ச்சி பெற்றன. இப்போது Waves Explorer ஐப் பயன்படுத்தும் போது என்ன நடக்கிறது என்பதைப் பார்ப்போம்: தொகுதிகளைப் பாருங்கள் அல்லது மேலே உள்ள முகவரிகளில் ஒன்றைத் தேடலில் ஒட்டவும் (எடுத்துக்காட்டாக, தொடர்புடையது wallet#. அங்கு நீங்கள் பரிவர்த்தனை வரலாறு, dApp நிலை, சிதைக்கப்பட்ட பைனரி கோப்பு ஆகியவற்றைக் காணலாம்.

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp
அலைகள் எக்ஸ்ப்ளோரர். இப்போது பயன்படுத்தப்பட்ட ஒரு பயன்பாடு.

சில சர்ஃபோர்டு குறிப்புகள்:

1. testnet சூழலில் சோதிக்க, பயன்படுத்தவும்:

surfboard test --env=testnet

சோதனை டோக்கன்களைப் பெறுங்கள்

2. பரிவர்த்தனைகளின் JSON பதிப்புகள் மற்றும் அவை கணு மூலம் எவ்வாறு செயலாக்கப்படுகின்றன என்பதைப் பார்க்க விரும்பினால், -v உடன் சோதனையை இயக்கவும் ('வெர்போஸ்' என்று பொருள்):

surfboard test -v

Waves Keeper உடன் பயன்பாடுகளைப் பயன்படுத்துதல்

1. வேவ்ஸ் கீப்பரை வேலை செய்ய அமைக்கவும்: http://localhost:6869

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp
லோக்கல் நோட் உடன் வேலை செய்ய வேவ்ஸ் கீப்பரை அமைத்தல்

2. நெட்வொர்க்கிற்கான டோக்கன்களுடன் இரகசிய சொற்றொடரை இறக்குமதி செய்யவா? எளிமைக்காக, உங்கள் முனையின் ஆரம்ப விதையைப் பயன்படுத்தவும்: waves private node seed with waves tokens. முகவரி: 3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF.

3. npm ஐப் பயன்படுத்தி, சேவையகமற்ற ஒற்றைப் பக்க பயன்பாட்டை நீங்களே இயக்கலாம். அல்லது ஏற்கனவே உள்ளவற்றுக்குச் செல்லவும்: chrome-ext.wvservices.com/dapp-wallet.html

4. சோதனை ஓட்டத்தில் இருந்து பணப்பை முகவரியை உள்ளிடவும் (மேலே அடிக்கோடிடப்பட்டுள்ளது) dApp முகவரி உரை பெட்டியில்

5. "டெபாசிட்" புலத்தில் ஒரு சிறிய தொகையை உள்ளிட்டு பொத்தானைக் கிளிக் செய்யவும்:

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp
Waves Keeper 10 WAVES செலுத்தி InvokeScript பரிவர்த்தனையில் கையெழுத்திட அனுமதி கோருகிறார்.

6. பரிவர்த்தனையை உறுதிப்படுத்தவும்:

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

7. Waves Explorerஐப் பயன்படுத்தி பரிவர்த்தனையைக் கண்காணிக்கவும். தேடல் புலத்தில் ஐடியை உள்ளிடவும்

அலைகளை உருவாக்குவது, வரிசைப்படுத்துவது மற்றும் சோதனை செய்வது எப்படி RIDE dApp

முடிவுகள் மற்றும் கூடுதல் தகவல்கள்

வேவ்ஸ் பிளாட்ஃபார்மில் எளிய dApps ஐ உருவாக்குதல், சோதனை செய்தல், வரிசைப்படுத்துதல் மற்றும் பயன்படுத்துவதற்கான கருவிகளைப் பார்த்தோம்:

  • சவாரி மொழி
  • VS குறியீடு ஆசிரியர்
  • அலைகள் எக்ஸ்ப்ளோரர்
  • surfboard
  • அலைகள் காப்பாளர்

தொடர்ந்து RIDE கற்க விரும்புபவர்களுக்கான இணைப்புகள்:

மேலும் உதாரணங்கள்
எடுத்துக்காட்டுகளுடன் ஆன்லைன் IDE
அலைகள் ஆவணப்படுத்தல்
டெலிகிராமில் டெவலப்பர் அரட்டை
ஸ்டேக்ஓவர்ஃப்ளோவில் அலைகள் மற்றும் சவாரி
புதியது! அலைகள் தளத்தில் dApps உருவாக்குவதற்கான ஆன்லைன் படிப்புகள்

RIDE தலைப்பில் தொடர்ந்து டைவிங் செய்து உங்கள் முதல் dApp ஐ உருவாக்கவும்!

டிஎல்; டி.ஆர்: bit.ly/2YCFnwY

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

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