Clár cleamhnaithe foinse oscailte díláraithe ar blockchain Waves

Clár cleamhnaithe díláraithe ar blockchain Waves, arna chur i bhfeidhm mar chuid de dheontas Waves Labs ag foireann Bettex.

Ní fógraíocht é an post! Tá an clár foinse oscailte, tá úsáid agus dáileadh saor in aisce. Spreagann úsáid an chláir forbairt feidhmchláir dApp agus cuireann sé dílárú chun cinn go ginearálta, rud a théann chun sochair gach úsáideoir Idirlín.

Clár cleamhnaithe foinse oscailte díláraithe ar blockchain Waves

Is teimpléad é an dApp a chuirtear i láthair do chláir chleamhnaithe le haghaidh tionscadal a chuimsíonn cleamhnaithe mar chuid dá bhfeidhmiúlacht. Is féidir an cód a úsáid mar theimpléad le haghaidh cóipeála, mar leabharlann, nó mar thacar smaointe maidir le cur i bhfeidhm teicniúil.

I dtéarmaí feidhmiúlachta, is córas cleamhnaithe rialta é seo a chuireann clárú le tarchuradóir i bhfeidhm, fabhraithe il-leibhéil luach saothair le haghaidh atreoraithe agus spreagadh chun clárú sa chóras (aisíoc airgid). Is dApp “íon” é an córas, is é sin, idirghníomhaíonn an feidhmchlár gréasáin go díreach leis an blockchain, gan a inneall féin, a bhunachar sonraí, etc.

Teicnící a úsáidtear a d’fhéadfadh a bheith úsáideach freisin i go leor tionscadal eile:

  • Cuntas cliste a ghlaoch isteach i bhfiacha le haisíoc láithreach (ag am an ghlao níl aon comharthaí ar an gcuntas chun íoc as an nglao, ach tá siad le feiceáil ann mar thoradh ar an nglao).
  • PoW-captcha - cosaint i gcoinne glaonna uathoibrithe ard-minicíochta chuig feidhmeanna cuntas cliste - ar aon dul le captcha, ach trí chruthúnas ar úsáid acmhainní ríomhaireachta.
  • Iarratas ar eochracha sonraí ag baint úsáide as teimpléad.

Is éard atá san iarratas:

  • cód cuntais chliste sa teanga ride4dapps (a chumasc, mar a bhí beartaithe, isteach sa phríomhchuntas cliste ar gá feidhmiúlacht chleamhnaithe a chur i bhfeidhm dó);
  • js wrapper a chuireann leibhéal astarraingthe i bhfeidhm thar an WAVES NODE REST API;
  • cód ar an gcreat vuejs, a bhfuil sampla de ag baint úsáide as an leabharlann agus cód RIDE.

Lig dúinn cur síos ar na gnéithe liostaithe go léir.

Ag glaoch ar chuntas cliste le haghaidh fiachais le haisíoc láithreach

Teastaíonn táille a íoc ón gcuntas a thionscnaíonn an t-idirbheart chun glaoch a chur ar InvokeScript. Ní fadhb é seo má tá tú ag déanamh tionscadail le haghaidh geeks blockchain a bhfuil méid áirithe comharthaí WAVES ar a gcuntas, ach má tá an táirge dírithe ar úsáid an phobail i gcoitinne, is fadhb thromchúiseach é seo. Tar éis an tsaoil, ní mór don úsáideoir a bheith cúramach le comharthaí WAVES a cheannach (nó sócmhainn oiriúnach eile is féidir a úsáid chun íoc as idirbhearta), rud a mhéadaíonn an bac suntasach atá ar iontráil sa tionscadal cheana féin. Is féidir linn sócmhainn a dháileadh ar úsáideoirí a bheidh in ann íoc as idirbhearta agus aghaidh a thabhairt ar riosca a mí-úsáide nuair a chruthaítear córais uathoibrithe chun sócmhainn leachtach a phumpáil amach ónár gcóras.

Bheadh ​​sé an-áisiúil dá bhféadfaí glaoch a chur ar InvokeScript “ar chostas an fhaighteora” (an cuntas cliste ar a bhfuil an script suiteáilte), agus tá an fhéidearthacht ann, cé nach bhfuil sé ar bhealach soiléir.

Má dhéanann tú Aistriú Script taobh istigh de InvokeScript chuig seoladh an ghlaoiteora, a chúitíonn na comharthaí táille a chaitear, ansin éireoidh le glao den sórt sin, fiú mura raibh aon sócmhainní ar an gcuntas glaonna tráth an ghlao. Tá sé seo indéanta toisc go ndéantar an tseiceáil le haghaidh comharthaí leordhóthanacha tar éis an t-idirbheart a ghlaoch, seachas roimhe sin, ionas gur féidir idirbhearta a dhéanamh ar cairde, faoi réir aisíoc láithreach.

ScriptTransfer (i.caller, i.fee, aonad)

Aisíocann an cód thíos an táille caite trí úsáid a bhaint as cistí cuntais chliste. Chun cosaint a thabhairt ar mhí-úsáid na gné seo, is gá seiceáil a úsáid go gcaitheann an glaoiteoir an táille sa tsócmhainn riachtanach agus laistigh de theorainneacha réasúnta:

func checkFee(i:Invocation) = {
if i.fee > maxFee then throw(“unreasonable large fee”) else
if i.feeAssetId != unit then throw(“fee must be in WAVES”) else true
}

Chomh maith leis sin, chun cosaint a dhéanamh i gcoinne dramhaíl mailíseach agus gan chiall ar chistí, tá gá le cosaint uathoibríoch glaonna (PoW-captcha).

PoW-captcha

Níl an-smaoineamh captcha cruthúnas-ar-obair nua agus tá sé curtha i bhfeidhm cheana féin i dtionscadail éagsúla, lena n-áirítear iad siúd a cuireadh i bhfeidhm ar bhonn WAVES. Is é an smaoineamh, chun gníomh a dhéanamh a ídíonn acmhainní ár dtionscadal, go gcaithfidh an glaoiteoir a chuid acmhainní féin a chaitheamh freisin, rud a fhágann go bhfuil ionsaí ídiú acmhainní costasach go leor. Le haghaidh bailíochtú an-éasca agus ar chostas íseal go bhfuil an fhadhb PoW réitithe ag seoltóir an idirbhirt, tá seiceáil aitheantais idirbhirt:

má ghlac(toBase58String(i.transactionId), 3) != “123” caith ansin (“theip ar chruthúnas oibre”)

D'fhonn idirbheart a dhéanamh, ní mór don ghlaoiteoir paraiméadair den sórt sin a roghnú ionas go dtosaíonn a chód base58 (id) leis na huimhreacha 123, a fhreagraíonn ar an meán le cúpla soicind d'am próiseálaí agus go ginearálta réasúnta dár tasc. Má theastaíonn POW níos simplí nó níos casta, is féidir an tasc a mhodhnú go héasca ar bhealach soiléir.

Iarratas ar eochracha sonraí ag baint úsáide as teimpléad

D'fhonn blockchain a úsáid mar bhunachar sonraí, tá sé ríthábhachtach uirlisí API a bheith agat chun an bunachar sonraí a cheistiú mar eochair-val bunaithe ar theimpléid. Bhí foireann uirlisí den sórt sin le feiceáil ag tús mhí Iúil 2019 i bhfoirm paraiméadar ?Cluichí ar iarratas REST API /seoltaí/data?matches=regexp. Anois, más gá dúinn níos mó ná eochair amháin a fháil ó fheidhmchlár gréasáin agus nach bhfuil gach eochair ag an am céanna, ach gan ach grúpa éigin, ansin is féidir linn rogha a dhéanamh de réir eochairainm. Mar shampla, sa tionscadal seo, déantar idirbhearta aistarraingthe a ionchódú mar

withdraw_${userAddress}_${txid}

a cheadaíonn duit liosta idirbheart a fháil chun cistí a tharraingt siar le haghaidh aon seoladh ar leith ag baint úsáide as an teimpléad:

?matches=withdraw_${userAddress}_.*

Anois, déanaimis féachaint ar chomhpháirteanna an réiteach críochnaithe.

Cóid vuejs

Is taispeántas oibre é an cód gar don fhíorthionscadal. Feidhmíonn sé logáil isteach trí Waves Keeper agus oibríonn sé leis an leabharlann affiliate.js, lena gcláraíonn sé an t-úsáideoir sa chóras, cuireann sé ceisteanna ar shonraí idirbhirt, agus ligeann sé duit cistí tuillte a aistarraingt chuig cuntas an úsáideora.

Clár cleamhnaithe foinse oscailte díláraithe ar blockchain Waves

Cóid do RIDE

Is éard atá sa chlár, feidhmeanna a mhaoiniú agus a tharraingt siar.

Cláraíonn feidhm an chláir úsáideoir ar an gcóras. Tá dhá pharaiméadar aige: an tagairt (seoladh tarchuir) agus an paraiméadar salainn, nach n-úsáidtear sa chód feidhme, atá ag teastáil chun an t-aitheantas idirbhirt (tasc PoW-captcha) a roghnú.

Úsáideann an fheidhm (cosúil le feidhmeanna eile ón tionscadal seo) an teicníc glaoch ar fhiach, is é toradh na feidhme ná íocaíocht táille a mhaoiniú as an bhfeidhm seo a ghlaoch. A bhuíochas leis an réiteach seo, is féidir le húsáideoir atá díreach tar éis sparán a chruthú oibriú leis an gcóras láithreach agus ní gá a bheith buartha faoi shócmhainn a cheannach nó a fháil a ligeann dó táille idirbheart a íoc.

Is é toradh na feidhme clárúcháin ná dhá thaifead:

${owner)_referer = referer
${referer}_referral_${owner} = owner

Ligeann sé seo cuardaigh ar aghaidh agus cuardaigh aisiompaithe (atreoróir úsáideora ar leith agus gach atreoraithe ó úsáideoir ar leith).

Is mó de theimpléad í feidhm an chiste chun fíorfheidhmiúlacht a fhorbairt. San fhoirm a chuirtear i láthair, glacann sé na cistí go léir a aistríonn an t-idirbheart agus dáileann sé iad ar chuntais na dtaitreoirí ar leibhéil 1, 2, 3, chuig an gcuntas “airgead ar ais” agus chuig an gcuntas “athrú” (gach rud atá fágtha nuair a dháiltear ar an gceann roimhe seo). téann cuntais anseo).

Is modh é Cashback chun an t-úsáideoir deiridh a spreagadh chun páirt a ghlacadh sa chóras atreoraithe. Is féidir leis an úsáideoir an chuid den choimisiún a d’íoc an córas a tharraingt siar i bhfoirm “aisairgead tirim” ar an mbealach céanna le luach saothair as atreoruithe.

Agus córas atreoraithe á úsáid, ba cheart feidhm an chiste a mhodhnú agus a chomhtháthú i bpríomh-loighic an chuntais chliste ar a n-oibreoidh an córas. Mar shampla, má íoctar luach saothair atreoraithe as geall a rinneadh, ba cheart feidhm an chiste a chur isteach sa loighic ina gcuirtear an geall (nó gníomh spriocdhírithe eile a bhfuil an luach saothair íoctha ina leith). Déantar trí leibhéal de luaíochtaí atreoraithe a chódú isteach sa fheidhm seo. Más gá duit leibhéil níos mó nó níos lú a dhéanamh, déantar é seo a cheartú sa chód freisin. Socraítear an céatadán luach saothair ag tairisigh leibhéal 1-leibhéal 3; sa chód a ríomhtar é mar méid * leibhéal / 1000, is é sin, an luach 1 fhreagraíonn do 0,1% (is féidir é seo a athrú freisin sa chód).

Athraíonn glao ar an bhfeidhm iarmhéid an chuntais agus cruthaítear iontrálacha freisin chun críocha logáil na foirme:

fund_address_txid = address:owner:inc:level:timestamp
Для получения timestamp (текущего времени) используется такая вот связка
func getTimestamp() = {
let block = extract(blockInfoByHeight(height))
toString(block.timestamp)
}

Is é sin, is é an t-am idirbhirt am an bhloc ina bhfuil sé suite. Tá sé seo níos iontaofa ná úsáid a bhaint as an stampa ama ón idirbheart féin, go háirithe ós rud é nach bhfuil sé ar fáil ón inghlao.
Taispeánann an fheidhm aistarraingthe gach luach saothair carntha chuig cuntas an úsáideora. Cruthaíonn sé iontrálacha chun críocha logála:

# withdraw log: withdraw_user_txid=amount:timestamp

Iarratas

Is é an leabharlann affiliate.js príomhchuid an iarratais, atá ina dhroichead idir na samhlacha sonraí cleamhnaithe agus an WAVES NODE REST API. Cuireann sé leibhéal astarraingthe i bhfeidhm atá neamhspleách ar an gcreat (is féidir ceann ar bith a úsáid). Glacann feidhmeanna gníomhacha (cláraigh, tarraing siar) go bhfuil Waves Keeper suiteáilte ar an gcóras;

Cuireann sé modhanna i bhfeidhm:

fetchReferralTransactions
fetchWithdrawTransactions
fetchMyBalance
fetchReferrals
fetchReferer
withdraw
register

Tá feidhmiúlacht na modhanna soiléir ó na hainmneacha; tá cur síos sa chód ar na paraiméadair agus ar na sonraí a cuireadh ar ais. Éilíonn feidhm an chláir tuairimí breise - tosaíonn sé timthriall de roghnú an aitheantais idirbhirt ionas go dtosaíonn sé ag 123 - is é seo an PoW-captcha a thuairiscítear thuas, a chosnaíonn i gcoinne cláruithe mais. Faigheann an fheidhm idirbheart leis an id riachtanach, agus ansin síníonn sé trí Waves Keeper.

Tá clár cleamhnaithe DEX ar fáil ag GitHub.com.

Foinse: will.com

Add a comment