Raad mawjada Shabkada 3.0

Horumariyaha Christophe Verdot wuxuu ka hadlayaa koorsada khadka 'Hagaajinta Shabakadda 3.0 ee leh Mowjadaha' oo uu dhawaan ka gudbay.

Raad mawjada Shabkada 3.0

Wax yar nooga sheeg naftaada. Maxaad xiisaynaysaa koorsadan?

Waxaan samaynayey horumarinta shabakadda ilaa 15 sano, badiyaa madax-banaani ahaan.

Iyadoo la horumarinayo codsiga shabakadda ee diiwaanka muddada-dheer ee wadamada soo koraya ee kooxda bangiyada, waxaan la kulmay hawsha ah in lagu daro shahaadada blockchain. Waqtigaas, wax badan kama aan ogeyn shahaadada blockchain, inkasta oo aan horeyba u xiiseynayay tignoolajiyada crypto, inta badan maalgashi ahaan.

Natiijo ahaan, hawshan lama hirgelin, laakiin aniga oo u maleynaya in hay'adaha iyo bangiyada ay daneynayaan xalka noocaas ah ee codsiyadooda, waxaan bilaabay daraasadda arrinka oo markiiba bilaabay mashruuca. Silsiladda Saxeexa.

Waxaan sameeyay nooc beta ah, kaas oo horeba looga heli jiray shabakadda guud. Waqtigaas, ma jirin [Waves programming language] Ride, markaa wax walba waxaan u sameeyay habka ugu fudud, anigoo isticmaalaya macaamilka turjumaada JSON. Laakin hadafka ugu wayn wuxuu ahaa in lagu daro hawlkarnimo horumarsan kadib markii la bilaabay Ride. Tanina waa sababta ugu weyn ee aan ugu biiray koorsada: marxaladda xigta ee horumarinta mashruuca ayaa ku lug leh abuurista codsi baahsan (dApp).

Dhinacyadee koorsada ka mid ah oo aad ka heshay kuwa ugu fudud iyo kuwa ugu dhibka badnaa?

Waxa ugu fudud ayaa ahaa in aanu haysanay wakhti ku filan dhammaan hawlaha. Ujeeddada koorsadu waa in wax la barto, oo aan la isku tartamin. Sharaxaadyadu aad bay u ahaayeen kuwo la heli karo, sawirraduna waxay ahaayeen kuwo fudud laakiin dhammaystiran. Tani waxay gacan ka gaysatay in la sawiro oo la fahmo mawduucyo kala duwan.

Markaan dhammayneyno shaqada, waxaa nalagu dhiirigeliyay inaan si madax-bannaan u fikirno oo aan mararka qaarkood wax u baranno keligood. Tani waa habka ugu wanaagsan ee lagu baran karo laguna fahmi karo fikradaha lagu sheegay fasalka.

Dhawr jeer si buuxda uma fahmin qaybta aragtida ilaa aan bilaabay qorista koodka anigoo dhammaystiraya hawsha. Nalooma ogolayn inaan samayno 'koobi/koji', waxay ahayd inaan qorno dhammaan koodka lafteena, tani waxay sidoo kale naga caawisay inaan wax walba si fiican u fahanno.

Waxa ugu adag waxa ay ahayd in su'aalaha ku jira hawsha doorashada badan aanay mar walba caddayn. Af-Ingiriisigu ma qummana, su'aalahana waxaa qoray qof aan u dhalan, markaa mararka qaarkood waxaa dhici jirtay ismaandhaaf.

Waxaa laga yaabaa in qaybta koorsada loogu talagalay oracles iyo NFTs ay noqon karto mid faahfaahsan. Laakiin, xaalad kasta, yoolka ugu weyn ee koorsadu waa inay xiiseeyaan horumarinta. Kadib, si aad si buuxda u fahamto dhammaan dhinacyadiisa, waxaad, dabcan, u baahan doontaa inaad wakhti ku qaadato tijaabinta iyo ku celcelinta.

Noo sheeg wax badan oo ku saabsan xalka aad ka shaqeysay intii aad koorsada socotay - 'Coupon Bazaar'? Sidoo kale ma arki karaa qaar ka mid ah tusaalooyinka koodka?

Haa, waxaanu ka shaqaynay 'Coupon Bazaar', waa goob suuq ah oo ay dadku ku iibiyaan oo ay ku iibsadaan kuuboonno siinaya xaqa ay u leeyihiin inay ku iibsadaan alaabo iyo adeegyo qiimo jaban. Kuuban kasta waxa u taagan hanti dhijitaal ah oo qiimo dhimis gaar ah ka siisa alaab-qeybiyaha.

Raad mawjada Shabkada 3.0

Dhowr qaybood oo codsi ah ayaa loo baahan yahay in la horumariyo. Marka hore, waxay ahayd lagama maarmaan in la sameeyo nidaam lagu diiwaan geliyo alaab-qeybiyeyaasha iyo maareynta rasiidhada. Kadibna waxaan u baahneyn shaqada xaqiijinta iyo awooda isticmaalayaasha si ay u raadiyaan kuubannada.

Raad mawjada Shabkada 3.0

Inta lagu guda jiro koorsada waxaan sidoo kale ku darnay dhowr astaamood oo cusub, oo ay ku jiraan nidaamka codeynta iyo qaab kuu ogolaanaya inaad xaqiijiso oo aad liis madow ku sameyso alaab-qeybiyeyaasha.

Marka hore, waxaan baranay farqiga u dhexeeya hantida smart, xisaabaadka smart, iyo xisaabaadka dApp iyo aasaaska la shaqaynta hawlaha xaqiijinta. Hawlaha xaqiijinta waxay kuu oggolaanayaan inaad bedesho hab-dhaqanka caadiga ah ee akoonkaaga. Sida caadiga ah waxay xaqiijiyaan saxeexyada wax kala iibsiga, laakiin sifada xaqiijinta waxay kuu ogolaanaysaa inaad dejiso "sharciyo" kale.

{-# 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
    }
}

Ka dib waxaan bilownay inaan ku darno kuubannada. Waxaan isticmaalnay mid ka mid ah hawlaha ugu muhiimsan ee dApp-ka, kaas oo kuu ogolaanaya inaad ku duubto xogta nooc kasta oo blockchain ah oo ah qaabka muhiimka ah ee lamaanaha - macaamil ganacsi. Waxaan ku darsannay macaamil cusub, invokeScript, kaas oo loo isticmaalo in loogu yeero shaqada la wici karo ee dApp ka baxsan blockchain.

Nooca macaamilka xogta ee aanu isticmaalnay intii aanu koorsada ku jirnay waxa uu suuqa ku dari jiray kuubannada:

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)
})

Si loo farsameeyo xogtan shaqada addItem oo loo horumariyo shaqada wax iibsiga iyo fursadaha kale, waxaan isticmaalnay shaqo la wici karo oo isticmaaluhu uu ka wici karo meel ka baxsan blockchain. Natiijo ahaan, waxay qaban kartaa hawlo kala duwan, sida bilawga wareejinta lacagaha, qorista ama cusboonaysiinta xogta ku jirta kaydka xogta dApp, iwm.

Waa kuwan tusaale ku saabsan shaqada loo yaqaan 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)
        ])
    }
}

Markii danbe waxaanu samaynay hab codayn ah kaas oo kuu ogolaanaya inaad codayso si aad u horumariso ama uga saarto alaabta qaarkood. Si looga hortago saamaynta ka baxsan habka cod bixinta, waxay isticmaashaa nidaamka 'Commit-Reveal'.

Marxaladda "commit" waxa loo isticmaalaa in lagu ururiyo codadka sir ah iyadoo la isticmaalayo xashiish iyo "cusbo".

Marxaladda "muujin" waxa loo isticmaalaa in lagu ururiyo codadka sir ah oo la is barbar dhigo xashiishyadooda.

Waa kuwan tusaale ku saabsan shaqada loo yaqaan halkan:

@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)
        ])
    }
}
>

Maxaa kale oo aad ka baratay koorsada?

Koorasku waxa kale oo ku jiray calaamado iyo calaamado aan fungible (NFTs) - calaamado matalaya shay gaar ah oo sidaas darteed aan fungible ahayn.

Casharkii u dambeeyay waxa uu ahaa mid ku saabsan oraahyada. Maaddaama blockchain-ka uusan ka heli karin xogta adduunka ka baxsan, waxaan u baahanahay oracles si aan xogtan ugu dirno.

Suuqayada, oracle ayaa loo baahday si loo xaqiijiyo iyo, haddii loo baahdo, liiska madow ee alaab-qeybiyaha, tusaale ahaan, aan aqbalin kuuboonka la iibiyo.

Halkan waxaa ah tusaale:

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)
        ])
    }
}

Maxaa kuugu faa'iido badnaa?

Qaybta ugu faa'iido badan waa hawlaha. Iyaga ayaa mahad iska leh, muxaadarooyinka ayaa noqday mid cad, aqoonta cusub ee la helayna waxaa lagu xoojiyay tijaabo iyo qalad. Shaqo la taaban karo HALKAN, sahamiye и afafka.

Sideed u qorshaynaysaa inaad ku dhaqan galiso waxaad baratay?

Bilowgiiba, waxaan filayey in koorsadu ay gacan ka geysan doonto sidii aan mashruucayga u gaarsiin lahaa heerka xiga. Fikradda waxay ahayd in hadda la qoro koodka calaamad-web.app on RIDE. Nooca hadda jira wuxuu horey u lahaa hawlo caddaynaya dukumeenti, laakiin mahadda RIDE si weyn ayaa loo horumarin karaa. Nooca cusub wuxuu noqon doonaa mid dabacsan oo dareen leh, wuxuuna yeelan doonaa astaamo badan, oo ay ku jiraan shahaado emailka, heshiisyada xisbiyada badan, iwm.

Koorasku wuxuu sidoo kale ahaa mid fekeraya wuxuuna i siiyay fikrado badan oo cusub. Waxaan ku kalsoonahay in natiijadu ay sii socon doonto inay soo baxdo mustaqbalka.

Source: www.habr.com

U soo iibso martigelin lagu kalsoonaan karo oo loogu talagalay bogagga leh ilaalinta DDoS, VPS VDS servers 🔥 Iibso martigelin degel oo lagu kalsoonaan karo oo leh ilaalinta DDoS, VPS VDS servers | ProHoster