Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil

Dia dhuit! San Airteagal seo taispeánfaidh mé duit conas dApp rialta a scríobh agus a reáchtáil ar nód Waves. A ligean ar breathnú ar na huirlisí is gá, modhanna agus sampla d'fhorbairt.

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil

Tá an scéim forbartha do dApps agus feidhmchláir rialta beagnach mar a chéile:

  • Cód a scríobh
  • Tástáil uathoibrithe a scríobh
  • Seoladh an t-iarratas
  • Tástáil

Uirlisí

1. docker chun an nód agus Waves Explorer a rith

Mura bhfuil tú ag iarraidh nód a thosú, is féidir leat an chéim seo a scipeáil. Tar éis an tsaoil, tá líonra tástála agus turgnamhach ann. Ach gan do nód féin a imscaradh, féadfaidh an próiseas tástála tarraingt ar aghaidh.

  • Beidh cuntais nua ag teastáil uait i gcónaí le comharthaí tástála. Aistríonn faucet an líonra tástála 10 dTONN gach 10 nóiméad.
  • Is é an meán-am bloc sa líonra tástála ná 1 nóiméad, sa nód - 15 soicind. Tá sé seo faoi deara go háirithe nuair a éilíonn idirbheart deimhnithe iolracha.
  • Is féidir taisceadh ionsaitheach a dhéanamh ar nóid tástála poiblí.
  • D’fhéadfadh sé nach mbeidh siad ar fáil go sealadach mar gheall ar chothabháil.

As seo amach glacfaidh mé leis go bhfuil tú ag obair le do nód féin.

2. Surfboard Ordú Líne Uirlis

  • Íoslódáil agus suiteáil Node.js ag baint úsáide as ppa, homebrew nó exe anseo: https://nodejs.org/en/download/.
  • Suiteáil Surfboard, uirlis a ligeann duit tástálacha a rith ar nód atá ann cheana féin.

npm install -g @waves/surfboard

3. Breiseán Cód Visual Studio

Tá an chéim seo roghnach mura bhfuil tú ina lucht leanúna de IDEanna agus gur fearr leat eagarthóirí téacs. Is fóntais líne ordaithe iad na huirlisí riachtanacha go léir. Má úsáideann tú vim, tabhair aird ar an mbreiseán vim-turas.

Íoslódáil agus suiteáil Visual Studio Code: https://code.visualstudio.com/

Oscail Cód VS agus suiteáil an breiseán tonnta-turas:

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil

Síneadh brabhsálaí Waves Keeper: https://wavesplatform.com/products-keeper

Arna dhéanamh!

Tosaigh an nód agus Waves Explorer

1. Tosaigh an nód:

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

Déan cinnte go seolfar an nód tríd an REST API in http://localhost:6869:

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Swagger REST API le haghaidh nód

2. Tosaigh sampla de Waves Explorer:

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

Oscail brabhsálaí agus téigh go dtí http://localhost:3000. Feicfidh tú cé chomh tapa agus a thógtar ciorcad nód áitiúil folamh.

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Léiríonn Waves Explorer sampla nód áitiúil

Struchtúr RIDE agus uirlis Surfboard

Cruthaigh eolaire folamh agus rith an t-ordú ann

surfboard init

Cuireann an t-ordú tús le heolaire le struchtúr an tionscadail, feidhmchláir agus tástálacha “hello world”. Má osclaíonn tú an fillteán seo le Cód VS, feicfidh tú:

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Surfboard.config.json

  • Faoin bhfillteán ./ride/ gheobhaidh tú wallet.ride comhad amháin - an t-eolaire ina bhfuil an cód dApp suite. Déanfaimid anailís achomair ar dApps sa chéad bhloc eile.
  • Faoin bhfillteán ./test/ gheobhaidh tú comhad *.js. Stóráiltear tástálacha anseo.
  • ./surfboard.config.json – comhad cumraíochta chun tástálacha a rith.

Is cuid thábhachtach é Envs. Tá gach timpeallacht cumraithe mar seo:

  • críochphointe REST API den nód a úsáidfear chun dApp agus CHAIN_ID an líonra a sheoladh.
  • Frása rúnda le haghaidh cuntais le comharthaí a bheidh mar fhoinse do do chomharthaí tástála.

Mar a fheiceann tú, tacaíonn surfboard.config.json le timpeallachtaí iolracha de réir réamhshocraithe. Is í an timpeallacht áitiúil an réamhshocrú (paraiméadar inathraithe is ea an eochair defaultEnv).

Sparán-iarratas taispeána

Ní tagairt í an chuid seo don teanga RIDE. Ina ionad sin, breathnú ar an bhfeidhmchlár a dhéanaimid a imscaradh agus a thástáil chun tuiscint níos fearr a fháil ar a bhfuil ag tarlú sa blockchain.

Breathnaímid ar fheidhmchlár taispeána Sparán simplí. Is féidir le duine ar bith comharthaí a sheoladh chuig seoladh dApp. Ní féidir leat ach do WAVES a tharraingt siar. Tá dhá fheidhm @Callable ar fáil trí InvokeScriptTransaction:

  • deposit()a éilíonn íocaíocht cheangailte i dTONNTAí
  • withdraw(amount: Int)a thugann comharthaí ar ais

Le linn shaolré dApp, coimeádfar an struchtúr (seoladh → méid):

gníomh
Staid mar thoradh air

tosaigh
folamh

Taisceann Alice 5 TONNTA
seoladh alice → 500000000

Taisceann Bob 2 TONNTA

seoladh alice → 500000000
seoladh bob → 200000000

Tarraingíonn Bob siar 7 dTONN
DÁITEADH!

Tarraingíonn Alice siar 4 TONNTA
seoladh alice → 100000000
seoladh bob → 200000000

Seo é an cód chun an cás a thuiscint go hiomlán:

# 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

Is féidir cód samplach a fháil freisin ag GitHub.

Tacaíonn an breiseán VSCode le tiomsú leanúnach agus comhad á chur in eagar. Mar sin, is féidir leat monatóireacht a dhéanamh i gcónaí ar earráidí sa chluaisín FADHBANNA.

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Más mian leat eagarthóir téacs difriúil a úsáid agus an comhad á thiomsú agat, bain úsáid as

surfboard compile ride/wallet.ride

Aschuirfidh sé seo sraith de chód RIDE tiomsaithe base64.

Script tástála le haghaidh 'wallet.ride'

Breathnaímid ar comhad tástála. Cumhachtaithe ag creat Mocha JavaScript. Tá feidhm “Roimh” agus trí thástáil ann:

  • Maoiníonn “Roimh” cuntais iolracha trí MassTransferTransaction, tiomsaíonn sé an script agus imscartar chuig an blockchain é.
  • Seolann “Is féidir éarlais” Idirbheart InvokeScript chuig an líonra, ag gníomhachtú an fheidhm Taisce() do gach ceann den dá chuntas.
  • “Ní féidir níos mó a tharraingt siar ná mar a cuireadh i dtaisce” tástálacha nach féidir le haon duine comharthaí daoine eile a ghoid.
  • Seiceálacha “An féidir a thaisceadh” go ndéantar aistarraingtí a phróiseáil i gceart.

Rith tástálacha ó Surfboard agus déan anailís ar na torthaí in Waves Explorer

Chun an tástáil a rith, rith

surfboard test

Má tá scripteanna iolracha agat (mar shampla, tá script imscartha ar leith ag teastáil uait), is féidir leat rith

surfboard test my-scenario.js

Baileoidh Surfboard na comhaid tástála san fhillteán ./test/ agus reáchtálfaidh sé an script ar an nód atá cumraithe i surfboard.config.json. Tar éis cúpla soicind feicfidh tú rud éigin mar seo:

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)

Hooray! Tástálacha a rith. Breathnaímid anois ar cad a tharlaíonn agus Waves Explorer in úsáid: féach ar na bloic nó greamaigh ceann de na seoltaí thuas sa chuardach (mar shampla, an ceann comhfhreagrach wallet#. Is féidir leat teacht ar stair na n-idirbheart, stádas dApp, comhad dénártha dí-thiomsaithe.

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Tonnta Explorer. Feidhmchlár atá díreach imlonnaithe.

Roinnt Leideanna Surfboard:

1. Chun tástáil a dhéanamh sa timpeallacht testnet, bain úsáid as:

surfboard test --env=testnet

Faigh comharthaí tástála

2. Más mian leat na leaganacha JSON d'idirbhearta a fheiceáil agus conas a phróiseálann an nód iad, reáchtáil an tástáil le -v (ciallaíonn 'verbose'):

surfboard test -v

Ag baint úsáide as apps le Waves Keeper

1. Socrú Waves Keeper a bheith ag obair: http://localhost:6869

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Coimeádaí Tonnta a chur ar bun chun oibriú le nód áitiúil

2. Iompórtáil frása rúnda le comharthaí don líonra? Ar mhaithe le simplíocht, bain úsáid as síol tosaigh do nód: waves private node seed with waves tokens. Seoladh: 3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF.

3. Is féidir leat feidhmchlár aon leathanach gan freastalaí a rith tú féin ag baint úsáide as npm. Nó téigh go dtí an ceann atá ann cheana féin: chrome-ext.wvservices.com/dapp-wallet.html

4. Cuir isteach an seoladh sparán ón rith tástála (a bhfuil líne faoi thuas) isteach sa bhosca téacs seoladh dApp

5. Cuir isteach méid beag sa réimse “Taisce” agus cliceáil ar an gcnaipe:

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Iarrann Coimeádaí Tonnta cead chun Idirbheart InvokeScript a shíniú agus íocaíocht 10 dTONNTA aige.

6. Deimhnigh an t-idirbheart:

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil
Cruthaítear an t-idirbheart agus craoltar é chuig an líonra. Anois is féidir leat a ID a fheiceáil

7. Monatóireacht a dhéanamh ar an idirbheart ag baint úsáide as Waves Explorer. Cuir isteach ID sa réimse cuardaigh

Conas an Waves RIDE dApp a thógáil, a imscaradh agus a thástáil

Conclúidí agus faisnéis bhreise

D’fhéachamar ar na huirlisí chun dApps simplí a fhorbairt, a thástáil, a úsáid agus a úsáid ar Ardán na dTonnta:

  • RIDE teanga
  • Vs eagarthóir cód
  • Tonnta Explorer
  • Surfboard
  • Coimeádaí Tonnta

Naisc dóibh siúd ar mian leo leanúint ar aghaidh ag foghlaim RIDE:

Tuilleadh samplaí
IDE ar líne le samplaí
Doiciméadú Tonnta
Comhrá forbróir i Telegram
Tonnta agus RIDE ar stackoverflow
NUA! Cúrsaí ar líne ar chruthú dApps ar Ardán na dTonnta

Lean ort ag tumadh isteach sa topaic RIDE agus cruthaigh do chéad dApp!

TL; DR: bit.ly/2YCFnwY

Foinse: will.com

Add a comment