🌐 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ гипотСтичСского Π΄Π΅Π½Π΅ΠΆΠ½ΠΎΠ³ΠΎ прилоТСния Π½Π° EOS.

БСгодня ΠΌΡ‹ Ρ€Π°Π΄Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π’Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ прСдставлСниСм ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ EOS, ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½Π° Π½Π΅ΠΌ прилоТСния.

ВысокоуровнСвоС описаниС

EOS структурирован ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ° людСй ΠΈ/ΠΈΠ»ΠΈ сцСнариСв (Π±ΠΎΡ‚ΠΎΠ²), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой сообщСниями. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ систСму элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, Π³Π΄Π΅ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΎΡ‚Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΅ΡΡ‚ΡŒ свой Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚.

Как ΠΈ Ρƒ сообщСний элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, Ρƒ этих сообщСний Π΅ΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈ нСсколько Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ², скопированных Π² сообщСнии. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² элСктронной ΠΏΠΎΡ‡Ρ‚Π΅, доставка сообщСний Π½Π΅ гарантируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹. Доставка сообщСния ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ принял сообщСниС ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π» Π΅Π³ΠΎ Π² соотвСтствии с ΠΊΠΎΠ΄ΠΎΠΌ получатСля.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² сообщСнии, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒ сообщСниС, Π² этом случаС сообщСниС ΠΈΠΌ доставлСно Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π‘Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ EOS - это ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ ΠΈ постоянный рССстр всСх сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ доставлСны всСм Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌ-адрСсатам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ исходящиС сообщСния, сгСнСрированныС Π±ΠΎΡ‚ΠΎΠΌ.

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ΄, Π° Π½Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ

Когда ΠΌΡ‹ описываСм Π±ΠΎΡ‚ΠΎΠ², ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π²ΠΈΠ΄Ρƒ ΡΠ°ΠΌΠΎΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π΅. Аккаунт (Ρ‚.Π΅. ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚) - это Π½Π°Π±ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ/Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС ΠΈ/ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ асинхронно ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌ. БообщСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ состояниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈ нСдоступно для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ².

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° прилоТСния

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) ΠΈΠΌΠ΅Π΅Ρ‚ свою ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ любоС количСство Ρ‚Π°Π±Π»ΠΈΡ† с нСсколькими отсортированными индСксами для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π­Ρ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния прилоТСния. Π­Ρ‚ΠΎ состояниС описываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ схСмы, которая Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ обозрСватСлям Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС всСх ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² Π² осмыслСнном Π²ΠΈΠ΄Π΅.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ любоС количСство Ρ‚ΠΈΠΏΠΎΠ², Ρ‚.Π΅. структур. Π­Ρ‚ΠΈ структуры ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ сообщСний ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ прСдставлСния Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π²ΠΈΠ΄ JSON. Π­Ρ‚ΠΎ позволяСт Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Ρƒ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ для всСх, ΠΏΡ€ΠΈ этом обладая эффСктивным исполняСмым Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ

НаконСц, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ дСйствия ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° копируСтся Π² сообщСнии, доставляСмом Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρƒ. НапримСр, Π±ΠΈΡ€ΠΆΠ΅ трСбуСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° сообщСниС ΠΎ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ доставлСно Π΄Π΅Π½Π΅ΠΆΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-Π±ΠΈΡ€ΠΆΠ° являСтся ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅Π½Π΅ΠΆΠ½ΠΎΠ³ΠΎ прилоТСния

Один ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ - это дСньги. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹Π΅ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ структурированы Π² EOS.

ДисклСймСр

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° - всСго лишь концСпция, ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π»ΠΈΠ·Π°, СстСствСнно, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ½Ρ‹ΠΌΠΈ.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚

ΠŸΡ€ΠΈ написании прилоТСния Π’Ρ‹ сначала ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ сСбя, ΠΊΠ°ΠΊΠΈΠ΅ дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ участниками (Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌΠΈ), Π° Π·Π°Ρ‚Π΅ΠΌ Π’Π°ΠΌ слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ схСму Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ этих дСйствий. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ эти Π²Π΅Ρ‰ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, Π’Ρ‹ Π·Π°Π΄Π°Π΅Ρ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ, которая измСняСт состояниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° основС входящСго дСйствия. НаконСц, Π’Ρ‹ (ΠΏΡ€ΠΈ нСобходимости) Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сообщСний Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ допуска.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, простоС высокоуровнСвоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½. Π”Π΅Π½ΡŒΠ³ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² с ΠΈΡ… балансом. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ баланса пСрСвСсти срСдства Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ баланс для этого Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°, Ссли Ρ€Π°Π½Π΅Π΅ Π΅Π³ΠΎ Π½Π΅ сущСствовало. НСобходимо Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ срСдства самому сСбС ΠΈ ввСсти Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сумма ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π±Ρ‹Π»Π° большС 0. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ всС дСньги ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ собствСнному Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° баланс ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи достигаСт 0, запись ΠΎ Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π°.

  to      AccountName
  from    AccountName
  amount  UInt64

struct Init

table Balance
  owner   AccountName
  balance UInt64

on Init action
   precondition:
     eos.requireAuthority( eos.thisAccount() )
     eos.require( !Balance.find( eos.thisAccount() ) ) /// only call once

   apply:
     self         = Balance.new()
     self.owner   = eos.thisAccount()
     self.balance = 100000  /// maximum currency supply
     Balance.save(self)


on Transfer action
   validate:
     // static validation, verifies action is internally consistent
     // no access to database tables
     eos.require( action.amount > 0 ) 
     eos.require( action.to != action.from ) 
     eos.requireNotify( action.to ) 

   precondition:
     // identify possible precondition check that can 
     // be executed with readonly access
     eos.require( Balance[action.from].balance >= action.amount )
     eos.requireAuthority( action.from )

   apply:
     // assuming all prior steps pass, perform the state transition
     // that updates balances and/or creates a new account for receiver
     var from = Balance[message.from]
     var to   = Balance.find( action.to )

     if( !to ) {
        to         = Balance.new()
        to.owner   = action.to
     }

     from.balance = from.balance - action.amount
     to.balance   = to.balance   + action.amount

    Balance.save(to)

    if( from.balance > 0 )
        Balance.save(from)
    else if( from != eos.thisAccount() ) 
        Balance.delete(from)

На Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Ρ‚Ρ€ΠΈ сСкции: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС ΠΈ исполнСниС. Π­Ρ‚ΠΈ сСкции Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ этапы, Ρ‡Ρ‚ΠΎ позволяСт произвСсти ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ.

ИсполнСниС β€” СдинствСнный шаг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· истории ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… дСйствий. Π­Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ процСсс вычислСний Π½Π° этапС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… условий Π³ΠΎΡ€Π°Π·Π΄ΠΎ дСшСвлС, Ρ‡Π΅ΠΌ Π½Π° этапС исполнСния. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊ считаСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΈ Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ΠΌ, ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, ΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° большС Π½Π΅ провСряСтся снова, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ исполнСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ для создания Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ состояния ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ синхронизируСтся.

Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° обновлСниями

Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° обновлСниями для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ прилоТСния Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° EOS. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Π½Π°ΡˆΡƒ рассылку Π½Π° http://eos.io.


Π‘Π²Π΅ΠΆΠΈΠ΅ новости Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ: t.me/EOS_RU


ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ @rusteemitblog

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» поста: Π—Π”Π•Π‘Π¬


ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нашСго witness Π½Π° Steem - blockchained


H2
H3
H4
3 columns
2 columns
1 column
1 Comment