αα
αα
αααα·ααααΆ Ontology Wasm ααΆαααααααααααααΎαααααΆαααααΎα
αααΆααααα»ααα·α
αα
αααααΆααααΆααα dApp ααΆαα½αααΉααααααα·ααααΆα’αΆααΈααααααααααα»αααααΆααα
ααΆαα blockchain αααα ααα»αααααααΎα±ααααααααααα’αααΌα‘αΌαααΈ dApp ααΈαα
ααααΎααααΆαααααΆααα
αα
αα
α»αααααα
αααααΎααα·α αα αααααΆ WASM ααΆαα½α Rust
αααααΎααα·α αα αααααΆ
αα
ααΆαααααααααααααααααααΆαααααΎαα
α―αααΆα Cargo.toml ααααΌαααΆαααααΎααΎααααΈαααα
αααααααΆαααααααααΌαααααΆα αα·αααααααΆααααααΆαααα’αΆαααααα ααααα [lib] ααα―αααΆαααααΌαααααααααα
ααΆ crate-type = ["cdylib"] α α―αααΆα lib.rs ααααΌαααΆαααααΎααΎααααΈαααααααΌααααααα·ααααΆαα·α
αα
αααααΆα ααΎαααΈαααααα α’αααααααΌααααααααααΆαααΆααααααααΆαα’αΆααααααα
ααααα [ααΆαα’αΆααααα] ααα―αααΆαααααααα
ααΆαααααααα Cargo.tomlα
ααΆαα½αααΉαααΆαα’αΆαααααααα α’αααα’αα·ααααααα’αΆα
α α
αα
α
ααα»α
αααααΆαααααααΆαα’ααααααααααΆαα½α Ontology blockchain αα·αα§αααααααΌα
ααΆαααΆαααΆαααααααααααα
αα»αααΆαα αΌααα·α αα αααααΆ
αααααα·ααΈααΈαα½ααααΆααα»αααΆααααα αΌαααΌα ααΆαα»αααΆαα αααααααααΎαααΎαααΆααααααΆ ααα»αααααα·α αα αααααΆαα·αααΆααα»αααΆαααααΆααααα αα αααααααα·α αα αααααΆ Wasm ααααΌαααΆααααααΎαα‘αΎααααααααΎ Rust αα»αααΆαα α ααααΆαααΎαααααΌαααΆαααααΎααΆαα»αααΆααααα αΌαααΎααααΈααααΎαα·α αα αααααΆα ααααααααα»αααΆααα αααα»α Rust ααΉααα·αα αααΆααααΆαααα αααα αααααααΌαααααα Rust αα ααΆ bytecode αααα’αΆα ααααΌαααΆαααααα·ααααα·ααααααΆαααΈααα·αααα·αα ααΎααααΈαααΆαααα’αααα αααααααΈααΆααααααΎαααΌαααααααααααΎα αΎαααΆαααααααααα ααααα·α αα αααααΆ αα»αααΆαα α α αΌαααααααα αααΆααααααα #[no_mangle] α
ααΎαα»αααΆαα α α αΌαααα½αααΆααααΆαααΆααααααααΎααααΈααααα·ααααα·ααααα·ααααα·ααΆααααΆαααΌα ααααα ?
αααααΆααα ontio_std αααααααΌααα»αααΆα runtime::input() ααΎααααΈααα½αααΆααααΆαααΆααααααααΎααααΈααααα·ααααα·ααααα·ααααα·ααΆααα½αα α’αααα’αα·ααααααα’αΆα ααααΎ ZeroCopySource ααΎααααΈαααααα’αΆααααααααααα ααααααα»ααααα’αΆααααααΌααααααααααΆαα’αΆαααΊααΆααααααααα·ααΈααΆαααααα α ααΆαααΈαααααααααααΆαααΆαααααααα·ααΈααΆαααααα
ααΎβααααααβααβααΆαβα’αα»ααααβαα·α αα αααααΆβααΆαβαααα‘ααβααβαα·αβαααΆαβααΆ?
αααααααΆααααΎαααΆα :: α’αα»αααα ret ααααααααααααααααΆααα ontio_std αααα‘ααααααααααααΆαα’αα»αααααα·ααΈααΆαααααα
αα»αααΆαα α αααααΆααααα ααααΎααα ααΌα αααα
Serializing αα·α Deserializing αα·αααααααα·α αα αααααΆ
αα αααα»αααααΎαααΆαααααΆααααααΎααα·α αα αααααΆ α’αααα’αα·ααααααααααααα½ααααα αΆααΆαα½α serialization αα·α deserialization ααΆαα·αααααΆαα½ααααααααααΆαα»ααααααααα·αααααα struct αα αααα»α database αα·ααααα deserialize a byte array α’αΆαααΈ database ααΎααααΈααα½αααΆα struct data typeα
αααααΆααα ontio_std αααααααΌαα ααα»α αααααΆααα’ααααα·ααΌα αα·αα§ααααααααααααααΌααααααΆααααααααα·αααααα αα·α deserialization α ααΆααα struct αα½αααα’αα»ααααα ααα»α αααααΆαααα·ααΌα αα·αα’αα·αααΌααααααααα ααΌα αααααα ααΆααααααααα’αΆα ααααΌαααΆαααααα αα·α deserialized α Instances αα Sink class ααΊααααΌαααΆαααΆαααΆα αα αααααααααααααα·ααααααααααααααααΌαααΆααααααα α§ααΆα αααααααααΆαα Sink ααΆα buf ααΆααααααα set-type ααααααααΆαα»ααα·αααααααααααααα α αΎααα·αααααααααααΆαααΆααααΆαααααΈααΆααα’ααααααΌαααΆααααααΆαα»ααααα»α buf α
αααααΆαααα·ααααααααααααααα (α§ααΆα αααα byte, u16, u32, u64 ααα) αα·ααααααααααΌαααΆαααααααααααααααΆαααα ααΆα’αΆααααα αΎααααααΆαααααααααΆαα»ααααα»α buf αααααΆαααα·αααααααααααααααα·αααααα ααααααααααΌαααααααΌαααΆααααααααΆαα»ααα·α αααααΆαααα Ddata (α§ααΆα ααα α ααα½ααααααααα·αααΆαα α»αα αααααααΆααααα αααααα·αααααΆαα αα½αααΆαα u16, u32 α¬ u64 ααα)α
Deserialization ααΊαααα»ααααα‘αα αααααΆααααΆαααα·ααΈααΆααααα serialization ααΆααα·ααΈααΆααααα deserialization αααααααΌαααααΆα Deserialization αααααΌαα±ααααααΎα§ααΆα αααααααααΆαααααααα instance ααααΆαααααααΆαααΆαααΈα buf αα·α pos α Buf ααααΌαβααΆαβααααΎβααΎααααΈβαααααΆβαα»αβαα·ααααααβαααβααααΌαβααΆα deserialized α αΎα pos ααααΌαβααΆαβααααΎβααΎααααΈβαααααΆβαα»αβααΈααΆααβα’αΆαβαα αα α»ααααααα αα αααααααααααααα·ααααααααΆααααΆαααα½ααααα»αααααΌαααΆαα’αΆα ααααα·αααΎα’αααααΉαααΈααααααααααααΆ α’αααα’αΆα α’αΆαααΆαααααααΆαα αααααΆαααα·ααααααααααα·αααααΆααααααααβα’αΆαααααααααΆαα»ααα·α αααααΆααααα’αΆαααααΉαααΆαα
α αΌαααααΎ αα·αααααΎαα αα α»ααααααααΆααα·αααααααα αααα»ααααααααααΆαα
ontology-wasm-cdt-rust - ααααααααΌααα·ααΈααΆαααααααααα·ααααα·ααΆααααααΆααααααΎααΆαααΆαα½ααα·αααααααααα»ααααααααααΆαα αααααΆααααα½ααααααΆααα’αααα’αα·αααααααααα»αααΆαα’αα»ααααααααα·ααααα·ααΆαααΌα ααΆ αααααα αα»α ααααΆααααααΌα αα·ααα½ααα·αααααααααα»ααααααααααΆααααΌα ααΆααααααα
- ααΌαααααΆααα·ααααααα:get(key) - ααααΌαααΆαααααΎααΎααααΈααααΎαα»ααα·ααααααααΈαααααααααΆαα α αΎαααααΎαααααΉααααα»αααΆαα’αα»ααααα ααα»α αααααΆαα AsRef α
- ααΌαααααΆααα·αααααα::put(key, value) - ααααΎαααααΆαααααααΆαα»ααα·αααααααα ααΎαααααΆαα αααααΉαααααΎαα»αααΆαα’αα»ααααα ααα»α αααααΆαα AsRef α αΎααααααααααΎα±ααα’αα»ααααα ααα»α αααααΆααα’αα·αααΌααααα
- ααΌαααααΆααα·ααααααα:αα»α(αα) - ααααΌαβααΆαβααααΎβααΎααααΈβααβαα·ααααααβα ααβααΈβααααβαααααΆαα α αΎαβααααΎβαααααΉαβαααα»αβααΆαβα’αα»ααααβα ααα»α βαααααΆαα AsRef α
ααΆαααααΎααααααα·α αα αααααΆ
αα
αααααααα·ααΈααΆααααααααα·α
αα
αααααΆααααΌαααΆαα’αα»αααα ααΎαααααΌαααΆαα
αΌαααααΎαα·αααααααα
ααΎαααααααααΆαα α αΎαααΎαααααΌαααΆααααΆαααΈααα·αααα·ααααααααααααΎααααΈααααα·ααααα· bytecode αααα·α
αα
αααααΆ ααΌα
ααααααΆααΌαα
ααΆα
αΆαααΆα
αααΆαααααα»αααΆαααΆαααααααΆααα·α
αα
αααααΆαα
ααΎαααααααααΆαααααααΆααααΆαααΆαααααα ααα»αααααα·ααΈααΆαααααααααΆαααααΎααααααααααΊααΆααααα αΆα ααΎααααΈααααΎα±ααααΆααΆααααααΆααααα½ααααααΆααα’αααα’αα·αααααααααα»αααΆαααααΎααααααα·α
αα
αααααΆ αααααΆααα ontio_std ααααααααΌαα»αααααΌαααααΆααααΆαααααΎαααααα αααΌαα»αααααααααααΌαααΆααααααααααΎαα·αααααααα
αααα»αααααααΈ αααααααΎα±ααααΆααΆααααααΆααααα½ααααααΆααα’αααα’αα·αααααααααα»αααΆαααααΎα―αααΆααΆααααααα·ααΈααΆααααααααα»ααα·α
αα
αααααΆα α§ααΆα αααααΆααααΆααα’αΆα
ααααΆα
ααΆαααααΆααααα α»ααα·α αα αααααΆ
console::debug(msg) αααα αΆαβααααααΆαβααααΆααβααα α»α αααβαααβαααα»αβααβααα α»αβαα·α αα αααααΆα ααααααΆα msg ααΉαααααΌαααΆααααααααα α―αααΆααααααα ααα» node α αααααΌαααΆαααΆαα»αααΊααααΌααααααααααα·αα―αααΆααααααα ααα»αα ααΆααααααααΆααααα α»α αα ααααααααααΆααααΆααααα Ontology ααΌαααααΆααααα»αααααΎαααΆαα
runtime ::notify(msg) αααα ααααααααΆαααααΆααααα α»αααααααααα ααααααααααα·α αα αααααΆαααα»αααααΌαααΆαααααΆααααα α»αα αα·ααΈααΆααααααααααΉααααααΆαα»αααααααΆααααααΆααααα αΌααα αααα»ααααααααααΆαα α αΎαα’αΆα ααααΌαααΆααα½αααΈαααααααααΆαααααααααΎαα·ααΈααΆααααα getSmartCodeEvent α
α’ααααααααααααΌαααΆααααααααααα’αααααααααα½ααα Hashrate & Shares ααΆαα·ααααααααΆαα OntologyRussia α
αα
ααΎα’αααααΆα’αααα’αα·ααααααααααα? α
αΌααα½αααΆαα½ααα αααααα
αα
αααα·ααααΆααααααΎααα
Ontology
ααα ααααα Ontology GitHub /αα·ααΆα - Telegram
ααΆααΆα’ααααααα /αααααααα»αααααΈ Twitter /Reddit
ααααα: www.habr.com