RIDE 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 کے پرستار نہیں ہیں اور ٹیکسٹ ایڈیٹرز کو ترجیح دیتے ہیں۔ تمام ضروری ٹولز کمانڈ لائن یوٹیلیٹیز ہیں۔ اگر آپ vim استعمال کرتے ہیں تو پلگ ان پر توجہ دیں۔ ویم سواری.

بصری اسٹوڈیو کوڈ ڈاؤن لوڈ اور انسٹال کریں: https://code.visualstudio.com/

وی ایس کوڈ کھولیں اور ویوز رائڈ پلگ ان انسٹال کریں:

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 کوڈ واقع ہے۔ ہم اگلے بلاک میں dApps کا مختصراً تجزیہ کریں گے۔
  • ./test/ فولڈر کے نیچے آپ کو ایک *.js فائل ملے گی۔ ٹیسٹ یہاں محفوظ ہیں۔
  • ./surfboard.config.json - ٹیسٹ چلانے کے لیے کنفیگریشن فائل۔

Envs ایک اہم سیکشن ہے۔ ہر ماحول کو اس طرح ترتیب دیا گیا ہے:

  • نوڈ کا REST API اینڈ پوائنٹ جو نیٹ ورک کے dApp اور CHAIN_ID کو لانچ کرنے کے لیے استعمال کیا جائے گا۔
  • ٹوکن والے اکاؤنٹ کے لیے ایک خفیہ جملہ جو آپ کے ٹیسٹ ٹوکنز کا ذریعہ ہوگا۔

جیسا کہ آپ دیکھ سکتے ہیں، surfboard.config.json ڈیفالٹ کے لحاظ سے متعدد ماحول کو سپورٹ کرتا ہے۔ پہلے سے طے شدہ مقامی ماحول ہے (defaultEnv کلید ایک قابل تبدیلی پیرامیٹر ہے)۔

والیٹ ڈیمو ایپلی کیشن

یہ سیکشن RIDE زبان کا حوالہ نہیں ہے۔ بلکہ، اس ایپلیکیشن پر ایک نظر جسے ہم تعینات کرتے ہیں اور بہتر طور پر یہ سمجھنے کے لیے جانچتے ہیں کہ بلاکچین میں کیا ہو رہا ہے۔

آئیے ایک سادہ والیٹ ڈیمو ایپلیکیشن کو دیکھتے ہیں۔ کوئی بھی dApp ایڈریس پر ٹوکن بھیج سکتا ہے۔ آپ صرف اپنی لہروں کو واپس لے سکتے ہیں۔ دو @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 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 کی تشکیل، تعیناتی اور لہروں کی جانچ کیسے کریں۔
لین دین نیٹ ورک پر تخلیق اور نشر کیا جاتا ہے۔ اب آپ اس کی آئی ڈی دیکھ سکتے ہیں۔

7. ویوز ایکسپلورر کا استعمال کرتے ہوئے لین دین کی نگرانی کریں۔ تلاش کے میدان میں ID درج کریں۔

RIDE dApp کی تشکیل، تعیناتی اور لہروں کی جانچ کیسے کریں۔

نتائج اور اضافی معلومات

ہم نے Waves پلیٹ فارم پر سادہ dApps کو تیار کرنے، جانچنے، تعینات کرنے اور استعمال کرنے کے ٹولز کو دیکھا:

  • سواری کی زبان
  • وی ایس کوڈ ایڈیٹر
  • ویوز ایکسپلورر
  • سرفبورڈ
  • لہروں کی حفاظت کرنے والا

ان لوگوں کے لیے لنکس جو RIDE سیکھنا جاری رکھنا چاہتے ہیں:

مزید مثالیں۔
آن لائن IDE مثالوں کے ساتھ
لہروں کی دستاویزات
ٹیلیگرام میں ڈویلپر چیٹ
لہریں اور اسٹیک اوور فلو پر سوار
نئی! Waves پلیٹ فارم پر dApps بنانے کے آن لائن کورسز

RIDE کے موضوع میں ڈائیونگ جاری رکھیں اور اپنا پہلا dApp بنائیں!

TL؛ ڈاکٹر: bit.ly/2YCFnwY

ماخذ: www.habr.com

نیا تبصرہ شامل کریں