Sida loo qoro qandaraas caqli gal ah WebAssembly ee shabakadda Ontology? Qaybta 1: miridhku

Sida loo qoro qandaraas caqli gal ah WebAssembly ee shabakadda Ontology? Qaybta 1: miridhku

Tiknoolajiyada Wasm ee Ontology waxay yaraynaysaa qiimaha wareejinta dApp qandaraasyada caqliga leh ee leh macquulka ganacsiga adag ee blockchain, taas oo si weyn u kobcinaysa nidaamka deegaanka dApp.

Hadda Ontology Wasm isla mar ahaantaana waxay taageertaa horumarinta Rust iyo C++ labadaba. Luqadda Rust waxay si fiican u taageertaa Wasm, iyo bytecode-ka la soo saaray ayaa ka fudud, kaas oo sii yarayn kara qiimaha wicitaannada qandaraaska. Haddaba, sida loo isticmaalo Rust si loo horumariyo qandaraas shabakada Ontology?

Horumarinta qandaraaska WASM iyadoo la adeegsanayo miridhku

Abuuritaanka qandaraas

Cargo waa qalab wanaagsan oo loogu talagalay abuurista mashaariicda iyo maaraynta xirmooyinka marka la horumarinayo barnaamijyada Rust, taas oo ka caawisa horumariyayaashu inay si fiican u abaabulaan isdhexgalka code iyo maktabadaha qolo saddexaad. Si aad u abuurto qandaraas cusub oo Ontology Wasm, si fudud u socodsii amarka soo socda:

Sida loo qoro qandaraas caqli gal ah WebAssembly ee shabakadda Ontology? Qaybta 1: miridhku

Qaab dhismeedka mashruuca ay soo saarto:

Sida loo qoro qandaraas caqli gal ah WebAssembly ee shabakadda Ontology? Qaybta 1: miridhku

Faylka Cargo.toml waxaa loo isticmaalaa in lagu habeeyo macluumaadka mashruuca aasaasiga ah iyo macluumaadka maktabadda ku tiirsan. Qaybta [lib] ee faylka waa in loo dejiyaa nooca crate-type = [β€œcdylib”]. Faylka lib.rs waxaa loo isticmaalaa in lagu codeeyo macquulka qandaraaska. Intaa waxaa dheer, waxaad u baahan tahay inaad ku darto cabbirrada ku-tiirsanaanta qaybta [ku-tiirsanaanta] ee faylka qaabeynta Cargo.toml:

Sida loo qoro qandaraas caqli gal ah WebAssembly ee shabakadda Ontology? Qaybta 1: miridhku

Isticmaalka ku-tiirsanaantan, horumariyayaashu waxay wici karaan is-dhexgalyada la falgala blockchain-ka Ontology iyo aaladaha ay ka midka yihiin cabbirka taxanaha.

Shaqada gelitaanka qandaraaska

Barnaamij kastaa waxa uu leeyahay shaqo gelin, sida shaqada ugu weyn ee aynu sida caadiga ah aragno, laakiin qandaraasku ma laha hawl muhiim ah. Marka la horumarinayo qandaraaska Wasm iyadoo la adeegsanayo Rust, shaqada wacitaanka waxaa loo isticmaalaa si caadi ah sida shaqada wax gelinta ee isticmaalka qandaraaska. Magaca shaqada ee Rust ma cadda marka la ururinayo koodhka isha Rust ee bytecode kaas oo uu fulin karo mashiinka farsamada. Si looga hortago isuduwaha inuu dhaliyo koodka dheeraadka ah iyo in la dhimo cabbirka qandaraaska, shaqada yeedhistu waxay ku daraysaa sharraxaadda #[ma_manglaha].

Sidee bay hawsha u yeedhisku u helaysaa cabbirro si loo sameeyo wax kala beddelasho?

Maktabada ontio_std waxay bixisaa runtime :: wax gelinta() shaqada si loo helo qiyaasaha lagu sameeyo wax kala iibsiga. Soo-saarayaashu waxay isticmaali karaan ZeroCopySource si ay meesha uga saaraan soo-jeedinta byte-ga. Kaas oo qaabka ugu horreeya ee byte-ga lagu akhriyo waa magaca habka wacdinta, oo ay ku xigto cabbirrada habka.

Sidee loo soo celiyaa natiijada fulinta qandaraaska?

Shaqada runtime :: ret, oo ay bixiso maktabadda ontio_std, waxay soo celisaa natiijada habka fulinta.

Hawsha yeedhista ee la dhammaystiray waxay u egtahay sidan:

Sida loo qoro qandaraas caqli gal ah WebAssembly ee shabakadda Ontology? Qaybta 1: miridhku

Kala-saarista iyo kala-jaridda xogta heshiiska

Inta lagu guda jiro horumarinta qandaraasyada, horumariyayaashu waxay had iyo jeer la kulmaan dhibaatooyin isdaba-joog ah iyo kala-saarid, gaar ahaan sida loo kaydiyo nooca xogta ee database-ka iyo sida loo kala saaro byte array laga akhriyo database-ka si loo helo nooca xogta.

Maktabada ontio_std waxa ay bixisa cod-dedeyaal iyo interneedyo codeeyaha si taxane ah looga dhigo xogta. Qaybaha qaab-dhismeedku waxay sidoo kale hirgeliyaan dekodeer iyo is-dhex-galiyayaal-kooxeed si qaab-dhismeedku u noqdo mid taxane ah oo kala fogaada. Tusaalooyinka fasalka Sink ayaa loo baahan yahay marka noocyada kala duwan ee xogta la isku daro. Tusaale ka mid ah fasalka Sink wuxuu leeyahay buf-nooca goobta oo kaydiya xogta nooca byte, iyo dhammaan xogta taxanaha ah waxaa lagu kaydiyaa buf.

Xogta dhererka go'an (tusaale: byte, u16, u32, u64, iwm.), xogta si toos ah ayaa loogu beddelaa qaab-dhismeedka byte ka dibna lagu kaydiyaa buf; xogta dhererka aan go'an lahayn, marka hore waa inaad taxdaa dhererka ka dibna Ddata (sida shaandhada aan saxeexin ee cabbirka aan la garanayn, oo ay ku jiraan u16, u32 ama u64, iwm.).

Deserialization waa ka soo horjeeda saxda ah. Hab kasta oo taxanayaal ah waxa jira hab u dhigma serialization. Burburinta waxay u baahan tahay isticmaalka tusaalooyinka fasalka Isha. Tusaalaha fasalkani waxa uu leeyahay laba garoon buf iyo pos. Buf waxa loo isticmaalaa in lagu kaydiyo xogta laga dhigi doono serialized iyo pos waxa loo isticmaalaa in lagu kaydiyo booska hadda reading. Marka nooc gaar ah oo xog ah la akhriyo, haddii aad taqaan dhererkeeda, waxaad si toos ah u akhrin kartaa, xogta aan la garanayn dhererkeeda, akhri dhererka marka hore ka dibna akhri waxa ku jira.

Hel oo cusboonaysii xogta silsiladda

Ontology-wasm-cdt- miridhku - wuxuu soo koobay hab hawleed loogu shaqaynayo xogta silsiladda, kaas oo ku habboon horumariyayaasha si ay u fuliyaan hawlgallada sida ku-darka, tirtiridda, beddelka iyo weydiinta xogta silsiladda sida soo socota:

  • database ::hel (furaha) - loo isticmaalo in lagu codsado xogta silsiladda, iyo codsiyada muhiimka ah fulinta AsRef interface;
  • database :: dhig (furaha, qiimaha) - loo isticmaalo in lagu kaydiyo xogta shabakada. Codsiyada muhiimka ah ee hirgelinta is-dhexgalka AsRef, iyo codsiyada qiimaha hirgelinta is-dhexgalka Encoder;
  • database :: tirtir (furaha) - waxaa loo isticmaalaa in laga saaro xogta silsiladda, iyo codsiyada muhiimka ah fulinta AsRef interface.

Imtixaanka qandaraasyada

Marka la hirgeliyo hababka qandaraaska, waxaan u baahannahay helitaanka xogta silsiladda waxaanan u baahanahay mashiinka farsamada ee u dhigma si aan u fulino bytecode qandaraaska, sidaas awgeed waa lagama maarmaan in la geeyo qandaraaska silsiladda si loo tijaabiyo. Laakiin habkan baaritaanka waa dhibaato. Si tijaabada qandaraaska loogu fududeeyo horumariyayaasha, maktabada ontio_std waxay bixisaa qayb tijaabo ah. Habkani waxa uu bixiyaa jilitaanka xogta ee silsiladda, taas oo u sahlaysa horumariyayaashu in ay mideeyaan hababka tijaabinta qandaraaska. Tusaalayaal gaar ah ayaa la heli karaa halkan.

Dejinta heshiiska

console :: debug(msg) waxay daabacdaa macluumaadka khaladka marka ay cilladayso qandaraaska. Macluumaadka msg-ga waxa la geli doonaa galka noodhka. Shuruuda ayaa ah in la dejiyo heerka faylka log si loo saxo qaabka marka la wado marinka tijaabada Ontology ee deegaanka.

runtime:: ogeysii(msg) waxay daabacdaa macluumaadka khaladka ku habboon inta qandaraaska la ciribtirayo. Habkani wuxuu kaydin doonaa macluumaadka la geliyey silsiladda waxaana laga waraysan karaa silsiladda iyadoo la adeegsanayo habka getSmartCodeEvent.

Maqaalka waxaa tarjumay tafatirayaasha Hashrate&Shares gaar ahaan OntologyRussia. ooyi

Ma tahay horumariye? Ku soo biir bulshadayada farsamada khilaaf. Sidoo kale, fiiri Xarunta Horumarinta boggayaga internetka, halkaas oo aad ka heli karto qalabka horumarinta, dukumentiyada iyo wax ka badan.

Ontology

Source: www.habr.com

Add a comment