RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز

سلام! هن آرٽيڪل ۾ آئون توهان کي ڏيکاريندس ته ڪيئن لکڻ ۽ هلائڻ لاءِ باقاعده ڊي ايپ هڪ Waves نوڊ تي. اچو ته ضروري اوزار، طريقن ۽ ترقي جو هڪ مثال ڏسو.

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز

ڊي ايپس ۽ باقاعده ايپليڪيشنن لاءِ ڊولپمينٽ اسڪيم لڳ ڀڳ ساڳي آهي:

  • لکڻ جو ڪوڊ
  • لکڻ جي خودڪار جاچ
  • ايپليڪيشن کي لانچ ڪندي
  • جاچڻ

اوزار

1. docker نوڊ ۽ ويز ايڪسپلورر کي هلائڻ لاءِ

جيڪڏهن توهان هڪ نوڊ شروع ڪرڻ نٿا چاهيو، توهان هن قدم کي ڇڏي سگهو ٿا. سڀ کان پوء، اتي هڪ امتحان ۽ تجرباتي نيٽ ورڪ آهي. پر توهان جي پنهنجي نوڊ کي ترتيب ڏيڻ کان سواء، جاچ واري عمل کي ڇڪي سگھي ٿو.

  • توهان کي مسلسل نئين اڪائونٽن جي ضرورت پوندي ٽيسٽ ٽوڪن سان. ٽيسٽ نيٽ ورڪ نل هر 10 منٽن ۾ 10 WAVES منتقل ڪري ٿو.
  • ٽيسٽ نيٽ ورڪ ۾ سراسري بلاڪ وقت آهي 1 منٽ، نوڊ ۾ - 15 سيڪنڊ. اهو خاص طور تي قابل ذڪر آهي جڏهن هڪ ٽرانزيڪشن ڪيترن ئي تصديق جي ضرورت آهي.
  • عوامي ٽيسٽ نوڊس تي جارحتي ڪيشنگ ممڪن آهي.
  • اهي شايد عارضي طور تي دستياب نه هوندا آهن سار سنڀال جي ڪري.

ھاڻي ھاڻي مان فرض ڪندس ته توھان پنھنجي نوڊ سان ڪم ڪري رھيا آھيو.

2. سرف بورڊ ڪمانڊ لائين ٽول

  • ڊائون لوڊ ۽ انسٽال ڪريو Node.js استعمال ڪندي ppa، homebrew يا exe هتي: https://nodejs.org/en/download/.
  • انسٽال ڪريو سرف بورڊ، هڪ اوزار جيڪو توهان کي موجوده نوڊ تي ٽيسٽ هلائڻ جي اجازت ڏئي ٿو.

npm install -g @waves/surfboard

3. بصري اسٽوڊيو ڪوڊ پلگ ان

هي قدم اختياري آهي جيڪڏهن توهان IDEs جا پرستار نه آهيو ۽ ٽيڪسٽ ايڊيٽرن کي ترجيح ڏيو. سڀ ضروري اوزار ڪمانڊ لائن افاديت آهن. جيڪڏهن توهان استعمال ڪريو ويم، پلگ ان تي ڌيان ڏيو ويم جي سواري.

بصري اسٽوڊيو ڪوڊ ڊائون لوڊ ۽ انسٽال ڪريو: https://code.visualstudio.com/

کوليو VS ڪوڊ ۽ انسٽال ڪريو موج سواري پلگ ان:

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز

Waves Keeper برائوزر جي واڌ: https://wavesplatform.com/products-keeper

ٿي ويو!

نوڊ ۽ Waves Explorer شروع ڪريو

1. نوڊ شروع ڪريو:

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

پڪ ڪريو ته نوڊ شروع ڪيو ويو آهي REST API ذريعي http://localhost:6869:

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز
نوڊ لاءِ Swagger 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 ڏيکاري ٿو مقامي نوڊ مثال

سواري جي جوڙجڪ ۽ سرف بورڊ جو اوزار

خالي ڊاريڪٽري ٺاھيو ۽ ان ۾ ڪمانڊ ھلايو

surfboard init

حڪم هڪ ڊاريڪٽري کي منصوبي جي جوڙجڪ سان شروع ڪري ٿو، "هيلو دنيا" ايپليڪيشنون ۽ ٽيسٽ. جيڪڏهن توهان هن فولڊر کي VS ڪوڊ سان کوليو، توهان ڏسندا:

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز
Surfboard.config.json

  • هيٺ. اسان مختصر طور تي ايندڙ بلاڪ ۾ dApps جو تجزيو ڪنداسين.
  • ./test/ فولڊر جي هيٺان توهان کي *.js فائل ملندي. ٽيسٽ هتي محفوظ ٿيل آهن.
  • ./surfboard.config.json - هلندڙ ٽيسٽن لاءِ ترتيب واري فائيل.

Envs هڪ اهم سيڪشن آهي. هر ماحول کي هن طرح ترتيب ڏنو ويو آهي:

  • REST API نوڊ جو آخري پوائنٽ جيڪو نيٽ ورڪ جي dApp ۽ CHAIN_ID کي لانچ ڪرڻ لاءِ استعمال ڪيو ويندو.
  • ٽوڪن سان گڏ هڪ اڪائونٽ لاءِ هڪ ڳجهو جملو جيڪو توهان جي ٽيسٽ ٽوڪن جا ذريعا هوندو.

جئين توهان ڏسي سگهو ٿا، surfboard.config.json ڪيترن ئي ماحول کي ڊفالٽ جي حمايت ڪري ٿو. ڊفالٽ مقامي ماحول آهي (defaultEnv ڪيئي هڪ تبديل ٿيندڙ پيٽرولر آهي).

والٽ-ڊيمو ايپليڪيشن

هي حصو RIDE ٻولي جو حوالو نه آهي. بلڪه، ايپليڪيشن تي هڪ نظر جنهن کي اسين ترتيب ڏيون ٿا ۽ جانچ ڪريون ٿا بهتر سمجهڻ لاءِ ته بلاڪچين ۾ ڇا ٿي رهيو آهي.

اچو ته هڪ سادي Wallet-demo ايپليڪيشن تي نظر رکون. ڪو به 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() فنڪشن کي چالو ڪري ٿو.
  • ”جمع ٿيل کان وڌيڪ واپس نه ٿو وٺي سگھجي“ ٽيسٽون ته ڪو به ٻين ماڻهن جا ٽوڪن چوري نٿو ڪري سگهي.
  • "ڊپازٽ ڪري سگھي ٿو" چيڪ ڪري ٿو ته ڪڍڻ صحيح طريقي سان عمل ڪيو ويو آھي.

Запуск тестов с Surfboard и анализ результатов в 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#. اتي توھان ڳولي سگھوٿا ٽرانزيڪشن جي تاريخ، ڊي ايپ اسٽيٽس، ٺھيل بائنري فائل.

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز
Waves Explorer. هڪ ايپليڪيشن جيڪا تازو ڪئي وئي آهي.

سرف بورڊ جا ڪجھ طريقا:

1. ٽيسٽنيٽ ماحول ۾ ٽيسٽ ڪرڻ لاءِ، استعمال ڪريو:

surfboard test --env=testnet

ٽيسٽ ٽوڪن حاصل ڪريو

2. جيڪڏھن توھان ڏسڻ چاھيو ٿا JSON ورزن جا ٽرانزيڪشن ۽ انھن کي نوڊ ذريعي ڪيئن پروسيس ڪيو وڃي ٿو، ٽيسٽ کي -v سان ھلايو (مطلب 'verbose'):

surfboard test -v

Waves Keeper سان ائپس استعمال ڪندي

1. ڪم ڪرڻ لاءِ Waves Keeper سيٽ ڪريو: http://localhost:6869

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز
مقامي نوڊ سان ڪم ڪرڻ لاءِ Waves Keeper کي ترتيب ڏيڻ

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 جي ادائيگي سان InvokeScriptTransaction تي دستخط ڪرڻ جي اجازت جي درخواست ڪري ٿو.

6. ٽرانزيڪشن جي تصديق ڪريو:

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز
ٽرانزيڪشن ٺاهي وئي آهي ۽ نيٽ ورڪ تي نشر ڪئي وئي آهي. هاڻي توهان هن جي سڃاڻپ ڏسي سگهو ٿا

7. Waves Explorer استعمال ڪندي ٽرانزيڪشن جي نگراني ڪريو. ڳولا جي ميدان ۾ ID داخل ڪريو

RIDE dApp ڪيئن ٺاهجي، ڊيپلائي ۽ ٽيسٽ ويوز

نتيجن ۽ اضافي معلومات

اسان Waves پليٽ فارم تي سادي dApps کي ترقي ڪرڻ، جانچڻ، ترتيب ڏيڻ ۽ استعمال ڪرڻ جا اوزار ڏٺا:

  • RIDE ٻولي
  • VS ڪوڊ ايڊيٽر
  • موج ايڪسپلورر
  • سرف بورڊ
  • موج سنڀاليندڙ

انهن لاءِ لنڪس جيڪي سکڻ جاري رکڻ چاهن ٿا RIDE:

و Moreيڪ مثال
آن لائين IDE مثالن سان
Waves دستاويزي
ٽيليگرام ۾ ڊولپر چيٽ
Waves and RIDE on stackoverflow
نئون! Waves پليٽ فارم تي dApps ٺاهڻ تي آن لائين ڪورس

RIDE موضوع ۾ ڊائيونگ جاري رکو ۽ پنهنجو پهريون dApp ٺاهيو!

TL، ڊاڪٽر: bit.ly/2YCFnwY

جو ذريعو: www.habr.com

تبصرو شامل ڪريو