Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Ọzọ, anyị ga-ele anya n'ụzọ zuru ezu na isi e ji mara nke Move asụsụ na ihe bụ isi ya dị iche na ọzọ, ama na-ewu ewu asụsụ maka smart contracts - Solidity (na Ethereum ikpo okwu). Ihe a gbadoro ụkwụ na nyocha nke akwụkwọ ọcha dị peeji 26 dị n'ịntanetị.

Okwu Mmalite

Move bụ asụsụ bytecode enwere ike ime nke a na-eji eme azụmahịa azụmahịa yana nkwekọrịta smart. Biko mara isi ihe abụọ:

  1. Ọ bụ ezie na Move bụ asụsụ bytecode nke enwere ike igbu ya ozugbo na Move Virtual Machine, Solidity (asụsụ nkwekọrịta smart na Ethereum) bụ asụsụ dị elu nke a na-ebu ụzọ chịkọta n'ime bytecode tupu e gbuo ya na EVM (Ethereum Virtual Machine).
  2. Enwere ike iji mmegharị ọ bụghị naanị iji mejuputa nkwekọrịta smart, kamakwa maka azụmahịa ndị ọrụ (karịa na nke a mechara), ebe Solidity bụ naanị nkwekọrịta smart.


Ndị otu ọrụ INDEX Protocol mere ntụgharị asụsụ a. Anyị atụgharịala asụsụ nnukwu ihe na-akọwa ọrụ Libra, ugbu a ọ bụ oge ileba anya n'asụsụ Move na ntakịrị nkọwa. Ha na Habrauser rụkọtara ntụgharị asụsụ ahụ dị jụụ

Otu akụkụ dị mkpa nke Move bụ ikike ịkọwapụta ụdị akụrụngwa omenala na semantics dabere na mgbagha ahịrị: enweghị ike iṅomi akụrụngwa ma ọ bụ ihichapụ nke ọma, naanị ibugharị ya. Na-arụ ọrụ, nke a yiri ike nke asụsụ Rust. Enwere ike ịnye ụkpụrụ dị na Rust naanị n'otu aha n'otu oge. Ịnye uru n'aha dị iche na-eme ka ọ ghara ịdị n'okpuru aha gara aga.

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Dịka ọmụmaatụ, snippet koodu a ga-atụfu njehie: Ojiji nke ebugharị 'x'. Nke a bụ n'ihi na nchara enweghị nchịkọta mkpofu. Mgbe mgbanwe na-apụ apụ, a na-ahapụkwa ebe nchekwa ha na-ezo aka na ya. N'ikwu ya n'ụzọ dị mfe, enwere ike ịnwe naanị otu "onye nwe" data ahụ. N'ihe atụ a x bụ onye nwe mbụ na mgbe ahụ y na-aghọ onye nwe ọhụrụ. Gụkwuo maka omume a ebe a.

Na-anọchi anya akụ dijitalụ na sistemụ mepere emepe

Enwere ihe abụọ nke akụ anụ ahụ siri ike ịnọchite anya dijitalụ:

  • Njupụta ( Ụkọ, na mbụ - ụkọ). A ghaghị ịchịkwa ọnụ ọgụgụ nke akụ (mpụta) na usoro. A ga-amachibido imegharị ihe onwunwe dị ugbu a, yana imepụta nke ọhụrụ bụ ọrụ nwere oke.
  • Njikwa njikwa. Onye so na sistemu ga-enwe ike ichekwa akụ site na iji atumatu njikwa ohere.

Àgwà abụọ a, nke bụ ihe okike maka akụ anụ ahụ, aghaghịkwa imejuputa ya maka ihe dijitalụ ma ọ bụrụ na anyị chọrọ ịtụle ha dị ka akụ. Dịka ọmụmaatụ, metal na-adịghị ahụkebe nwere ụkọ okike, naanị ị nwere ike ịnweta ya (ijide ya n'aka gị, dịka ọmụmaatụ) ma ị nwere ike ree ma ọ bụ mefu ya.

Iji gosi ka anyị siri bịarute ụlọ abụọ a, ka anyị were ahịrịokwu ndị a malite:

Atụmatụ #1: Iwu kachasị mfe na-enweghị ụkọ na njikwa ohere

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

  • G[K]:=n na-egosi imelite nọmba enwere ike iji igodo nweta К na ọnọdụ zuru ụwa ọnụ nke blockchain, nke nwere ihe ọhụrụ pụtara n.
  • azụmahịa ⟨Alice, 100⟩ pụtara idobe nguzozi akaụntụ Alice ka ọ bụrụ 100.

Ngwọta dị n'elu nwere ọtụtụ nsogbu siri ike:

  • Alice nwere ike nweta ọnụọgụ mkpụrụ ego na-akparaghị ókè site na izipu azụmahịa ⟨Alice, 100⟩.
  • Mkpụrụ ego Alice zigara Bob abaghị uru, ebe ọ bụ na Bob nwere ike iji otu usoro ahụ ziga onwe ya ọnụọgụ mkpụrụ ego na-akparaghị ókè.

Aro Nke 2: Buru n'uche mperi

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Ugbu a, anyị na-enyocha ọnọdụ ahụ ka ọnụ ọgụgụ nke mkpụrụ ego Ka ọ dịkarịa ala hà nhata n tupu azụmahịa mbufe. Otú ọ dị, ọ bụ ezie na nke a na-edozi nsogbu ụkọ ahụ, ọ dịghị ozi gbasara onye nwere ike izipu mkpụrụ ego Alice (maka ugbu a, onye ọ bụla nwere ike ime nke a, ọ bụrụhaala na ị naghị emebi iwu oke oke).

Atụmatụ #3: Jikọta ụkọ na njikwa nnweta

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Anyị na-edozi nsogbu a site na iji usoro mbinye aka dijitalụ verify_sig tupu ịlele nguzozi, nke pụtara Alice na-eji igodo nzuzo ya bịanye aka na azụmahịa ahụ wee gosi na ọ bụ ya nwe mkpụrụ ego ya.

Asụsụ mmemme Blockchain

Asụsụ blockchain dị ugbu a na-eche nsogbu ndị a ihu (a doziri ha niile na Move). N'ụzọ dị mwute, onye edemede nke isiokwu na-ezo aka naanị Ethereum na ntụnyere ya, n'ihi ya, a ga-ewere ha naanị n'ọnọdụ a. Dịka ọmụmaatụ, ọtụtụ n'ime ihe ndị a na-edozikwa na EOS)):

Ngosipụta akụ na-apụtaghị ìhè. A na-eji ọnụọgụ ọnụọgụ tinye koodu akụ, mana integer abụghị otu ihe bara uru. N'ezie, ọ dịghị ụdị ma ọ bụ uru na-anọchi anya Bitcoin / Ether / <Mkpụrụ ego ọ bụla>! Nke a na-eme ka mmemme ide ihe na-eji akụ eme ihe siri ike yana mmejọ. Ụdị dị ka ibufe akụ gaa na/site na usoro ma ọ bụ na-echekwa akụ n'ime ụlọ chọrọ nkwado pụrụ iche site na asụsụ.

Mwepu anaghị agbasa. Asụsụ na-anọchi anya naanị otu akụ dị ụkọ. Tụkwasị na nke ahụ, a na-ejikọta ụzọ nchebe pụọ na erughi eru ozugbo n'ime semantics nke asụsụ. Onye mmepụta, ọ bụrụ na ọ chọrọ ịmepụta ihe onwunwe omenala, ga-eji nlezianya chịkwaa akụkụ niile nke akụ ahụ n'onwe ya. Ndị a bụ kpọmkwem nsogbu na Ethereum smart contracts.

Ndị ọrụ na-enye ihe onwunwe ha, akara ERC-20, na-eji integers chọpụta ma uru na mkpokọta ọkọnọ. Mgbe ọ bụla emepụtara akara ọhụrụ, koodu nkwekọrịta smart ga-enyocharịrị nrube isi n'iwu ikuku. Tụkwasị na nke ahụ, ihe nnọchianya nke akụ na-eduga, n'ọnọdụ ụfọdụ, na njehie dị njọ - mbiputegharị, imefu okpukpu abụọ ma ọ bụ ọbụna ọnwụ zuru oke nke akụ.

Enweghị njikwa ohere na-agbanwe agbanwe. Naanị iwu njikwa ohere nke etinyere ugbu a bụ atụmatụ mbinye aka na-eji asymmetric cryptografi. Dị ka nchebe ụkọ, amụma njikwa ohere agbakwunyere na semantics nke asụsụ. Mana otu esi agbatị asụsụ ka ndị na-eme mmemme kọwapụta atumatu njikwa ohere ha na-abụkarị ọrụ siri ike.

Nke a bụkwa eziokwu na Ethereum, ebe nkwekọrịta smart enweghị nkwado cryptography nke ala maka njikwa ohere. Ndị nrụpụta ga-eji aka kọwaa njikwa ohere, dịka ọmụmaatụ, iji naanị mgbanwe onye nwe.

N'agbanyeghị na m bụ nnukwu onye na-akwado Ethereum, ekwenyere m na akụrụngwa akụrụngwa kwesịrị ịkwado asụsụ obodo maka ebumnuche nchekwa. Karịsịa, ịnyefe Ether na nkwekọrịta smart gụnyere izipu dị ike, nke webatara klas ọhụrụ nke ahụhụ mara dị ka adịghị ike ịbanyeghachi. Mgbasa ozi dị omimi ebe a pụtara na a ga-ekpebi mgbagha ogbugbu nke koodu ahụ na oge ojiri gaa (dị ike) karịa n'oge nchịkọta ( static).

Ya mere, na Solidity, mgbe nkwekọrịta A na-akpọ ọrụ na nkwekọrịta B, nkwekọrịta B nwere ike ịme koodu nke na-abụghị nke onye mmepụta nkwekọrịta A bu n'obi, nke nwere ike ịkpata ya. adịghị ike ịbanye ọzọ (nkwekọrịta A na-eme na mberede dị ka nkwekọrịta B iji wepụ ego tupu e wepụ ego nkwụnye ego n'ezie).

Bugharịa Ihe Nhazi Asụsụ

Ngwa ịtụ ahịa mbụ

N'ikwu okwu n'ogo dị elu, mmekọrịta dị n'etiti modul/akụrụngwa/usoro dị n'asụsụ Move yiri njikọ dị n'etiti klaasị/ihe na ụzọ n'asụsụ OOP.
Modul dị na Move yiri nkwekọrịta smart na blockchain ndị ọzọ. Modul ahụ na-ekwupụta ụdị akụ na usoro na-akọwapụta iwu maka imepụta, ibibi na imelite akụrụngwa ekwuputara. Mana ihe a niile bụ naanị nkwekọrịta ("jargon”) na Move. Anyị ga-akọwa nke a obere oge ma emechaa.

Ike mgbanwe

Ntugharị na-agbakwunye mgbanwe na Libra site na ide edemede. Azụmahịa ọ bụla na Libra gụnyere edemede, nke bụ isi usoro azụmahịa ahụ. Edemede ahụ nwere ike ịrụ otu omume akọwapụtara, dịka ọmụmaatụ, ịkwụ ụgwọ na ndepụta ndị nnata akọwapụtara, ma ọ bụ jiri akụrụngwa ndị ọzọ - dịka ọmụmaatụ, site na ịkpọ usoro nke akọwapụtara mgbagha izugbe. Nke a bụ ihe mere Move azụmahịa scripts na-enye nnukwu mgbanwe. Edemede nwere ike iji ma otu oge na omume na-emeghachi omume, ebe Ethereum nwere ike ịme naanị edemede ugboro ugboro (na-akpọ otu usoro na usoro nkwekọrịta smart). Ihe kpatara eji akpọ ya "reusable" bụ n'ihi na ọrụ nke nkwekọrịta smart nwere ike igbu ọtụtụ oge. ( mara: Isi okwu ebe a dị nnọọ aghụghọ. N'otu aka, scripts azụmahịa n'ụdị pseudo-bytecode dịkwa na Bitcoin. N'aka nke ọzọ, ka m ghọtara ya, Move na-agbasa asụsụ a, n'ụzọ bụ isi, ruo n'ọkwa nke asụsụ nkwekọrịta smart zuru oke.).

Nche

Ọkpụkpọ Move executable bụ bytecode, nke bụ, n'otu aka, asụsụ dị elu karịa asụsụ mgbakọ, mana ọkwa dị ala karịa koodu isi mmalite. A na-enyocha bytecode na oge ịgba ọsọ (na-agbụ) maka akụrụngwa, ụdị na nchekwa ebe nchekwa site na iji nkwenye bytecode, wee mebie ya site na ntụgharị. Usoro a na-enye ohere ka Move na-enye nchekwa nke koodu isi mmalite, mana na-enweghị usoro nchịkọta na mkpa ịgbakwunye onye nchịkọta na usoro. Ime Bugharịa asụsụ bytecode bụ ezigbo ngwọta. Ọ dịghị mkpa ka a chịkọta ya site na isi iyi, dị ka ọ dị na Solidity, ọ dịghịkwa mkpa ichegbu onwe gị maka ọdịda ma ọ bụ ọgụ nwere ike ime na akụrụngwa nchịkọta.

Nkwenye

Ebumnuche anyị bụ ime nlele nlele ka ọ dị mfe dịka o kwere mee, ebe ọ bụ na a na-eme ihe niile na agbụ (rịba ama: online, n'oge mmezu nke azụmahịa ọ bụla, ya mere igbu oge ọ bụla na-eduga na nkwụsị nke netwọk dum), Otú ọ dị, na mbụ nhazi asụsụ dị njikere iji ngwaọrụ nkwenye na-enweghị agbụ. Ọ bụ ezie na nke a ka mma karịa, maka ugbu a, a na-eyigharị mmepe nke ngwaọrụ nkwenye (dịka ngwá ọrụ dị iche iche) maka ọdịnihu, ma ugbu a, ọ bụ naanị nkwenye siri ike na-agba ọsọ (na-agbụ) na-akwado.

Ụdị

Modul mbugharị na-enye abstraction data wee wepụta ọrụ akụrụngwa dị oke mkpa. Ihe mkpuchi nke modul nyere, jikọtara ya na nchebe nke usoro Move na-enye, na-eme ka a mata na ihe ndị e debere na ụdị modul enweghị ike imebi site na koodu n'èzí modul. Nke a bụ a pụtara nkọ imewe nke abstraction, nke pụtara na data n'ime nkwekọrịta nwere ike ịgbanwe naanị n'ime akporo nke nkwekọrịta, ọ bụghị site n'èzí.

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Bugharịa Nyochaa

Ihe atụ script azụmahịa na-egosi na omume ọjọọ ma ọ bụ akpachapụghị anya nke onye mmemme na-abụghị modul enweghị ike imebi nchekwa nke akụrụngwa modul ahụ. Na-esote, anyị ga-eleba anya n'ihe atụ nke otu esi eji modul, akụrụngwa, na usoro emebere ihe mgbochi Libra.

Ịkwụ ụgwọ ndị ọgbọ na ndị ọgbọ

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Ọnụ ọgụgụ nke mkpụrụ ego akọwapụtara na ego ga-esi na nguzozi nke onye zitere ya na onye nnata.
Enwere ihe ọhụrụ ole na ole ebe a (nke a na-egosipụta na uhie):

  • 0X0: adreesị nke akaụntụ ebe echekwara modul
  • Ego: modul aha
  • Mkpụrụ ego: akụ ụdị
  • Uru mkpụrụ ego weghachiri eweghachi nke usoro a bụ uru akụrụngwa nke ụdị ya bụ 0x0.Currency.Coin
  • megharia(): enweghị ike iji uru ọzọ
  • oyiri(): enwere ike iji uru mee ihe ma emechaa

Ka anyị leba anya na koodu ahụ: na nzọụkwụ mbụ, onye na-ezigara ya na-akpọ usoro aha wepụ_na_zitere site na modul echekwara na 0x0. Ego. Na nzọụkwụ nke abụọ, onye na-ezipụ ego na-ebufe onye nnata ego site na ịkwaga uru mkpụrụ ego ahụ n'ime usoro nkwụnye ego nke modul. 0x0. Ego.

Nke a bụ ọmụmaatụ mperi atọ na koodu nke nlele ga-ajụ:
Megharịa ego site na ịgbanwe oku ịkwaga (mkpụrụ ego) on oyiri(coin). Enwere ike ibugharị akụrụngwa naanị. Na-agbalị ịmegharị ọnụọgụ akụrụngwa (dịka ọmụmaatụ, site na ịkpọ oyiri(coin) na ihe atụ dị n'elu) ga-ebute njehie n'oge nkwenye bytecode.

Ojiji nke ego site na ịkọwapụta ịkwaga (mkpụrụ ego) ugboro abụọ . Na-agbakwụnye ahịrị 0x0.Currency.deposit (mbipụta (ụfọdụ_ọzọ_payee), bugharịa (mkpụrụ ego)) dịka ọmụmaatụ, nke dị n'elu ga-ekwe ka onye na-ezigara ya "mefuo" mkpụrụ ego ugboro abụọ - nke mbụ ya na payee, na nke abụọ na. onye akwụ ụgwọ_ọzọ. Nke a bụ omume na-adịghị mma nke na-agaghị ekwe omume na akụ anụ ahụ. Ọ dabara nke ọma, Move ga-ajụ mmemme a.

Mfu ego n'ihi ọjụjụ ịkwaga (mkpụrụ ego). Ọ bụrụ na ibugharịghị akụrụngwa (dịka ọmụmaatụ, site na ihichapụ ahịrị nwere ịkwaga (mkpụrụ ego)), a ga-atụba mperi nkwenye bytecode. Nke a na-echekwa Move programmers pụọ na mfu ego mberede ma ọ bụ obi ọjọọ.

modul ego

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Akaụntụ ọ bụla nwere ike ịnwe modul 0 ma ọ bụ karịa (gosipụtara dị ka akụkụ anọ) yana otu ụkpụrụ akụ ma ọ bụ karịa (gosiri dị ka cylinders). Dịka ọmụmaatụ, akaụntụ na 0X0 nwere modul 0x0. Ego na uru nke ụdị akụ 0x0.Currency.Coin. Akaụntụ na adreesị 0X1 nwere ihe onwunwe abụọ na otu modul; Akaụntụ na adreesị 0X2 nwere modul abụọ na otu uru akụ.

Oge ụfọdụ:

  • Edemede azụmahịa ahụ bụ atọm - ma egburu ya kpamkpam ma ọ bụ na ọ bụghị ma ọlị.
  • Modul bụ koodu dị ogologo ndụ nke a na-enweta n'ụwa niile.
  • A haziri steeti zuru ụwa ọnụ ka tebụl hash, ebe isi ihe bụ adreesị akaụntụ
  • Akaụntụ enweghị ike ịnwe ihe karịrị otu uru akụrụngwa nke ụdị enyere yana karịa otu modul nwere aha enyere (akaụntụ dị na 0X0 enweghị ike ịnwe akụrụngwa mgbakwunye 0x0.Currency.Coin ma ọ bụ modul ọzọ aha ya bụ Ego)
  • Adreesị nke modul ekwuputara bụ akụkụ nke ụdị (0x0.Currency.Coin и 0x1.Currency.Coin bụ ụdị dị iche iche na-enweghị ike iji ya mee ihe)
  • Ndị mmemme nwere ike ịchekwa ọtụtụ oge nke ụdị akụrụngwa a na akaụntụ site na ịkọwapụta akụrụngwa omenala ha - (akụ TwoCoins {c1: 0x0.Currency.Coin, c2: 0x0.Currency.Coin})
  • Ị nwere ike na-ezo aka na akụ site na aha ya na-enweghị esemokwu, dịka ọmụmaatụ ị nwere ike na-ezo aka na akụrụngwa abụọ site na iji TwoCoins.c1 и TwoCoins.c2.

Nkwupụta akụrụngwa mkpụrụ ego

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook
Modul aha ya bụ Ego na ụdị akụrụngwa aha ya bụ Mkpụrụ ego

Oge ụfọdụ:

  • Mkpụrụ ego bụ ihe owuwu nwere otu ubi ụdị u64 (Integer 64-bit na-edeghị aha)
  • Naanị usoro modulu Ego nwere ike ịmepụta ma ọ bụ mebie ụkpụrụ nke ụdị Mkpụrụ ego.
  • Modul ndị ọzọ na scripts nwere ike dee ma ọ bụ rụtụ aka n'ubi uru site na usoro ọha nke modul nyere.

Ịre nkwụnye ego

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Usoro a na-anabata akụrụngwa Mkpụrụ ego dị ka ntinye ma jikọta ya na akụrụngwa Mkpụrụ egoechekwara na akaụntụ onye nnata:

  1. Na-ebibi Coin akụ ntinye na ịdekọ uru ya.
  2. Ịnata njikọ na akụrụngwa mkpụrụ ego pụrụ iche echekwara na akaụntụ onye nnata.
  3. Ịgbanwe uru nke ọnụ ọgụgụ nke mkpụrụ ego site na uru gafere na paramita mgbe ị na-akpọ usoro ahụ.

Oge ụfọdụ:

  • Mbupu, BorrowGlobal - arụrụ arụ ọrụ
  • Wepu ya Nke a bụ naanị ụzọ isi ihichapụ akụrụngwa nke ụdị T. Usoro a na-ewe akụrụngwa dị ka ntinye, mebie ya, wee weghachi uru metụtara ubi akụrụngwa.
  • BorrowGlobal were adreesị dị ka ntinye wee weghachi ntụaka maka ihe atụ pụrụ iche nke T bipụtara (nwere) nke adreesị ahụ
  • &mut Coin nke a bụ njikọ na akụrụngwa Mkpụrụ ego

Mmejuputa withdraw_from_sender

Banye n'ime Move - asụsụ mmemme nke Libra blockchain Facebook

Usoro a:

  1. Na-enweta njikọ na akụrụngwa pụrụ iche Mkpụrụ ego, ejikọrọ na akaụntụ onye zitere ya
  2. Na-ebelata uru nke akụrụngwa Mkpụrụ ego site na njikọ maka ego a kapịrị ọnụ
  3. Na-emepụta ma weghachite akụrụngwa ọhụrụ Mkpụrụ ego na nguzozi emelitere.

Oge ụfọdụ:

  • nkwụnye ego nwere ike kpatara onye ọ bụla, ma wepụ_na_zitere naanị nwere ohere ịnweta mkpụrụ ego nke akaụntụ oku
  • NwetaTxnSender Adreesị yiri msg.nzipu na Solidity
  • Ọ gwụla ma yiri achọrọ na Solidity. Ọ bụrụ na nlele a daa, a kwụsịrị azụmahịa ahụ ma tụgharịa mgbanwe niile.
  • Mkpọ ọ bụkwa usoro arụnyere n'ime ya na-emepụta ihe ọhụrụ nke ụdị T.
  • Yana Wepu ya, Mkpọ enwere ike ịkpọ naanị n'ime modul ebe akọwara akụ T

nkwubi

Anyị nyochara njirimara ndị bụ isi nke asụsụ Move, jiri ya tụnyere Ethereum, wee marakwa isi okwu nke scripts. N'ikpeazụ, a na m akwado ịlele akwụkwọ ọcha mbụ. Ọ gụnyere ọtụtụ nkọwa gbasara ụkpụrụ nhazi asụsụ mmemme, yana ọtụtụ njikọ bara uru.

isi: www.habr.com

Tinye a comment