Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Okulandelayo, sizocubungula ngokuningiliziwe izici eziyinhloko zolimi lwe-Move nokuthi yini umehluko wayo osemqoka nolunye ulimi, eselivele ludumile ngezivumelwano ezihlakaniphile - Ukuqina (endaweni yesikhulumi se-Ethereum). Lokhu kwaziswa kusekelwe ekutadisheni kwephepha elimhlophe elitholakala ku-inthanethi elinamakhasi angama-26.

Isingeniso

I-Move iwulimi lwe-bytecode olusebenzisekayo olusetshenziselwa ukwenza imisebenzi yabasebenzisi nezinkontileka ezihlakaniphile. Sicela uqaphele amaphuzu amabili:

  1. Ngenkathi i-Move ingulimi lwe-bytecode olungenziwa ngqo kumshini we-Move virtual, iSolidity (ulimi lwenkontileka oluhlakaniphile luka-Ethereum) ulimi olusezingeni eliphakeme oluqala ukuhlanganiswa nge-bytecode ngaphambi kokubulawa ku-EVM (Ethereum Virtual Machine).
  2. I-Move ingasetshenziswa hhayi kuphela ukusebenzisa izinkontileka ezihlakaniphile, kepha futhi nokuthengiselana ngokwezifiso (okuningi kulokhu kamuva), ngenkathi iSolidity kuwulimi lwenkontileka oluhlakaniphile kuphela.


Ukuhumusha kwenziwe ithimba lephrojekthi ye-INDEX Protocol. Sesivele sihumusha impahla enkulu echaza iphrojekthi yeLibra, manje sekuyisikhathi sokubheka ulimi lokuhamba ngemininingwane eyengeziwe. Ukuhumusha kwenziwe ngokuhlanganyela noHabrauser coolsiu

Isici esiyinhloko se-Move yikhono lokuchaza izinhlobo zensiza yangokwezifiso ezine-semantics esekelwe kumqondo womugqa: insiza ayikwazi ukukopishwa noma isuswe ngokusobala, ihanjiswe kuphela. Ngokusebenza, lokhu kufana namandla olimi lwe-Rust. Amanani ku-Rust anganikezwa egameni elilodwa kuphela ngesikhathi. Ukunikeza inani egameni elihlukile kukwenza lingatholakali ngaphansi kwegama langaphambilini.

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Isibonelo, i-snippet yekhodi elandelayo izophonsa iphutha: Ukusetshenziswa kwenani elihanjisiwe 'x'. Lokhu kungenxa yokuthi akukho ukuqoqwa kukadoti eRust. Lapho okuguqukayo kuphuma esikalini, imemori ababhekise kuyo nayo iyadedelwa. Kalula nje, kungaba khona kuphela "umnikazi" wedatha. Kulesi sibonelo x ngumnikazi woqobo bese y uba umnikazi omusha. Funda kabanzi ngalokhu kuziphatha lapha.

Ukumelwa kwezimpahla zedijithali ezinhlelweni ezivulekile

Kunezindawo ezimbili zezimpahla ezibonakalayo okunzima ukuzimela ngokwamadijithi:

  • Ukulingana (Ukushoda, ukushoda kwasekuqaleni). Inani lezimpahla (ukuphuma) ohlelweni kufanele lilawulwe. Ukuphindaphindwa kwempahla ekhona kufanele kungavunyelwa, futhi ukudala okusha kungumsebenzi onelungelo.
  • Ukulawula ukungena... Umbambiqhaza wohlelo kumele akwazi ukuvikela izimpahla esebenzisa izinqubomgomo zokulawula ukufinyelela.

Lezi zici ezimbili, ezingokwemvelo kwempahla ebonakalayo, kufanele zisetshenziselwe izinto zedijithali uma sifuna ukuzibheka njengezimpahla. Isibonelo, insimbi engajwayelekile inenkinga yemvelo, futhi nguwe kuphela ongayifinyelela (ukuyiphatha ezandleni zakho, ngokwesibonelo) futhi ungayithengisa noma uyisebenzise.

Ukukhombisa ukuthi sifike kanjani kulezi zakhiwo ezimbili, ake siqale ngemisho elandelayo:

Isiphakamiso # 1: Umthetho Olula Kakhulu Ngaphandle Kokushoda Nokulawulwa Kokufinyelela

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

  • G [K]: = n Kusho ukubuyekezwa kwenombolo efinyeleleka ngokhiye К esimweni somhlaba jikelele se-blockchain, enencazelo entsha n.
  • ukuthengiselana ⟨Alice, 100⟩ kusho ukubeka ibhalansi ye-akhawunti ka-Alice ibe ngu-100.

Isixazululo esingenhla sinezinkinga eziningana ezinkulu:

  • U-Alice angathola inani elingenamkhawulo lohlamvu lwemali ngokumane athumele okwenziwayo iceAlice, 100⟩.
  • Izinhlamvu zemali u-Alice azithumela kuBob azisizi ngalutho, njengoba uBob engazithumela inani elingenamkhawulo lezinhlamvu zemali esebenzisa inqubo efanayo.

Isiphakamiso # 2: Ukubheka ukusilela

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Manje siqapha isimo ukuze inani lezinhlamvu zemali Ka okungenani yayilingana n ngaphambi kokuthengiselana. Kodwa-ke, ngenkathi lokhu kuxazulula inkinga yokushoda, alukho ulwazi mayelana nokuthi ngubani ongathumela izinhlamvu zemali zika-Alice (okwamanje, noma ngubani angakwenza lokhu, into esemqoka akukhona ukwephula umthetho wokunciphisa inani).

Isiphakamiso # 3: Ukuhlanganisa ukusweleka nokulawulwa kokufinyelela

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Sixazulula le nkinga ngendlela yesiginesha yedijithali Qinisekisa_sig ngaphambi kokubheka ibhalansi, okusho ukuthi u-Alice usebenzisa ukhiye wakhe wangasese ukusayina ukuthengiselana futhi aqinisekise ukuthi ungumnikazi wezinhlamvu zemali zakhe.

Izilimi zohlelo lweBlockchain

Izilimi ezikhona ze-blockchain zibhekene nezinkinga ezilandelayo (zonke zixazululwe ku-Move (inothi: ngeshwa, umbhali wale ndatshana ubheka u-Ethereum kuphela ngokuqhathanisa kwakhe, ngakho-ke kufanelekile ukubathatha kuphela kulo mongo. Isibonelo, iningi lokulandelayo lixazululwa naku-EOS.)):

Ukumelwa okungaqondile kwezimpahla. Ifa libhalwa ngekhodi kusetshenziswa inombolo ephelele, kodwa inombolo ephelele ayifani nempahla. Eqinisweni, alukho uhlobo noma inani elimelela i-Bitcoin/Ether/<Any Coin>! Lokhu kwenza izinhlelo zokubhala ezisebenzisa amafa zibe nzima futhi zibe namaphutha. Amaphethini afana nokudlulisa izimpahla ziye/zisuka ezinqubweni noma ukugcinwa kwezimpahla ezakhiweni zidinga ukwesekwa okukhethekile okuvela olimini.

Ukushoda akunwebeki... Ulimi lumelela impahla eyodwa kuphela eyindlala. Ngaphezu kwalokho, amakhambi okulwa nokusweleka afakwa ngqo kuma-semantics olimi uqobo. Umthuthukisi, uma efuna ukudala impahla yangokwezifiso, kufanele alawule ngokucophelela zonke izici zensiza uqobo. Lezi yizona kanye izinkinga zezinkontileka ezihlakaniphile ze-Ethereum.

Abasebenzisi bakhipha izimpahla zabo, amathokheni e-ERC-20, besebenzisa izinombolo ukuthola inani kanye nokuthengiswayo okuphelele. Noma nini lapho kudalwa amathokheni amasha, ikhodi yenkontileka ehlakaniphile kumele iqinisekise ngokuzimela ukuhambisana nemithetho yokukhishwa. Ngaphezu kwalokho, ukwethulwa okungaqondile kwempahla kuholela, kwezinye izimo, emaphutheni abucayi - ukuphindaphinda, ukusetshenziswa kwemali kabili noma ukulahlekelwa okuphelele kwempahla.

Ukuntuleka kokulawula ukufinyelela okuguqukayo... Inqubomgomo kuphela yokulawulwa kokufinyelela esetshenziswayo namuhla uhlelo lokusayina olusebenzisa i-asymmetric cryptography. Njengokuvikelwa kokushoda, izinqubomgomo zokulawula ukufinyelela zingene ngokujulile kuma-semantics olimi. Kepha ukuthi ungalunweba kanjani ulimi ukuvumela abahleli bohlelo ukuthi bachaze izinqubomgomo zabo zokulawula ukufinyelela kungumsebenzi olukhuni kakhulu.

Lokhu kuyiqiniso futhi ku-Ethereum, lapho izinkontileka ezihlakaniphile zingenakho ukwesekwa kwe-cryptography yomdabu yokulawula ukufinyelela. Onjiniyela kufanele basethe ngesandla isilawuli sokufinyelela, isibonelo, basebenzisa isilungisi somnikazi kuphela.

Ngisho noma ngingumlandeli omkhulu we-Ethereum, ngikholelwa ukuthi izakhiwo zefa kufanele zisekelwe ngokomdabu ulimi ngezinjongo zokuphepha. Ikakhulukazi, ukudlulisa i-Ether kwinkontileka ehlakaniphile kuhilela ukuthunyelwa okuguquguqukayo, okwethule isigaba esisha sezimbungulu ezaziwa ngokuthi ubungozi bokungena kabusha. Ukuthumela okunamandla lapha kusho ukuthi indlela yokusebenzisa ikhodi izonqunywa ngesikhathi sokusebenza (i-dynamic) kunesikhathi sokuhlanganiswa (i-static).

Ngakho-ke, kuSolidity, lapho inkontileka A ibiza umsebenzi kunkontileka B, inkontileka B ingase isebenzise ikhodi ebingahlosiwe unjiniyela wenkontileka A, okungase kuphumele ekutheni ukungena kabusha ubungozi (inkontileka A ngephutha isebenza njengenkontileka B yokukhipha imali ngaphambi kokuba kudonswe amabhalansi e-akhawunti).

Hambisa Izisekelo Zokuklama Ulimi

Izinsiza zokuqala

Ezingeni eliphakeme, ukuxhumana phakathi kwamamojula / izinsizakusebenza / izinqubo ngolimi lwe-Move kufana kakhulu nobudlelwano phakathi kwamakilasi / izinto nezindlela ezilimini ze-OOP.
Amamojula wokuhambisa afana nezinkontileka ezihlakaniphile kwamanye ama-blockchains. Imodyuli imemezela izinhlobo zezinsizakusebenza nezinqubo ezichaza imithetho yokwakha, yokucekela phansi, nokuvuselela izinsizakusebenza ezimenyezelwe. Kepha konke lokhu kuyimihlangano nje ("jargon”) KuMove. Sizolifanekisa leli phuzu ngemuva kwesikhashana.

Ukuvumelana nezimo

I-Move ingeza ukuguquguquka ku-Libra ngombhalo. Konke okwenziwayo e-Libra kufaka phakathi umbhalo, okuyinqubo ewumongo yomsebenzi. Iskripthi singenza noma isenzo esisodwa esishiwo, isibonelo, izinkokhelo ohlwini olucacisiwe lwabamukeli, noma siphinde sisebenzise ezinye izinsiza - isibonelo, ngokubiza inqubo lapho kucaciswa ingqondo evamile. Yingakho i-Move transaction scripts inikeza ukuguquguquka okukhulu. Iskripthi singasebenzisa kokubili ukuziphatha kwesikhathi esisodwa nokuphindaphindayo, kuyilapho i-Ethereum ingakwazi ukusebenzisa kuphela imibhalo ephindaphindwayo (ebiza indlela eyodwa endleleni yenkontileka ehlakaniphile). Isizathu sokuthi kubizwe ngokuthi "okusebenziseka kabusha" yingoba imisebenzi yenkontileka ehlakaniphile ingenziwa izikhathi eziningi. (qaphela: Iphuzu lapha licashile kakhulu. Ngakolunye uhlangothi, imibhalo yokwenziwayo ngendlela ye-pseudo-bytecode nayo ikhona ku-Bitcoin. Ngakolunye uhlangothi, njengoba ngikuqonda, i-Move ikhulisa lolu limi, empeleni, ifinyelele ezingeni lolimi olugcwele lwenkontileka ehlakaniphile.).

Ukuphepha

Ifomethi esebenzisekayo ethi Hambisa i-bytecode, okungukuthi, ngakolunye uhlangothi, ulimi olusezingeni eliphezulu kunolimi lokuhlanganisa, kodwa ileveli ephansi kunekhodi yomthombo. I-bytecode ihlolwa ngesikhathi sokusebenza (on-chain) ukuze uthole izinsiza, izinhlobo nokuphepha kwememori kusetshenziswa isiqinisekisi se-bytecode, bese isetshenziswa umhumushi. Le ndlela ivumela u-Move ukuthi unikeze ukuvikeleka kwekhodi yomthombo, kodwa ngaphandle kwenqubo yokuhlanganisa kanye nesidingo sokwengeza isihlanganisi ohlelweni. Ukwenza i-Move i-bytecode ulimi yisixazululo esihle ngempela. Akudingi ukuhlanganiswa kusuka emthonjeni, njengoba kunjalo nge-Solidity, futhi asikho isidingo sokukhathazeka mayelana nokwehluleka okungenzeka noma ukuhlaselwa kwengqalasizinda yomdidiyeli.

Ukuqinisekiswa

Sihlose ukwenza amasheke kalula ngangokunokwenzeka, njengoba konke lokhu kwenziwa ngochungechunge (inothi: online, ngesikhathi kwenziwa ukuthengiselana ngakunye, ngakho-ke noma ikuphi ukubambezeleka kuholela ekunciphiseni kwenethiwekhi yonke), nokho, ekuqaleni idizayini yolimi isilungele ukusebenzisa amathuluzi okuqinisekisa aqinile. Nakuba lokhu kungcono kakhulu, okwamanje ukuthuthukiswa kwamathuluzi okuqinisekisa (njengekhithi yamathuluzi ehlukile) kuhlehliselwe ikusasa, futhi manje kusekelwa kuphela ukuqinisekiswa okuguquguqukayo ngesikhathi sokusebenza (on-chain).

Ukuzijwayeza

Amamojula wokuhambisa ahlinzeka ngokukhishwa kwedatha futhi enze okwasendaweni ukusebenza okubalulekile kuzinsizakusebenza. Ukufakwa ngaphakathi okuhlinzekwe yimodyuli, kuhlanganiswe nokuvikelwa okuhlinzekwa uhlelo lohlobo lwe-Move, kuqinisekisa ukuthi izakhiwo ezisethwe ezinhlotsheni zemodyuli azikwazi ukwephulwa yikhodi engaphandle kwemodyuli. Lokhu kungumklamo ocatshangwe kahle ocatshangwe kahle, okusho ukuthi idatha ngaphakathi kwenkontileka ingashintsha kuphela ngaphakathi kwesivumelwano, kepha hhayi ngaphandle.

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Hambisa ukubuka konke

Isibonelo seskripthi sokuthengiselana sikhombisa ukuthi izenzo ezinonya noma ezinganaki zohlelo ngaphandle kwemodyuli azikwazi ukufaka engozini ukuphepha kwezinsizakusebenza zemodyuli. Okulandelayo, sizobheka izibonelo zendlela amamojula, izinsiza, nezinqubo ezisetshenziswa ngayo ukuhlela i-Libra blockchain.

Izinkokhelo zontanga

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Inombolo yezinhlamvu zemali eshiwo enanini izodluliswa isuka kubhalansi yomthumeli iye kumamukeli.
Kukhona izinto ezimbalwa ezintsha lapha (ezigqanyiswe ngokubomvu):

  • 0x0Ikheli le-akhawunti lapho kugcinwa khona imodyuli
  • Currency: igama le-module
  • Imali: uhlobo lwensiza
  • Inani lohlamvu lwemali olubuyiswe inqubo yinani lesisetshenziswa sohlobo 0x0.Currency.Coin
  • hambisa (): inani alinakusetshenziswa futhi
  • ikhophi (): inani lingasetshenziswa kamuva

Hlanganisa ikhodi: esinyathelweni sokuqala, umthumeli ubiza inqubo ebizwa ngegama hoxisa_from_sender kusuka kwimodyuli egcinwe ku- Imali engu-0x0. Esinyathelweni sesibili, umthumeli udlulisela izimali kumamukeli ngokuhambisa inani lensiza yemali enqubweni yokufaka idiphozi yemojuli Imali engu-0x0.

Nazi izibonelo ezintathu zamaphutha kukhodi azonqatshwa amasheke:
Izimpinda zemali ngokushintsha ikholi hambisa (uhlamvu lwemali) on ikhophi (uhlamvu lwemali). Izinsiza zingasuswa kuphela. Izama ukuphinda inani lensiza (isibonelo, ngokushaya ucingo ikhophi (uhlamvu lwemali) esibonelweni esingenhla) kuzoba nephutha ngenkathi kubhekwa i-bytecode.

Ukusetshenziswa kabusha kwezimali ngokuchaza hambisa (uhlamvu lwemali) kabili . Yengeza umugqa 0x0.Currency.deposit (ikhophi (omunye_okhokhelwayo), hambisa (uhlamvu lwemali)) isibonelo, okungenhla kuzovumela umthumeli ukuthi "asebenzise" izinhlamvu zemali kabili - okokuqala nokhokhelwayo, kanti okwesibili omunye_okhokhelwayo. Lokhu ukuziphatha okungafuneki okungenakwenzeka ngempahla ebonakalayo. Ngenhlanhla, i-Move izokwenqaba lolu hlelo.

Ukulahlekelwa yimali ngenxa yokwenqaba hambisa (uhlamvu lwemali). Uma ungayisusi insiza (isibonelo, ngokususa ulayini oqukethe hambisa (uhlamvu lwemali)), iphutha lokuqinisekisa i-bytecode lizophonswa. Lokhu kuvikela abahleli bezinhlelo ze-Move ekulahlekelweni yimali ngephutha noma ngonya.

Imojula yohlobo lwemali

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

I-akhawunti ngayinye ingaqukatha amamojula angu-0 noma ngaphezulu (aboniswa njengonxande) kanye nevelu yesisetshenziswa esisodwa noma ngaphezulu (eboniswa njengamasilinda). Isibonelo, i-akhawunti ku- 0x0 iqukethe imojula Imali engu-0x0 kanye nenani lohlobo lwensiza 0x0.Currency.Coin. I-akhawunti ekhelini 0x1 inezinsiza ezimbili kanye nemojuli eyodwa; I-akhawunti ekhelini 0x2 inamamojula amabili kanye nenani lensiza eyodwa.

Izikhathi ze-Nekotory:

  • Iskripthi sokwenziwayo siyi-athomu - kungenzeka ukuthi senziwa ngokuphelele noma asenziwa sanhlobo.
  • Imojuli isiqephu sekhodi esiphile isikhathi eside esifinyeleleka emhlabeni jikelele.
  • Isimo somhlaba sakhiwe njengethebula le-hash, lapho ukhiye kuyikheli le-akhawunti
  • Ama-akhawunti awakwazi ukuqukatha inani lensiza elingaphezu kwelilodwa lohlobo oluthile futhi angabi ngaphezu kwemojuli eyodwa enegama elinikeziwe (i-akhawunti ku- 0x0 ayikwazi ukuqukatha insiza eyengeziwe 0x0.Currency.Coin noma enye imojuli eqanjwe Currency)
  • Ikheli lemojula emenyezelwe liyingxenye yohlobo (0x0.Currency.Coin ΠΈ 0x1.Currency.Coin ziyizinhlobo ezihlukene ezingeke zisetshenziswe ngokushintshana)
  • Abahleli bohlelo bangagcina izimo eziningi zalolu hlobo lwensiza ku-akhawunti ngokuchaza insiza yabo yangokwezifiso - (imithombo TwoCoins {c1: 0x0.Currency.Coin, c2: 0x0.Currency.Coin})
  • Ungabhekisela esisetshenziswa ngegama laso ngaphandle kokungqubuzana, isibonelo ungabheka izinsiza ezimbili usebenzisa I-TwoCoins.c1 ΠΈ I-TwoCoins.c2.

Isimemezelo Sensiza Yemali

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook
Imojuli eqanjwe Currency kanye nohlobo lwensiza oluqanjwe Imali

Izikhathi ze-Nekotory:

  • Imali yisakhiwo esinomkhakha owodwa wohlobo u64 (64-bit inamba engasayiniwe)
  • Izinqubo zemojuli kuphela Currency ingakha noma ichithe amanani ohlobo Imali.
  • Amanye amamojula nezikripthi zingabhala kuphela noma zibhekise inkambu yenani ngezinqubo zomphakathi ezinikezwe imojula.

Ukuthengiswa kwediphozithi

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Le nqubo yamukela insiza Imali njengokufaka bese uyihlanganisa nesisetshenziswa Imalikugcinwe ku-akhawunti yomamukeli:

  1. Ukucekela phansi i-Coin yensiza yokufaka nokurekhoda inani layo.
  2. Ukuthola isixhumanisi esisetshenziswa esiyingqayizivele se-Coin esigcinwe ku-akhawunti yomamukeli.
  3. Ukushintsha inani lenombolo Yezinhlamvu zemali ngevelu eliphasiswe kupharamitha lapho ubiza inqubo.

Izikhathi ze-Nekotory:

  • Khumula, BorrowGlobal - izinqubo ezakhelwe ngaphakathi
  • Khipha Lena ukuphela kwendlela yokususa insiza yohlobo T. Inqubo ithatha insiza njengokungenayo, iyiqede, futhi ibuyisele inani elihlobene nezinkambu zesisetshenziswa.
  • BorrowGlobal ithatha ikheli njengokufakiwe bese ibuyisela ireferensi esimweni esiyingqayizivele sika-T esishicilelwe (esiphethwe) yilelo kheli
  • &mut Coin lesi isixhumanisi esiya kusisetshenziswa Imali

Ukusetshenziswa kokuhoxiswa_kusuka_komthumeli

Ngena ku-Move - Ulimi lwezinhlelo ze-Libra blockchain yakwaFacebook

Le nqubo:

  1. Ithola isixhumanisi esisetshenziswa esiyingqayizivele Imali, exhunywe ku-akhawunti yomthumeli
  2. Yehlisa inani lensiza Imali ngesixhumanisi senani elishiwo
  3. Idala futhi ibuyisele insiza entsha Imali ngebhalansi ebuyekeziwe.

Izikhathi ze-Nekotory:

  • Idiphozithi kungadalwa yinoma ubani, kodwa hoxisa_from_sender inokufinyelela ezinhlamvu zemali ze-akhawunti yokushaya kuphela
  • GetTxnSenderAddress fana no umsg.umthumeli kuSolidity
  • YenqabaNgaphandle kwalapho fana no zidinga kuSolidity. Uma lokhu kuhlola kuhluleka, umsebenzi uyamiswa futhi zonke izinguquko zibuyiselwa emuva.
  • Pakisha futhi kuyinqubo eyakhelwe ngaphakathi edala insiza entsha yohlobo T.
  • Kanye ne Khipha, Pakisha ingabizwa kuphela ngaphakathi kwemojuli lapho insiza ichazwe khona T

isiphetho

Sihlole izici eziyinhloko zolimi lwe-Move, saluqhathanisa ne-Ethereum, futhi sajwayelana ne-syntax eyisisekelo yemibhalo. Ekugcineni, ngincoma kakhulu ukuhlola iphepha elimhlophe lokuqala. Kuhlanganisa imininingwane eminingi mayelana nezimiso zokuklama ulimi lokuhlela, kanye nezixhumanisi eziningi eziwusizo.

Source: www.habr.com

Engeza amazwana