Open source decentralized soʻotaga polokalame i luga ole Waves blockchain

O se polokalame faʻapitoa faʻatasi i luga o le Waves blockchain, faʻatinoina o se vaega o le Waves Labs foaʻi a le Bettex team.

O le pou e le o fa'asalalauga! O le polokalame e tatala punaoa, o lona faʻaogaina ma le tufatufaina e leai se totogi. O le faʻaogaina o le polokalame e faʻaosofia ai le atinaʻeina o talosaga a le dApp ma e masani ona faʻalauiloaina le tuʻufaʻatasia, lea e manuia ai tagata uma o loʻo faʻaogaina Initaneti.

Open source decentralized soʻotaga polokalame i luga ole Waves blockchain

O le dApp na tuʻuina atu mo polokalame faʻapipiʻi o se faʻataʻitaʻiga mo galuega faatino e aofia ai le vavalalata o se vaega o latou galuega. O le code e mafai ona faʻaaogaina e fai ma faʻataʻitaʻiga mo le kopiina, o se faletusi, poʻo se seti o manatu mo le faʻatinoga faʻapitoa.

I le tulaga o galuega, o se faiga faʻafesoʻotaʻi masani lea e faʻatinoina le resitalaina ma se tagata e tuʻuina atu, faʻateleina faʻaputuga o taui mo faʻamatalaga ma faʻaosofia mo le lesitala i totonu o le faiga (cashback). O le faiga o se "mama" dApp, o lona uiga, o le upega tafaʻilagi e fesoʻotaʻi saʻo ma le poloka poloka, e aunoa ma le i ai o lana lava pito i tua, database, ma isi.

Tekinolosi faʻaaogaina e mafai foi ona aoga i le tele o isi galuega faatino:

  • Valaauina o se teugatupe atamai i aitalafu ma toe totogi vave (i le taimi o le valaau e leai ni faailoga i luga o le teugatupe e totogi ai le valaau, ae o loʻo aliali mai iina o se taunuuga o le valaau).
  • PoW-captcha - puipuiga mai telefoni fa'aautometi telefoni feavea'i i galuega fa'akomepiuta atamai - e tutusa ma le captcha, ae e ala i fa'amaoniga o le fa'aogaina o punaoa fa'akomepiuta.
  • Su'esu'e mo ki fa'amaumauga e fa'aaoga ai se fa'ata'ita'iga.

O le talosaga e aofia ai:

  • code account atamai i le gagana ride4dapps (lea, e pei ona fuafuaina, o loʻo tuʻufaʻatasia i totonu o le faʻamatalaga atamai autu lea e manaʻomia ai le faʻatinoina o galuega faʻapitoa);
  • js afifi o lo'o fa'atinoina se tulaga fa'asa'o i luga ole WAVES NODE REST API;
  • code i luga o le vuejs framework, o se faʻataʻitaʻiga o le faʻaogaina o le faletusi ma le RIDE code.

Se'i o tatou fa'amatalaina vaega uma o lo'o lisiina.

Vala'au se tala atamai mo aitalafu ma toe totogi vave

O le vala'au i le InvokeScript e mana'omia le totogiina o se totogifuapauina mai le teugatupe na amata ai le fefa'atauaiga. E le o se faʻafitauli pe afai o loʻo e faia se poloketi mo poloka poloka geeks o loʻo i ai se aofaʻiga o WAVES faʻailoga i luga o latou teugatupe, ae afai o le oloa e faʻatatau i le faʻaaogaina e tagata lautele, e avea lea ma faʻafitauli matuia. A uma mea uma, e tatau i le tagata faʻaoga ona faʻamautinoa le faʻatauina o faʻailoga WAVES (poʻo se isi aseta talafeagai e mafai ona faʻaaoga e totogi ai fefaʻatauaiga), lea e faʻateleina ai le pa puipui tele e ulufale ai i le poloketi. E mafai ona matou tufatufa atu se aseta i tagata faʻaoga o le a mafai ona totogi mo fefaʻatauaiga ma feagai ma le lamatiaga o lo latou faʻaogaina sese pe a faʻatupuina faiga faʻapitoa e pamu ai se aseta vai mai la tatou polokalama.

O le a faigofie tele pe afai e mafai ona valaʻau InvokeScript "i le tau o le tagata e mauaina" (o le faʻamatalaga atamai lea e faʻapipiʻi ai le tusitusiga), ma o sea avanoa, e ui lava e le o se auala manino, o loʻo i ai.

Afai i totonu o le InvokeScript e te faia ai se ScriptTransfer i le tuatusi o le tagata valaʻau, lea e tauia ai le totogifuapauina o faʻailoga na faʻaalu, ona manuia ai lea o sea valaʻau, e tusa lava pe i le taimi o le telefoni e leai ni aseta i luga o le teugatupe telefoni. E mafai lenei mea ona o le siaki mo le lava o faʻailoga e faia pe a uma ona valaʻau le fefaʻatauaʻiga, nai lo le taimi muamua, ina ia mafai ai ona faia fefaʻatauaiga i luga o aitalafu, e tusa ai ma le toe totogiina vave.

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

O le fa'ailoga o lo'o i lalo e toe fa'afo'i ai le tau fa'aalu e fa'aaoga ai tupe teuga tupe atamai. Ina ia puipuia mai le faʻaaogaina sese o lenei vaega, e tatau ona faʻaoga se siaki e faʻaalu e le tagata telefoni le totogifuapauina i le aseta manaʻomia ma i totonu o tapulaa talafeagai:

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
}

E le gata i lea, ina ia puipuia mai le leaga ma le leai o se aoga o tupe, e manaʻomia le puipuiga o le telefoni (PoW-captcha).

PoW-captcha

O le manatu tonu o le faʻamaoniga-o-galuega captcha e le o se mea fou ma ua uma ona faʻatinoina i galuega eseese, e aofia ai ma na faʻatinoina i luga o le faavae o WAVES. O le manatu e faapea ina ia mafai ona faia se gaioiga e faʻaumatia ai punaoa a le tatou poloketi, e tatau foi i le tagata telefoni ona faʻaalu ana lava punaoa, lea e taugata tele ai le osofaʻiga o punaoa. Mo se faʻamaoniga faigofie ma taugofie o le tagata na auina atu le fefaʻatauaʻiga ua foia le faafitauli o le PoW, o loʻo i ai se siaki id fefaʻatauaiga:

afai e ave(toBase58String(i.transactionId), 3) != “123” ona togi lea(“faamaoniga o le galuega ua le manuia”) isi

Ina ia faia se fefaʻatauaiga, e tatau i le tagata valaʻau ona filifili ia taʻiala ina ia amata ai lona code base58 (id) i numera 123, lea e fetaui i le averesi i ni nai sefulu sekone o le taimi o le gaosiga ma e masani ona talafeagai mo la tatou galuega. Afai e manaʻomia se PoW faigofie pe sili atu ona faigata, ona mafai lea ona faigofie ona faʻaleleia le galuega i se auala manino.

Su'esu'e mo ki fa'amaumauga e fa'aaoga ai se fa'ata'ita'iga

Ina ia mafai ona faʻaogaina poloka poloka e fai ma faʻamaumauga, e taua tele le i ai o meafaigaluega API mo le suʻeina o faʻamaumauga e fai ma ki-val e faʻavae i luga o faʻataʻitaʻiga. O lea meafaigaluega na faʻaalia i le amataga o Iulai 2019 i le tulaga o se parakalafa ?tutusa i le talosaga REST API /addresses/data?matches=regexp. I le taimi nei, afai tatou te manaʻomia le sili atu ma le tasi le ki mai se upega tafaʻilagi ae le o ki uma i le taimi e tasi, ae naʻo se vaega, ona mafai lea ona tatou faia se filifiliga ile igoa autu. Mo se faʻataʻitaʻiga, i totonu o lenei poloketi, o fefaʻatauaiga faaui i tua o loʻo faʻailogaina e pei o

withdraw_${userAddress}_${txid}

lea e mafai ai ona e maua se lisi o fefaʻatauaiga mo le talaina o tupe mo soʻo se tuatusi tuʻuina atu e faʻaaoga ai le mamanu:

?matches=withdraw_${userAddress}_.*

Se'i o tatou va'ai i vaega o le fofo ua mae'a.

Vuejs code

O le code o se demo galue latalata i le galuega moni. Na te faʻaaogaina le saini e ala i Waves Keeper ma galulue faʻatasi ma le affiliate.js library, lea e resitalaina ai le tagata faʻaoga i totonu o le faiga, fesili faʻamatalaga o fefaʻatauaiga, ma faʻatagaina oe e aveese tupe maua i le teugatupe a le tagata faʻaoga.

Open source decentralized soʻotaga polokalame i luga ole Waves blockchain

Code mo RIDE

E aofia ai le resitala, fa'atupe ma fa'aui i tua galuega.

O le galuega resitala e resitalaina ai se tagata fa'aoga ile faiga. E lua faʻamaufaʻailoga: referer (referrer address) ma le masima parakalafa, lea e le faʻaaogaina i le code function, lea e manaʻomia e filifili ai le fefaʻatauaiga id (PoW-captcha task).

O le galuega (pei o isi galuega mai lenei poloketi) e faʻaaogaina le auala e valaʻau ai aitalafu, o le taunuuga o le galuega o le faʻatupeina o le totogiina o se pili mo le valaʻau i lenei galuega. Faʻafetai i lenei fofo, o se tagata faʻaoga na faatoa fatuina se atotupe e mafai ona galue vave ma le faiga ma e le tatau ona popole i le faʻatau poʻo le mauaina o se aseta e mafai ai e ia ona totogi se pili tau fefaʻatauaiga.

O le taunuuga o le galuega resitala e lua faamaumauga:

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

Ole mea lea e fa'atagaina ai su'esu'ega i luma ma toe fa'afo'i (le fa'asinoga a se tagata fa'aoga tu'uina atu ma fa'asinoga uma a se fa'aoga tu'uina atu).

O le galuega fa'atupe o se fa'ata'ita'iga mo le atina'eina o galuega fa'atino. I lona tuʻufaʻatasia, e manaʻomia uma tupe na faʻafeiloaʻi e le fefaʻatauaiga ma tufatufa atu i faʻamatalaga a tagata faʻasalalau o laʻasaga 1, 2, 3, i le "cashback" account ma le "suia" tala (mea uma e totoe pe a tufatufa atu i le taimi muamua. o tala e alu iinei).

Cashback o se auala e faʻaosofia ai le tagata faʻaaoga mulimuli e auai i le faiga faʻasino. E mafai e le tagata faʻaoga ona faʻauʻu i tua le vaega o le komisi na totogiina e le faiga i le tulaga o le "cashback" i le auala tutusa e pei o taui mo faʻamatalaga.

Pe a faʻaaogaina se faiga faʻafeiloaʻi, e tatau ona faʻaleleia le galuega faʻatupe ma tuʻufaʻatasia i totonu o le autu autu o le teuga tupe atamai lea o le a galue ai le faiga. Mo se faʻataʻitaʻiga, afai e totogi se taui faʻafeiloaʻi mo se peti na faia, ona tatau lea ona fausia le galuega faʻaputu i le faʻatatau o loʻo tuʻu ai le peti (poʻo se isi gaioiga faʻamoemoe e faia lea e totogi ai le taui). E tolu vaega o taui fa'asino e fa'ailogaina i lenei galuega. Afai e te manaʻomia le faia o ni faʻaopoopoga pe itiiti ifo, ona faʻasaʻo foi lea i le code. O le pasene o taui o lo'o fa'atulagaina e le level1-level3 tumau i le fa'ailoga e fa'atatau i ai aofaiga * tulaga / 1000, o lona uiga, o le tau 1 e fetaui ma le 0,1% (e mafai foi ona suia i le code).

O le vala'au i le galuega e suia ai le paleni o tala ma fa'atupuina ai fo'i fa'amaumauga mo le fa'amauina o le pepa:

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

O lona uiga, o le taimi o fefaʻatauaiga o le taimi o le poloka o loʻo i ai. E sili atu le faʻatuatuaina nai lo le faʻaaogaina o le timestamp mai le fefaʻatauaiga lava ia, aemaise lava talu ai e le maua mai le telefoni.
O le galuega fa'aui i tua e fa'aalia uma taui fa'aputu i le teugatupe a le tagata fa'aoga. Fausia fa'amaumauga mo fa'amoemoega fa'amau:

# withdraw log: withdraw_user_txid=amount:timestamp

Talosaga

O le vaega autu o le talosaga o le affiliate.js library, o se alalaupapa i le va o faʻataʻitaʻiga faʻamaumauga faʻatasi ma le WAVES NODE REST API. Fa'atino se tulaga fa'a'ese'ese e tuto'atasi mai le auivi (so'o se tasi e mafai ona fa'aoga). O galuega fa'atino (resitala, ave'ese) fa'apea o lo'o fa'apipi'i Waves Keeper i luga o le faiga e le siakiina e le faletusi;

Faʻatinoina metotia:

fetchReferralTransactions
fetchWithdrawTransactions
fetchMyBalance
fetchReferrals
fetchReferer
withdraw
register

O le faʻatinoga o metotia e manino mai i igoa o faʻamaumauga ma faʻamatalaga toe faʻamatalaina i totonu o le code. O le galuega resitala e manaʻomia ai faʻamatalaga faaopoopo - e amata ai se taamilosaga o le filifilia o le fefaʻatauaiga id ina ia amata i le 123 - o le PoW-captcha lea o loʻo faʻamatalaina i luga, lea e puipuia mai le tele o le resitalaina. E maua e le galuega se fefaʻatauaiga ma le id manaʻomia, ona sainia lea e ala i Waves Keeper.

O lo'o maua le polokalame feso'ota'i DEX i GitHub.com.

puna: www.habr.com

Faaopoopo i ai se faamatalaga