د څپو 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. د بصری سټوډیو کوډ پلگ ان

دا ګام اختیاري دی که تاسو د IDEs مینه وال نه یاست او د متن مدیرانو ته ترجیح ورکړئ. ټول اړین وسایل د کمانډ لاین اسانتیاوې دي. که تاسو ویم کاروئ، پلگ ان ته پام وکړئ ویم سواری.

د بصری سټوډیو کوډ ډاونلوډ او نصب کړئ: 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. د 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 یوه مهمه برخه ده. هر چاپیریال په لاندې ډول ترتیب شوی دی:

  • د نوډ REST API پای ټکی چې د شبکې dApp او CHAIN_ID پیل کولو لپاره به وکارول شي.
  • د ټوکنونو سره د حساب لپاره یوه پټه جمله چې ستاسو د ازموینې ټیکونو سرچینې به وي.

لکه څنګه چې تاسو لیدلی شئ، surfboard.config.json د ډیفالټ په واسطه د ډیری چاپیریالونو ملاتړ کوي. ډیفالټ محلي چاپیریال دی (د ډیفالټ این وی کیلي د بدلون وړ پیرامیټر دی).

د والټ ډیمو غوښتنلیک

دا برخه د RIDE ژبې ته حواله نه ده. بلکه ، هغه غوښتنلیک ته یو نظر چې موږ یې ځای په ځای کوو او ازموینه کوو ترڅو ښه پوه شو چې په بلاکچین کې څه پیښیږي.

راځئ چې یو ساده والټ ډیمو غوښتنلیک وګورو. هر څوک کولی شي د dApp پتې ته ټکنونه واستوي. تاسو کولی شئ یوازې خپل WAVES بیرته واخلئ. دوه @Callable افعال د InvokeScriptTransaction له لارې شتون لري:

  • 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

د نمونې کوډ هم موندل کیدی شي GitHub.

د VSCode پلگ ان د فایل ایډیټ کولو پرمهال د دوامداره تالیف ملاتړ کوي. له همدې امله، تاسو کولی شئ تل د ستونزو په ټب کې تېروتنې وڅارئ.

د څپو RIDE dApp رامینځته کولو ، ځای په ځای کولو او ازموینې څرنګوالی
که تاسو غواړئ د فایل تالیف کولو پرمهال مختلف متن ایډیټر وکاروئ ، وکاروئ

surfboard compile ride/wallet.ride

دا به د بیس 64 ترتیب شوي RIDE کوډ لړۍ تولید کړي.

د 'wallet.ride' لپاره د ازموینې سکریپټ

راځئ چې وګورو د ازموینې فایل. د جاواسکریپټ موچا چوکاټ لخوا پرمخ وړل شوی. دلته "مخکې" فعالیت او درې ازموینې شتون لري:

  • "مخکې" د MassTransferTransaction له لارې ډیری حسابونه تمویل کوي، سکریپټ تالیف کوي او بلاکچین ته یې ځای پرځای کوي.
  • "ډیپایټ کولی شي" شبکې ته د InvokeScriptTransaction لیږي، د هر دوه حسابونو لپاره د deposit() فعالیت فعالوي.
  • "د زیرمه شوي څخه ډیر نشي ایستل کیدی" ازموینې چې هیڅوک نشي کولی د نورو خلکو نښې غلا کړي.
  • چیکونه "سپما کولی شي" چې ایستل په سمه توګه پروسس شوي.

د سرفبورډ څخه ازموینې پرمخ وړئ او پایلې یې په 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)

هورې! ازموینې تیرې شوې. اوس راځئ چې وګورو چې څه پیښیږي کله چې د ویوز اکسپلورر کاروئ: بلاکس ته وګورئ یا پورتنۍ پته په لټون کې پیسټ کړئ (د مثال په توګه ، اړونده wallet#. هلته تاسو د راکړې ورکړې تاریخ، د dApp حالت، بې ځایه شوي بائنری فایل موندلی شئ.

د څپو RIDE dApp رامینځته کولو ، ځای په ځای کولو او ازموینې څرنګوالی
د څپو سپړونکی. یو غوښتنلیک چې یوازې ځای پرځای شوی دی.

د سرفبورډ ځینې لارښوونې:

1. د ټیسټ نیٹ چاپیریال کې د ازموینې لپاره، وکاروئ:

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 WAVES تادیاتو سره د InvokeScriptTransaction لاسلیک کولو اجازه غوښتنه کوي.

6. معامله تایید کړئ:

د څپو RIDE dApp رامینځته کولو ، ځای په ځای کولو او ازموینې څرنګوالی
معامله جوړه شوې او شبکې ته خپریږي. اوس تاسو کولی شئ د هغې ID وګورئ

7. د Waves Explorer په کارولو سره معامله وڅارئ. د لټون په ډګر کې ID دننه کړئ

د څپو RIDE dApp رامینځته کولو ، ځای په ځای کولو او ازموینې څرنګوالی

پایلې او اضافي معلومات

موږ د ویوز پلیټ فارم کې د ساده dApps رامینځته کولو ، ازموینې ، پلي کولو او کارولو لپاره وسیلو ته کتنه وکړه:

  • د RIDE ژبه
  • د VS کوډ مدیر
  • څپې څپرکي
  • سرفبورډ
  • د څپو ساتونکی

د هغو کسانو لپاره لینکونه چې غواړي د RIDE زده کړې ته دوام ورکړي:

نور مثالونه
آنلاین IDE د مثالونو سره
د څپو اسناد
په ټیلیګرام کې د پراختیا کونکي خبرې کول
موجونه او سواری په stackoverflow
نوی! د ویوز پلیټ فارم کې د dApps رامینځته کولو آنلاین کورسونه

د RIDE موضوع ته دوام ورکړئ او خپل لومړی dApp جوړ کړئ!

د تمديد؛ DR: bit.ly/2YCFnwY

سرچینه: www.habr.com

Add a comment