Kwerani pa Web 3.0 wave

Woyambitsa Christophe Verdot amalankhula za maphunziro apaintaneti 'Mastering Web 3.0 ndi Waves' zomwe adadutsa posachedwa.

Kwerani pa Web 3.0 wave

Tiuzeni pang'ono za inu nokha. Ndi chiyani chomwe chinakusangalatsani ndi maphunzirowa?

Ndakhala ndikuchita chitukuko cha intaneti kwa zaka pafupifupi 15, makamaka ngati wogwira ntchito pawokha.

Ndikupanga pulogalamu yapaintaneti ya kaundula wanthawi yayitali kwa mayiko omwe akutukuka kumene kwa gulu la banki, ndinayang'anizana ndi ntchito yophatikizira chiphaso cha blockchain. Panthawiyo, sindinkadziwa zambiri za certification blockchain, ngakhale kuti ndinali ndi chidwi kale ndi matekinoloje a crypto, makamaka monga wogulitsa ndalama.

Chotsatira chake, ntchitoyi sinagwiritsidwe ntchito, koma, poganiza kuti mabungwe ndi mabanki anali ndi chidwi ndi yankho lotere la ntchito zawo, ndinayamba kuphunzira nkhaniyi ndipo posakhalitsa ndinayambitsa ntchitoyi. Signature Chain.

Ndinapanga mtundu wake wa beta, womwe ukupezeka kale pa mainnet. Panthawiyo, kunalibe [Chiyankhulo cha pulogalamu ya Waves] Kukwera, kotero ndidachita zonse m'njira yosavuta, pogwiritsa ntchito kumasulira ndi JSON yokhazikika. Koma cholinga chachikulu chinali kuwonjezera magwiridwe antchito apamwamba pambuyo poyambitsa Ride. Ndipo ichi ndi chifukwa chachikulu chomwe ndidalowa nawo maphunzirowa: gawo lotsatira lachitukuko cha pulojekitiyi lidakhudza kukhazikitsidwa kwa pulogalamu yokhazikitsidwa ndi anthu (dApp).

Ndi mbali ziti zamaphunzirowa zomwe mwapeza kuti ndizosavuta komanso zomwe zidakuvutitsani kwambiri?

Chosavuta kwambiri chinali chakuti tinali ndi nthawi yokwanira yochita ntchito zonse. Mfundo ya maphunzirowa ndi kuphunzira chinachake, osati kupikisana wina ndi mzake. Malongosoledwe anali ofikirika kwambiri ndipo mafanizo anali osavuta koma omveka. Zimenezi zinathandiza kuti tizitha kuona m’maganizo ndi kumvetsa nkhani zosiyanasiyana.

Pomaliza ntchito, tinkalimbikitsidwa kuganiza patokha ndipo nthaŵi zina kuphunzira tokha. Iyi ndi njira yabwino yophunzirira ndikumvetsetsa malingaliro omwe aphunziridwa m'kalasi.

Kangapo sindinkamvetsa bwino chiphunzitsocho mpaka nditayamba kulemba code ndikumaliza ntchito. Sitinaloledwe kupanga 'copy/paste', timayenera kulemba tokha ma code onse, ndipo izi zidatithandizanso kumvetsetsa bwino chilichonse.

Chovuta kwambiri chinali chakuti mafunso omwe ali muzosankha zingapo sanali omveka bwino nthawi zonse. Chingelezi changa sichinali changwiro, ndipo mafunsowo analembedwa ndi munthu wosakhala mbadwa, choncho nthawi zina panali kusamvana.

Mwina gawo la maphunziro operekedwa kwa olankhulira ndi NFTs likhoza kufotokozedwa mwatsatanetsatane. Koma, mulimonse, cholinga chachikulu cha maphunzirowa ndi okonda chidwi. Ndiye, kuti mumvetse bwino mbali zake zonse, mudzafunika kukhala ndi nthawi yoyesera ndikuchita.

Tiuzeni zambiri za yankho lomwe mudagwirapo pamaphunzirowa - 'Coupon Bazaar'? Kodi ndingawonenso zitsanzo za ma code?

Inde, tinagwira ntchito pa 'Coupon Bazaar', awa ndi msika kumene anthu amagulitsa ndi kugula makuponi omwe amawapatsa ufulu wogula katundu ndi ntchito pamtengo wotsika. Kuponi iliyonse imayimiridwa ndi chuma cha digito chomwe chimapereka kuchotsera kwapadera kwa ogulitsa.

Kwerani pa Web 3.0 wave

Zigawo zingapo zogwiritsira ntchito zimayenera kupangidwa. Choyamba, kunali kofunikira kupanga dongosolo lolembetsa ogulitsa ndi kuyang'anira makuponi. Kenako tidafunikira ntchito yotsimikizira komanso kuthekera kwa ogwiritsa ntchito kufufuza makuponi.

Kwerani pa Web 3.0 wave

M'kati mwa maphunzirowa tidawonjezeranso zinthu zingapo zatsopano, kuphatikiza njira yovota komanso mawonekedwe omwe amakulolani kuti mutsimikizire ndikulemba mndandanda wazinthu zopanda pake.

Choyamba, tidaphunzira kusiyana pakati pa zinthu zanzeru, maakaunti anzeru, maakaunti a dApp ndi zoyambira zogwirira ntchito ndi zotsimikizira. Ntchito zotsimikizira zimakulolani kuti musinthe machitidwe a akaunti yanu. Mwachikhazikitso amatsimikizira siginecha zamalonda, koma mawonekedwe otsimikizira amakulolani kukhazikitsa "malamulo" ena.

{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
letownerPublicKey = base58'H8ndsHjBha6oJBQQx33zqbP5wi8sQP7hwgjzWUv3q95M'
@Verifier(tx)
funcverify() = {
    matchtx {
        cases: SetScriptTransaction=>sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
        cased: DataTransaction=>true
        case_ =>false
    }
}

Kenako tinayamba kuwonjezera makuponi. Tinagwiritsa ntchito imodzi mwa ntchito zofunika kwambiri za dApp, zomwe zimakulolani kuti mulembe deta yamtundu uliwonse mu blockchain mu mawonekedwe a mafungulo-mtengo wapatali - kugulitsa deta. Tidaphatikiza ndikusinthana kwatsopano, invokeScript, yomwe imagwiritsidwa ntchito kuyitanitsa ntchito yoyitanidwa mu dApp kuchokera kunja kwa blockchain.

Mtundu wa data womwe tidagwiritsa ntchito pamaphunzirowa unali kuwonjezera makuponi pamsika:

letdatajson = {
    "title":        "t-shirt with , vote 1",
    "coupon_price": 10000000,
    "old_price":    1000000000,
    "new_price":    100000000,
    "address":      "Universe",
    "description":  "I want you to make love, not war, i know you've heard it before",
    "image":        "https://bit.ly/2EXTghg"
}
it('add item', asyncfunction(){
    letts = invokeScript({
       dApp: dappAddress,
           call:{
               function:"addItem",
               args:[
                    { type:"string", value: datajson.title },
                    { type:"integer", value: datajson.coupon_price },
                    { type:"string", value: JSON.stringify(datajson) }
               ]},
               payment: []
           }, accountSupplierSeed)
    lettx = awaitbroadcast(ts)
    awaitwaitForTx(tx.id)
})

Kuti tigwiritse ntchito deta iyi ndi ntchito ya addItem ndikupanga ntchito yogula ndi zina zomwe mungasankhe, tinagwiritsa ntchito ntchito yomwe wogwiritsa ntchito angathe kuyitana kuchokera kunja kwa blockchain. Zotsatira zake, zimatha kugwira ntchito zosiyanasiyana, monga kuyambitsa kusamutsa ndalama, kulemba kapena kukonzanso deta mu sitolo ya data ya dApp, ndi zina.

Nachi chitsanzo cha zomwe zimatchedwa ntchito zomwe zimagwiritsidwa ntchito mu addItem function:

@Callable(i)
funcaddItem(title: String, price: Int, data: String) = {
    letsupplierAddress = toBase58String(i.caller.bytes)
    letitem = getKeyItem(supplierAddress, title)
    if( price <= 0) thenthrow("purchase amount cannot be less than item price")
    elseif( getValueItemSupplier(item) !=NONE ) thenthrow("an item is already exist")
    else{
        WriteSet([
           DataEntry(getKeyItemSupplier(item), supplierAddress),
           DataEntry(getKeyItemPrice(item), price),
           DataEntry(getKeyItemData(item), data)
        ])
    }
}

Pambuyo pake tinapanga njira yovota yomwe imakulolani kuvota kuti mulimbikitse kapena kuchotsa zinthu zina. Pofuna kupewa kukopa anthu ena pa kuvota, imagwiritsa ntchito ndondomeko ya 'Commit-Reveal'.

Gawo la "commit" limagwiritsidwa ntchito kusonkhanitsa mavoti osungidwa pogwiritsa ntchito hashi ndi "mchere".

Gawo la "kuwulula" limagwiritsidwa ntchito kusonkhanitsa mavoti obisika ndikuyerekeza ma hashes awo.

Nachi chitsanzo cha ntchito yomwe imagwiritsidwa ntchito apa:

@Callable(i)
funcvoteCommit(item: String, hash: String) = {
    letuser = toBase58String(i.caller.bytes)
    letcommits = getValueCommitsCount(item)
    letstatus = getValueItemStatus(item)
    if( commits >=VOTERS) thenthrow("reached max num of voters")
    elseif(getValueCommit(item, user) !=NONE) thenthrow("user has already participated")
    elseif(getKeyItemSupplier(item) ==NONE) thenthrow("item does not exist")
    elseif(status !=NONE && status !=VOTING) thenthrow("voting is not possible")
    else{
        WriteSet([
           DataEntry(getKeyCommit(item, user), hash),
           DataEntry(getKeyCommitsCount(item), commits +1),
           DataEntry(getKeyItemStatus(item),if(commits ==VOTERS) thenREVEAL elseVOTING)
        ])
    }
}
>

Ndi chiyani chinanso chomwe mwaphunzira pamaphunzirowa?

Maphunzirowa anaphatikizanso zizindikiro ndi zizindikiro zopanda fungible (NFTs) - zizindikiro zomwe zimayimira chinthu chapadera ndipo motero sichikhoza fungible.

Phunziro lomaliza linali la maulaliki. Popeza blockchain sangathe kulandira deta kuchokera kudziko lakunja, timafunikira oracles kutumiza deta iyi kwa izo.

Pamsika wathu, maulalo amafunikira kuti atsimikizire ndipo, ngati kuli kofunikira, osalemba malonda omwe, mwachitsanzo, sanavomereze kuponi yogulitsidwa.

Nachi chitsanzo:

funcgetExtValueItemWhiteListStatus(item:String) = {
    item +"_verifier_status"
}
 
letverifier = "3Mx9qgMyMhHt7WUZr6PsaXNfmydxMG7YMxv"
letVERIFIED = "verified"
letBLACKLISTED = "blacklist"
@Callable(i)
funcsetstatus(supplier: String, status: String) = {
    letaccount = toBase58String(i.caller.bytes)
    if( account !=verifier ) thenthrow("only oracle verifier are able to manage whitelist")
    elseif( status !=VERIFIED && status !=BLACKLISTED) thenthrow("wrong status")
    else{
        WriteSet([
           DataEntry(getExtValueItemWhiteListStatus(supplier), status)
        ])
    }
}

Ndi chiyani chomwe chinali chothandiza kwambiri kwa inu?

Mbali yothandiza kwambiri ndi ntchito. Chifukwa cha iwo, nkhani zokambira zidakhala zomveka bwino, ndipo chidziwitso chatsopanocho chidaphatikizidwa mwa kuyesa ndi zolakwika. Ntchito yothandiza ndi PANO, wofufuza и mawu.

Kodi mukukonzekera kuti mugwiritse ntchito bwanji zomwe mwaphunzira?

Kuyambira pachiyambi, ndimayembekezera kuti maphunziro angandithandizire kupititsa patsogolo ntchito yanga. Lingaliro linali loti alembe kachidindo sign-web.app pa RIDE. Mtundu womwe ulipo kale uli ndi ntchito zotsimikizira zikalata, koma chifukwa cha RIDE ukhoza kusintha kwambiri. Mtundu watsopanowu udzakhala wosinthika komanso wowoneka bwino, ndipo udzakhala ndi zina zambiri, kuphatikiza ma certification a maimelo, mapangano amagulu ambiri, ndi zina zambiri.

Maphunzirowa analinso opatsa chidwi ndipo anandipatsa malingaliro ambiri atsopano. Ndili ndi chidaliro kuti zotsatira zipitilira kuwonekera mtsogolomu.

Source: www.habr.com

Gulani kuchititsa kodalirika kwamasamba okhala ndi chitetezo cha DDoS, ma seva a VPS VDS Gulani malo odalirika osungira mawebusayiti okhala ndi chitetezo cha DDoS, ma seva a VPS VDS | ProHoster