Как эффективно синхронизироваться при использовании потокового API dfuse - PullRequest
0 голосов
/ 23 ноября 2018

Я использую потоковый API dfuse для создания приложения на базе EOS.Я хочу поддерживать синхронизацию всех данных, передаваемых через мой умный контракт.

Я хочу быть уверенным, что я всегда буду синхронизирован, поэтому я никогда не пропущу ни одного блока.Используя API потоковой передачи dfuse, как мне этого добиться?

1 Ответ

0 голосов
/ 23 ноября 2018

Используя функцию with_progress API Websocket, вы получите одно сообщение progress после обработки каждого блока.

Для данного потока (соответствующего запросу и связанному req_id)Если вы получили progress для блока, вы гарантированно увидели все содержимое, содержащееся в вашем запросе (действия для get_action_traces или строки для get_table_rows).

Есливы отслеживаете это block_num и / или block_id, после отключения / повторного подключения вы можете предоставить его обратно в запросе и гарантированно никогда не пропустить удар, даже если это означает, что вы перерабатываете блоки 1M.

По состоянию на 22 ноября 2018 года запрос get_table_rows будет передавать table_delta сообщений, которые включают "undo" / "redo" step.Это позволяет вашему приложению осуществлять навигацию по вилкам и обеспечивать абсолютную синхронизацию вашего приложения с состоянием самой длинной цепочки.

Проверьте документы по https://docs.dfuse.io/ и найдите with_progress для получения более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...