เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบชเบฑเบ™เบเบฒเบชเบฐเบซเบกเบฒเบ” WebAssembly เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Ontology? เบชเปˆเบงเบ™เบ—เบต 1: เบ‚เบตเป‰เบเบธเปˆเบ™

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบชเบฑเบ™เบเบฒเบชเบฐเบซเบกเบฒเบ” WebAssembly เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Ontology? เบชเปˆเบงเบ™เบ—เบต 1: เบ‚เบตเป‰เบเบธเปˆเบ™

เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต Ontology Wasm เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบชเบฑเบ™เบเบฒเบชเบฐเบซเบกเบฒเบ” dApp เบ—เบตเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบเบฑเบš blockchain, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ” dApp เบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

เบ›เบฐเบˆเบธเบšเบฑเบ™ Ontology Wasm เบžเป‰เบญเบกเป†เบเบฑเบ™เบฎเบญเบ‡เบฎเบฑเบšเบ—เบฑเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Rust เปเบฅเบฐ C++. เบžเบฒเบชเบฒ Rust เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Wasm เบ”เบตเบเบงเปˆเบฒ, เปเบฅเบฐ bytecode เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ Rust เป€เบžเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฑเบ™เบเบฒเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Ontology?

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฑเบ™เบเบฒ WASM เบเบฑเบš Rust

เบชเป‰เบฒเบ‡เบชเบฑเบ™เบเบฒ

เบชเบดเบ™เบ„เป‰เบฒ เป€เบ›เบฑเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ”เบตเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบŠเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Rust, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเป„เบ”เป‰เบ”เบตเบ‚เบถเป‰เบ™. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฑเบ™เบเบฒ Ontology Wasm เปƒเบซเบกเปˆ, เบžเบฝเบ‡เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบชเบฑเบ™เบเบฒเบชเบฐเบซเบกเบฒเบ” WebAssembly เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Ontology? เบชเปˆเบงเบ™เบ—เบต 1: เบ‚เบตเป‰เบเบธเปˆเบ™

เป‚เบ„เบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบฑเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹:

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบชเบฑเบ™เบเบฒเบชเบฐเบซเบกเบฒเบ” WebAssembly เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Ontology? เบชเปˆเบงเบ™เบ—เบต 1: เบ‚เบตเป‰เบเบธเปˆเบ™

เป„เบŸเบฅเปŒ Cargo.toml เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เปเป‰เบกเบนเบ™เป‚เบ„เบ‡เบเบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบš. เบžเบฒเบเบชเปˆเบงเบ™ [lib] เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ•เป‰เบญเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ crate-type = ["cdylib"]. เป„เบŸเบฅเปŒ lib.rs เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™ [เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช] เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Cargo.toml:

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบชเบฑเบ™เบเบฒเบชเบฐเบซเบกเบฒเบ” WebAssembly เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Ontology? เบชเปˆเบงเบ™เบ—เบต 1: เบ‚เบตเป‰เบเบธเปˆเบ™

เบ”เป‰เบงเบเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ™เบตเป‰, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเบžเบปเบงเบžเบฑเบ™เบเบฑเบš Ontology blockchain เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบŠเบฑเปˆเบ™: เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต serialization.

เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบ‚เบญเบ‡โ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹

เบ—เบธเบเป†เป‚เบ›เบฅเปเบเบฅเบกเบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เบ„เบทเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™, เปเบ•เปˆเบชเบฑเบ™เบเบฒเบšเปเปˆเบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เป. เป€เบกเบทเปˆเบญเบชเบฑเบ™เบเบฒ Wasm เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเปƒเบŠเป‰ Rust, เบŸเบฑเบ‡เบŠเบฑเบ™ invoke เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบชเบฑเบ™เบเบฒ. เบŠเบทเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™ Rust เบˆเบฐเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Rust เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ bytecode เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป‚เบ”เบ virtual machine. เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ compiler เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒ, เบŸเบฑเบ‡เบŠเบฑเบ™ invoke เป€เบžเบตเปˆเบกเบ„เปเบฒเบšเบฑเบ™เบเบฒเบ #[no_mangle].

เบŸเบฑเบ‡เบŠเบฑเบ™ invoke เป„เบ”เป‰เบฎเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบธเบฅเบฐเบเปเบฒเปเบ™เบงเปƒเบ”?

เบซเปเบชเบฐเปเบธเบ” ontio_std เบชเบฐเปœเบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ runtime::input() เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบžเบทเปˆเบญเบ”เบณเป€เบ™เบตเบ™เบ—เบธเบฅเบฐเบเบณ. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ ZeroCopySource เป€เบžเบทเปˆเบญ deserialize array byte เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš. เปƒเบ™เบ—เบตเปˆ array เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ bytes เบญเปˆเบฒเบ™เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™ invoke, เบ•เบฒเบกเบ”เป‰เบงเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบงเบดเบ—เบตเบเบฒเบ™.

เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฑเบ™เบเบฒเบเบฑเบšเบ„เบทเบ™เบกเบฒเปเบ™เบงเปƒเบ”?

runtime::ret function เบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” ontio_std เบชเบปเปˆเบ‡เบ„เบทเบ™เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™.

เบŸเบฑเบ‡โ€‹เบŠเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบฎเบนเบšโ€‹เบ„เบทโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบตเป‰โ€‹:

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบชเบฑเบ™เบเบฒเบชเบฐเบซเบกเบฒเบ” WebAssembly เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Ontology? เบชเปˆเบงเบ™เบ—เบต 1: เบ‚เบตเป‰เบเบธเปˆเบ™

Serializing เปเบฅเบฐ Deserializing เบ‚เปเป‰เบกเบนเบ™เบชเบฑเบ™เบเบฒ

เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฑเบ™เบเบฒ, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบฑเบเบˆเบฐเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบš serialization เปเบฅเบฐ deserialization, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™ deserialize array byte เบ—เบตเปˆเบญเปˆเบฒเบ™เบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡.

เบซเปเบชเบฐเปเบธเบ” ontio_std เบชเบฐเปœเบญเบ‡เบ•เบปเบงเบ–เบญเบ”เบฅเบฐเบซเบฑเบ” เปเบฅเบฐเบ•เบปเบงเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเบณเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™ serialization เปเบฅเบฐ deserialization. เบ—เบปเปˆเบ‡เบ™เบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™ serialized เปเบฅเบฐ deserialized. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบŠเบฑเป‰เบ™ Sink เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบกเบทเปˆเบญเบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™เบ•เปˆเบฒเบ‡เป†เบ–เบทเบเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบš. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบŠเบฑเป‰เบ™ Sink เบกเบต buf เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป€เบŠเบดเปˆเบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ” byte, เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™ serialized เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ buf.

เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ„เบงเบฒเบกเบเบฒเบงเบ„เบปเบ‡เบ—เบตเปˆ (เบ•เบปเบงเบขเปˆเบฒเบ‡: byte, u16, u32, u64, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบ›เปˆเบฝเบ™เป‚เบ”เบเบเบปเบ‡เป€เบ›เบฑเบ™ byte array เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ buf; เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบšเปเปˆเบ„เบปเบ‡เบ—เบตเปˆ, เบ„เบงเบฒเบกเบเบฒเบงเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ serialized เบเปˆเบญเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ Ddata (เบ•เบปเบงเบขเปˆเบฒเบ‡, unsigned integers เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ, เบฅเบงเบกเบ—เบฑเบ‡ u16, u32, เบซเบผเบท u64, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

Deserialization เปเบกเปˆเบ™เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบงเบดเบ—เบตเบเบฒเบ™ serialization, เบกเบตเบงเบดเบ—เบตเบเบฒเบ™ deserialization เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™. Deserialization เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบŠเบฑเป‰เบ™ Source. เบ•เบปเบงเบขเปˆเบฒเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบกเบตเบชเบญเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ buf เปเบฅเบฐ pos. Buf เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐ deserialized เปเบฅเบฐ pos เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เปเบฒเปเบซเบ™เปˆเบ‡เบญเปˆเบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เปƒเบ”เบ™เบถเปˆเบ‡เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบญเปˆเบฒเบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฎเบนเป‰เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบกเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบกเบฑเบ™เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡, เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ - เบญเปˆเบฒเบ™เบ„เบงเบฒเบกเบเบฒเบงเบเปˆเบญเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบญเปˆเบฒเบ™เป€เบ™เบทเป‰เบญเบซเบฒ.

เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ เปเบฅเบฐเบญเบฑเบšเป€เบ”เบ”เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰

ontology-wasm-cdt-rust - encapsulated เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰, เป€เบŠเบดเปˆเบ‡เบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบŠเบฑเปˆเบ™: เป€เบžเบตเปˆเบก, เบฅเบถเบš, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™::get(key) - เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰, เปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš AsRef;
  • เบ–เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™::put(key, value) - เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบ„เบตเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš AsRef, เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”;
  • เบ–เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™::delete(key) - เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบญเบญเบเบˆเบฒเบเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰, เปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš AsRef.

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเบฑเบ™เบเบฒ

เป€เบกเบทเปˆเบญเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” bytecode เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบชเบฑเบ™เบเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เปเบ•เปˆเบงเบดเบ—เบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบšเบฑเบ™เบซเบฒ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเบฑเบ™เบเบฒ, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” ontio_std เปƒเบซเป‰เป‚เบกเบ”เบนเบ™ mock เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เป‚เบกเบ”เบนเบ™เบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบงเบปเบ‡เบˆเบญเบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบˆเบฐเบซเบ™เปˆเบงเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบงเบดเบ—เบตเบเบฒเบ™เปƒเบ™เบชเบฑเบ™เบเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเบฐเป€เบžเบฒเบฐเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰ เบ—เบตเปˆเบ™เบตเป‰.

เบเบฒเบ™เปเบเป‰เบšเบฑเบ™เบซเบฒเบชเบฑเบ™เบเบฒ

console::debug(msg) เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ”เบตโ€‹เบšเบฑเบโ€‹เปƒเบ™โ€‹เบ‚เบฐโ€‹เบ™เบฐโ€‹เบ—เบตเปˆโ€‹เบ”เบตโ€‹เบšเบฑเบโ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹. เบ‚เปเป‰เบกเบนเบ™ msg เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ node. เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบฅเบฐเบ”เบฑเบšเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเป€เบ›เบฑเบ™เป‚เบซเบกเบ”เบ”เบตเบšเบฑเบเป€เบกเบทเปˆเบญเป‚เบซเบ™เบ”เบ—เบปเบ”เบชเบญเบš Ontology เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ.

runtime::notify(msg) outputs the properdebug information while the contract is being debuged . เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบˆเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบชเบญเบšเบ–เบฒเบกเบˆเบฒเบเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ getSmartCodeEvent.

เบšเบปเบ”เบ„เบงเบฒเบกเป„เบ”เป‰เบ–เบทเบเปเบ›เป‚เบ”เบเบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™เบ‚เบญเบ‡ Hashrate & Shares เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบš OntologyRussia. เบฎเป‰เบญเบ‡เป„เบซเป‰

เป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบšเป? เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบŠเบธเบกเบŠเบปเบ™เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆ Discord. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบšเบดเปˆเบ‡ เบชเบนเบ™เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เป€เบญเบเบฐเบชเบฒเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

Ontology

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™