Я пытаюсь понять текущую реализацию смарт-контрактов и транзакций и меня интересует поведение в реальном времени. Я читал, что для того, чтобы транзакция стала частью блока, может потребоваться до 10 минут, и прочитал здесь , что «вы должны создать так называемую транзакцию, которая должна быть принята всеми остальными». Поэтому я не понимаю, как вы могли бы иметь транзакции в реальном времени и создавать, скажем, приложение списка задач, где каждый раз, когда вы создаете задачу, она будет мгновенно сохраняться в базе данных и после обновления будет там, и она будет взимать плату с пользователя за задачу. (скажем) сразу. Хотите знать, возможно ли это, или рассматривалось ли это, или почему это невозможно, или как бы вы справились с такой ситуацией.
Я не уверен, откуда вы узнали, что транзакция будет находиться в блоке через 10 минут. Это не займет 10 минут. В настоящее время среднее время составляет чуть меньше 20 секунд ( https://ethstats.net/ ).
В соответствии с сетью все готово, как только транзакция добыта в блоке, но система консенсуса требует, чтобы блок никогда не был окончательным. Теоретически даже первый блок сети может быть отменен из-за реорганизации цепочки консенсуса. На практике блок считается окончательным после того, как поверх него будет добыто несколько других блоков.
По сути, вам решать, когда вы принимаете блок, чтобы быть достаточно окончательным с достаточно большой уверенностью. Некоторые биржи, например, требуют 10 блоков (10 подтверждений) поверх блока, чтобы считать его достаточно окончательным, чтобы его можно было принять как необратимую транзакцию.
Итак, теоретически блокчейн находится примерно в «20 секундах от реального времени». 20 секунд могут быть не слишком большим интервалом для приложения todo. Но вы всегда должны помнить, что существует компромисс между консенсусом: сколько блоков вы хотите подождать, прежде чем вы будете уверены, что блок будет достаточно окончательным.
СРЕДСТВА
Есть способы обойти это «медленное» время транзакции. Например:
1) Выполните часть обработки вне блокчейна. Очевидно, что вся такая обработка намного быстрее. Затем просто обновляйте данные в блокчейне через определенные промежутки времени или около того.
2) Боковые цепи/каналы состояния. Это довольно новые подходы, но они частично используют первый метод; часть обработки выполняется, например, в боковой цепи, которая работает намного быстрее. Эти решения в основном действительны только для транзакций между известными участниками (поэтому много транзакций туда и обратно между известными участниками), а не для «случайных» транзакций со случайными участниками.
Лэнс
Лэнс
Лаури Пелтонен
Лэнс
Лаури Пелтонен