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ల అభిమాని కాకపోతే మరియు టెక్స్ట్ ఎడిటర్‌లను ఇష్టపడితే ఈ దశ ఐచ్ఛికం. అవసరమైన అన్ని సాధనాలు కమాండ్ లైన్ యుటిలిటీలు. మీరు vim ఉపయోగిస్తే, ప్లగ్ఇన్‌పై శ్రద్ధ వహించండి విమ్-రైడ్.

విజువల్ స్టూడియో కోడ్‌ని డౌన్‌లోడ్ చేసి, ఇన్‌స్టాల్ చేయండి: https://code.visualstudio.com/

VS కోడ్‌ని తెరిచి, వేవ్స్-రైడ్ ప్లగిన్‌ను ఇన్‌స్టాల్ చేయండి:

RIDE dApp వేవ్‌లను ఎలా నిర్మించాలి, అమలు చేయాలి మరియు పరీక్షించాలి

వేవ్స్ కీపర్ బ్రౌజర్ పొడిగింపు: 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. వేవ్స్ ఎక్స్‌ప్లోరర్ యొక్క ఉదాహరణను ప్రారంభించండి:

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 వేవ్‌లను ఎలా నిర్మించాలి, అమలు చేయాలి మరియు పరీక్షించాలి
వేవ్స్ ఎక్స్‌ప్లోరర్ స్థానిక నోడ్ ఉదాహరణను ప్రదర్శిస్తుంది

RIDE నిర్మాణం మరియు సర్ఫ్‌బోర్డ్ సాధనం

ఖాళీ డైరెక్టరీని సృష్టించండి మరియు దానిలో ఆదేశాన్ని అమలు చేయండి

surfboard init

కమాండ్ ప్రాజెక్ట్ నిర్మాణం, "హలో వరల్డ్" అప్లికేషన్లు మరియు పరీక్షలతో డైరెక్టరీని ప్రారంభిస్తుంది. మీరు VS కోడ్‌తో ఈ ఫోల్డర్‌ని తెరిస్తే, మీరు చూస్తారు:

RIDE dApp వేవ్‌లను ఎలా నిర్మించాలి, అమలు చేయాలి మరియు పరీక్షించాలి
Surfboard.config.json

  • ./ride/ ఫోల్డర్ క్రింద మీరు ఒకే ఫైల్ wallet.rideని కనుగొంటారు - dApp కోడ్ ఉన్న డైరెక్టరీ. మేము తదుపరి బ్లాక్‌లో dAppలను క్లుప్తంగా విశ్లేషిస్తాము.
  • ./test/ ఫోల్డర్ కింద మీరు *.js ఫైల్‌ను కనుగొంటారు. పరీక్షలు ఇక్కడ నిల్వ చేయబడతాయి.
  • ./surfboard.config.json – నడుస్తున్న పరీక్షల కోసం కాన్ఫిగరేషన్ ఫైల్.

Envs ఒక ముఖ్యమైన విభాగం. ప్రతి పర్యావరణం ఇలా కాన్ఫిగర్ చేయబడింది:

  • నెట్‌వర్క్ యొక్క dApp మరియు CHAIN_IDని ప్రారంభించేందుకు ఉపయోగించే నోడ్ యొక్క REST API ముగింపు స్థానం.
  • మీ పరీక్ష టోకెన్‌లకు మూలాలుగా ఉండే టోకెన్‌లతో కూడిన ఖాతా కోసం రహస్య పదబంధం.

మీరు చూడగలిగినట్లుగా, surfboard.config.json డిఫాల్ట్‌గా బహుళ వాతావరణాలకు మద్దతు ఇస్తుంది. డిఫాల్ట్ స్థానిక పర్యావరణం (defaultEnv కీ మార్చదగిన పరామితి).

Wallet-డెమో అప్లికేషన్

ఈ విభాగం RIDE భాషకు సూచన కాదు. బదులుగా, బ్లాక్‌చెయిన్‌లో ఏమి జరుగుతుందో బాగా అర్థం చేసుకోవడానికి మేము అమలు చేసే మరియు పరీక్షించే అప్లికేషన్‌ను చూడండి.

సాధారణ Wallet-డెమో అప్లికేషన్‌ను చూద్దాం. ఎవరైనా dApp చిరునామాకు టోకెన్‌లను పంపవచ్చు. మీరు మీ వేవ్‌లను మాత్రమే ఉపసంహరించుకోవచ్చు. ఇన్వోక్‌స్క్రిప్ట్ ట్రాన్సాక్షన్ ద్వారా రెండు @కాల్ చేయగల ఫంక్షన్‌లు అందుబాటులో ఉన్నాయి:

  • deposit()వేవ్స్‌లో జోడించిన చెల్లింపు అవసరం
  • 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 ద్వారా బహుళ ఖాతాలకు నిధులు సమకూరుస్తుంది, స్క్రిప్ట్‌ను కంపైల్ చేస్తుంది మరియు దానిని బ్లాక్‌చెయిన్‌కు అమలు చేస్తుంది.
  • “డిపాజిట్ చేయగలదు” అనేది నెట్‌వర్క్‌కు ఇన్‌వోక్‌స్క్రిప్ట్ లావాదేవీని పంపుతుంది, ప్రతి రెండు ఖాతాలకు డిపాజిట్() ఫంక్షన్‌ని సక్రియం చేస్తుంది.
  • ఇతరుల టోకెన్‌లను ఎవరూ దొంగిలించలేని “డిపాజిట్ చేసిన దానికంటే ఎక్కువ తీసుకోలేరు” పరీక్షలు.
  • ఉపసంహరణలు సరిగ్గా ప్రాసెస్ చేయబడతాయో లేదో తనిఖీలను "డిపాజిట్ చేయవచ్చు".

సర్ఫ్‌బోర్డ్ నుండి పరీక్షలను అమలు చేయండి మరియు వేవ్స్ ఎక్స్‌ప్లోరర్‌లో ఫలితాలను విశ్లేషించండి

పరీక్షను అమలు చేయడానికి, అమలు చేయండి

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)

హుర్రే! పరీక్షలు పాసయ్యాయి. వేవ్స్ ఎక్స్‌ప్లోరర్‌ని ఉపయోగిస్తున్నప్పుడు ఏమి జరుగుతుందో ఇప్పుడు చూద్దాం: బ్లాక్‌లను చూడండి లేదా పైన ఉన్న చిరునామాలలో ఒకదాన్ని శోధనలో అతికించండి (ఉదాహరణకు, సంబంధిత wallet#. అక్కడ మీరు లావాదేవీ చరిత్ర, dApp స్థితి, డీకంపైల్డ్ బైనరీ ఫైల్‌ను కనుగొనవచ్చు.

RIDE dApp వేవ్‌లను ఎలా నిర్మించాలి, అమలు చేయాలి మరియు పరీక్షించాలి
వేవ్స్ ఎక్స్‌ప్లోరర్. ఇప్పుడే అమలు చేయబడిన అప్లికేషన్.

కొన్ని సర్ఫ్‌బోర్డ్ చిట్కాలు:

1. testnet వాతావరణంలో పరీక్షించడానికి, ఉపయోగించండి:

surfboard test --env=testnet

పరీక్ష టోకెన్లను పొందండి

2. మీరు లావాదేవీల యొక్క JSON సంస్కరణలను చూడాలనుకుంటే మరియు అవి నోడ్ ద్వారా ఎలా ప్రాసెస్ చేయబడతాయో చూడాలనుకుంటే, పరీక్షను -vతో అమలు చేయండి (అంటే 'వెర్బోస్'):

surfboard test -v

వేవ్స్ కీపర్‌తో యాప్‌లను ఉపయోగించడం

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 వేవ్‌లను ఎలా నిర్మించాలి, అమలు చేయాలి మరియు పరీక్షించాలి
వేవ్స్ కీపర్ 10 వేవ్‌ల చెల్లింపుతో ఇన్‌వోక్‌స్క్రిప్ట్ లావాదేవీపై సంతకం చేయడానికి అనుమతిని అభ్యర్థించారు.

6. లావాదేవీని నిర్ధారించండి:

RIDE dApp వేవ్‌లను ఎలా నిర్మించాలి, అమలు చేయాలి మరియు పరీక్షించాలి
లావాదేవీ సృష్టించబడింది మరియు నెట్‌వర్క్‌కు ప్రసారం చేయబడుతుంది. ఇప్పుడు మీరు ఆమె IDని చూడవచ్చు

7. వేవ్స్ ఎక్స్‌ప్లోరర్ ఉపయోగించి లావాదేవీని పర్యవేక్షించండి. శోధన ఫీల్డ్‌లో IDని నమోదు చేయండి

RIDE dApp వేవ్‌లను ఎలా నిర్మించాలి, అమలు చేయాలి మరియు పరీక్షించాలి

ముగింపులు మరియు అదనపు సమాచారం

వేవ్స్ ప్లాట్‌ఫారమ్‌లో సాధారణ dAppలను అభివృద్ధి చేయడం, పరీక్షించడం, అమలు చేయడం మరియు ఉపయోగించడం కోసం మేము సాధనాలను పరిశీలించాము:

  • రైడ్ భాష
  • VS కోడ్ ఎడిటర్
  • వేవ్స్ ఎక్స్‌ప్లోరర్
  • సర్ఫ్
  • వేవ్స్ కీపర్

రైడ్ నేర్చుకోవాలనుకునే వారి కోసం లింక్‌లు:

మరిన్ని ఉదాహరణలు
ఉదాహరణలతో ఆన్‌లైన్ IDE
వేవ్స్ డాక్యుమెంటేషన్
టెలిగ్రామ్‌లో డెవలపర్ చాట్
స్టాక్‌ఓవర్‌ఫ్లో వేవ్స్ మరియు రైడ్
కొత్తది! వేవ్స్ ప్లాట్‌ఫారమ్‌లో dAppలను సృష్టించడంపై ఆన్‌లైన్ కోర్సులు

RIDE టాపిక్‌లోకి ప్రవేశించడం కొనసాగించండి మరియు మీ మొదటి dAppని సృష్టించండి!

TL; DR: bit.ly/2YCFnwY

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి