ΠΠ° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° c++ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² block.one ΠΏΡΠΈΠ½ΡΠ»Π° Π½Π° ΡΠ°Π±ΠΎΡΡ 4-Ρ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΈ ΠΏΡΠΎΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠΈΡΠΎΠ²Π°Π»Π° Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ . ΠΠΎΠ²ΠΎΠ±ΡΠ°Π½ΡΡ ΡΠΆΠ΅ Π½Π°ΡΠ°Π»ΠΈ Π²Π½ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΊΠΎΠ΄.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡ Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
Π‘ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ Π½Π° WebAssembly (WASM) Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΡΠΈΡ ΡΠ°Π½Π½ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Wren. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ WASM Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ WASM Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ABI (Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ WASM, Π° Π½Π΅ Π½Π°ΡΠΈΠΌΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΎΠ².
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ΠΎΠΌ ΡΡ Π΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎ Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΠΌΠ΅Π½ΠΈ ΠΠΊΠΊΠ°ΡΠ½ΡΠ°
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ Π½Π° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² Ρ 256 Π±ΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊ Π½Π° 60 Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΡΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΡΡΡΡ Π² ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ base32. ΠΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π° Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² 12 ΡΡΡΠΎΡΠ½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΈΡΡΠ°ΠΌΠΈ. Π‘ΡΠ΅Π΄Π½Π΅Π΅ ΠΈΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Π² Twitter ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ Π²ΡΠ΅Π³ΠΎ Π² 12 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈΠ·-Π·Π° ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠΌΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π° ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ. Π‘ΡΠ°ΡΡΠΉ ABI ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π» ΡΡΠΈ ΠΈΠΌΠ΅Π½Π° Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π½ΠΎ-ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π» Π±Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΡΠΈΠ½Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² ΠΌΡ Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²ΡΡ ΡΡΠ°Π»ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π΄ΡΡΠΆΠ΅Π»ΡΠ±Π½ΠΎ. Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΠΌ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΊΠ°ΠΊ base32, ΡΡΠΎ Π΄Π°Π΅Ρ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠΌΠ΅Π½Π°.
ΠΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈΡ
Ρ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠΌ Π½Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ.
Π’ΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅-ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π° 75% ΠΌΠ΅Π½ΡΡΠ΅, ΡΡΠΎ Π΄Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΡΡ ΡΠ°ΠΊΠΎΠ²ΡΡ
Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π² WASM
ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ WASM ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠ±ΡΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
Π‘ΡΠ½Π΄Π±ΠΎΠΊΡΠΈΠ½Π³ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Ρ WASM
ΠΡ Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π²ΠΎ Π²Π²ΠΎΠ΄Π΅ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΎΠ² Π² WASM, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ»ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ²ΡΠΉ C++ Simplecoin (80 000 TPS)
Π ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΊΠ°Π·Π°Π» Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π²Π°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π‘, ΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ 50Π ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π― ΡΠΏΠΎΠΌΡΠ½ΡΠ», ΡΡΠΎ Π΄ΡΠΌΠ°Π», ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΈΡΡΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠ°ΡΡΠ»ΠΈΠ² ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ simplecoin Π½Π° C++, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π½Π° WASM ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΆΠ°ΡΡΠΉ ΡΠΈΠΊΠ» Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΌΡ Π΄ΠΎΠ±ΠΈΠ»ΠΈΡΡ 80 000 TPS, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠ΅ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅, ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΌΠ΅Π½ΡΡΡΠ΅ΠΉΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ; ΠΏΠΎΠΊΠ° ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ. ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π½Π° 4Ghz Intel Core i7 Π½Π° iMac 2014 Π³ΠΎΠ΄Π°.
struct Transfer {
uint64_t from;
uint64_t to;
uint64_t amount;
char memo[];
};
static_assert( sizeof(Transfer) == 3*sizeof(uint64_t), "unexpected padding" );
struct Balance { uint64_t balance; };
void on_init() {
static Balance initial = { 1000*1000 };
static AccountName simplecoin;
simplecoin = name_to_int64( "simplecoin" );
store( simplecoin, initial );
}
void apply_simplecoin_transfer() {
static Transfer message;
static Balance from_balance;
static Balance to_balance;
to_balance.balance = 0;
readMessage( message );
load( message.from, from_balance );
load( message.to, to_balance );
assert( from_balance.balance >= message.amount, "insufficient funds" );
from_balance.balance -= message.amount;
to_balance.balance += message.amount;
if( from_balance.balance )
store( message.from, from_balance );
else
remove( message.from );
store( message.to, to_balance );
}
ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΡΠΉ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ WASM ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅. ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΡΠ°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π·Π° ΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° ΠΈ ABI Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ABI ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² Π‘++ ΡΡΡΡΠΊΡΡΡΠ΅, ΠΈ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»ΠΈΠ½Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° WasmFiddle, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² EOS ΡΠ°ΡΡΠ΅Ρ, ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ Π²Π΅ΡΡΠΌΠ° Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ!
Π‘Π²Π΅ΠΆΠΈΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ Π² Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ: t.me/EOS_RU
ΠΡΠΈΠ³ΠΈΠ½Π°Π» ΠΏΠΎΡΡΠ°: ΠΠΠΠ‘Π¬