Как Π΄Π° напиша ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ontology? Част 1: РъТда

Как Π΄Π° напиша ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ontology? Част 1: РъТда

ВСхнологията Ontology Wasm намалява Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° dApp ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ със слоТна бизнСс Π»ΠΎΠ³ΠΈΠΊΠ° към Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°, ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ обогатява dApp СкосистСмата.

понастоящСм ΠžΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡ Wasm Π•Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Rust ΠΈ C++. Π•Π·ΠΈΠΊΡŠΡ‚ Rust ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Wasm ΠΈ гСнСрираният Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄ Π΅ ΠΏΠΎ-прост, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΈ. Π’Π°ΠΊΠ°, ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Rust Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ontology?

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° WASM Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ с Rust

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€

Π’ΠΎΠ²Π°Ρ€Π΅Π½ Π΅ Π΄ΠΎΠ±ΡŠΡ€ инструмСнт Π·Π° създаванС Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Rust, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ взаимодСйствиСто Π½Π° ΠΊΠΎΠ΄ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни. Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π½ΠΎΠ² Ontology Wasm Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, просто ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°:

Как Π΄Π° напиша ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ontology? Част 1: РъТда

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, която Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°:

Как Π΄Π° напиша ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ontology? Част 1: РъТда

Π€Π°ΠΉΠ»ΡŠΡ‚ Cargo.toml сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° настройка Π½Π° основна информация Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ информация Π·Π° зависима Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Π Π°Π·Π΄Π΅Π»ΡŠΡ‚ [lib] Π½Π° Ρ„Π°ΠΉΠ»Π° трябва Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° crate-type = ["cdylib"]. Π€Π°ΠΉΠ»ΡŠΡ‚ lib.rs сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° запис Π½Π° логичСския ΠΊΠΎΠ΄ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°. ОсвСн Ρ‚ΠΎΠ²Π° трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° зависимостта към сСкцията [dependencies] Π½Π° конфигурационния Ρ„Π°ΠΉΠ» Cargo.toml:

Как Π΄Π° напиша ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ontology? Част 1: РъТда

Π‘ Ρ‚Π°Π·ΠΈ зависимост Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ интСрфСйси, ΠΊΠΎΠΈΡ‚ΠΎ взаимодСйстват с Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Ontology ΠΈ инструмСнти ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Π·Π° сСриализация.

Ѐункция Π·Π° въвСТданС Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€

Всяка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈΠΌΠ° функция Π·Π° въвСТданС, ΠΊΠ°Ρ‚ΠΎ основната функция, която ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Π½ΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ няма основна функция. ΠšΠΎΠ³Π°Ρ‚ΠΎ Wasm Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Rust, функцията Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½Π° функция Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°. Π˜ΠΌΠ΅Ρ‚ΠΎ Π½Π° функция Π² Rust Ρ‰Π΅ бъдС нСясно ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° изходния ΠΊΠΎΠ΄ Π½Π° Rust Π² Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС изпълнСн ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина. Π—Π° Π΄Π° ΠΏΠΎΠΏΡ€Π΅Ρ‡ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° излишСн ΠΊΠΎΠ΄ ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°, функцията invoke добавя анотацията #[no_mangle].

Как функцията Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° изпълнСниС Π½Π° транзакция?

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ontio_std прСдоставя функция runtime::input() Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° изпълнСниС Π½Π° транзакция. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ZeroCopySource, Π·Π° Π΄Π° дСсСриализират получСния масив ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅. Π’ ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ масив ΠΎΡ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅, послСдвано ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Как сС Π²Ρ€ΡŠΡ‰Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°?

Ѐункцията runtime::ret, прСдоставСна ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ontio_std, Π²Ρ€ΡŠΡ‰Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ изпълнСниС Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄.

Π—Π°Π²ΡŠΡ€ΡˆΠ΅Π½Π°Ρ‚Π° функция Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

Как Π΄Π° напиша ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π½Π° WebAssembly Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ontology? Част 1: РъТда

Π‘Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ дСсСриализиранС Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π½ΠΈ Π΄Π°Π½Π½ΠΈ

Π’ процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π²ΠΈΠ½Π°Π³ΠΈ сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ със сСриализацията ΠΈ дСсСриализацията, ΠΏΠΎ-спСциално с Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ структурСн Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° дСсСриализират Π±Π°ΠΉΡ‚ΠΎΠ² масив, ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Π½ ΠΎΡ‚ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ структурСн Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ontio_std прСдоставя интСрфСйси Π·Π° Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ ΠΈ Π΅Π½ΠΊΠΎΠ΄Π΅Ρ€ Π·Π° сСриализация ΠΈ дСсСриализация Π½Π° Π΄Π°Π½Π½ΠΈ. ΠŸΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° Π½Π° структура ΡΡŠΡ‰ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚ интСрфСйситС Π½Π° Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π° ΠΈ Π΅Π½ΠΊΠΎΠ΄Π΅Ρ€Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ структурата Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС сСриализирана ΠΈ дСсСриализирана. ЕкзСмпляритС Π½Π° класа Sink са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС сСриализират Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ. ЕкзСмпляр Π½Π° класа Sink ΠΈΠΌΠ° ΠΏΠΎΠ»Π΅ buf ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π΅Π½ Ρ‚ΠΈΠΏ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π±Π°ΠΉΡ‚ ΠΈ всички сСриализирани Π΄Π°Π½Π½ΠΈ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² buf.

Π—Π° Π΄Π°Π½Π½ΠΈ с фиксирана дълТина (Π½Π°ΠΏΡ€.: Π±Π°ΠΉΡ‚, u16, u32, u64 ΠΈ Ρ‚.Π½.), Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Π±Π°ΠΉΡ‚ΠΎΠ² масив ΠΈ слСд Ρ‚ΠΎΠ²Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² buf; Π·Π° Π΄Π°Π½Π½ΠΈ с нСфиксирана дълТина ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° сС сСриализира Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π°, слСд Ρ‚ΠΎΠ²Π° Ddata (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†Π΅Π»ΠΈ числа Π±Π΅Π· Π·Π½Π°ΠΊ с нСизвСстСн Ρ€Π°Π·ΠΌΠ΅Ρ€, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ u16, u32 ΠΈΠ»ΠΈ u64 ΠΈ Ρ‚.Π½.).

ДСсСриализацията Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ. Π—Π° всСки ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° сСриализация ΠΈΠΌΠ° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° дСсСриализация. ДСсСриализацията изисква ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° СкзСмпляри ΠΎΡ‚ класа Source. Π’ΠΎΠ·ΠΈ клас ΠΈΠΌΠ° Π΄Π²Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° buf ΠΈ pos. Buf сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ дСсСриализирани, Π° pos сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° позиция Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ сС Ρ‡Π΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ, Π°ΠΊΠΎ Π·Π½Π°Π΅Ρ‚Π΅ тяхната дълТина, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ, Π·Π° Π΄Π°Π½Π½ΠΈ с нСизвСстна дълТина - ΠΏΡŠΡ€Π²ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π°, слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ.

Π”ΠΎΡΡ‚ΡŠΠΏ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°

онтология-wasm-cdt-Ρ€ΡŠΠΆΠ΄Π° - капсулиран ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ добавянС, ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅, промяна ΠΈ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ към Π΄Π°Π½Π½ΠΈ във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°, ΠΊΠ°ΠΊΡ‚ΠΎ слСдва:

  • Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ::get(ΠΊΠ»ΡŽΡ‡) - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС Π·Π° изискванС Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°, Π° ΠΊΠ»ΡŽΡ‡ΡŠΡ‚ изисква ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° интСрфСйса AsRef;
  • Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ::put(ΠΊΠ»ΡŽΡ‡, стойност) - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Key изисква ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° интСрфСйса AsRef, Π° value изисква ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° интСрфСйса Encoder;
  • Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ::ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅(ΠΊΠ»ΡŽΡ‡) - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°, Π° ΠΊΠ»ΡŽΡ‡ΡŠΡ‚ изисква ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° интСрфСйса AsRef.

ВСстванС Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ са Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° ΠΈ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ подходяща Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, Π·Π° Π΄Π° изпълним Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄Π° Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π° във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° Π·Π° тСстванС. Но Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° тСстванС Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½. Π—Π° Π΄Π° улСсни Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° тСстват Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ontio_std прСдоставя ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ» Π·Π° тСстванС. Π’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄ΡƒΠ» осигурява симулация Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° тСстват ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°. ΠœΠΎΠ³Π°Ρ‚ Π΄Π° сС намСрят ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Ρ‚ΡƒΠΊ.

ΠžΡ‚ΡΡ‚Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π°

console::debug(msg) ΠΏΠΎΠΊΠ°Π·Π²Π° информация Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ отстранява Π³Ρ€Π΅ΡˆΠΊΠΈ Π² Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡΡ‚Π° Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ бъдС Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към рСгистрационния Ρ„Π°ΠΉΠ» Π½Π° възСла. ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‚Π°Π²ΠΊΠ° Π΅ Π΄Π° настроитС Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° рСгистрационния Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС изпълнява локалният тСстов възСл Π½Π° онтологията.

runtime::notify(msg) ΠΈΠ·Π²Π΅ΠΆΠ΄Π° подходящата информация Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ сС отстранява. Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‰Π΅ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° информацията, въвСдСна във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°, ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС заявСна ΠΎΡ‚ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getSmartCodeEvent.

Бтатията Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° ΠΎΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Hashrate&Shares спСциално Π·Π° OntologyRussia. ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅

Π’ΠΈΠ΅ стС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ? ΠŸΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½Π΅Ρ‚Π΅ сС към Π½Π°ΡˆΠ°Ρ‚Π° тСхничСска общност Π½Π° Ρ€Π°Π·Π΄ΠΎΡ€. ОсвСн Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ Π¦Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° нашия уСбсайт, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ инструмСнти Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, докумСнтация ΠΈ Π΄Ρ€.

ΠžΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡ

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€