#robo $ROBO
Когда робот закончил — но сеть сказала последнее слово
Роботизированная рука уже завершила подъем, прежде чем Fabric запечатал доказательство роботизированной работы. Механически все прошло именно так, как ожидалось. Захват закрылся в нужный момент, крутящий момент на мгновение возрос, и объект стабилизировался на месте. Локальный контрольный цикл отметил задачу как завершенную. С точки зрения робота работа была сделана.
Fabric увидел что-то иное.
Значок задачи все еще был отмечен как временный, потому что пакет доказательства ждал в очереди на проверку. Глубина очереди составляла семь, и моя подача находилась на шестом месте. Хеш задачи был виден, но событие завершения не было сгенерировано. Без завершения действие не имело анкера в книге учета.
Тем временем рука уже поместила объект внутри ограниченной зоны.
Моя консоль показывала завершение, но Fabric все еще отображал ожидание. Один и тот же идентификатор задачи, два разных таймера, измеряющих одно и то же событие. Один таймер принадлежал машине, другой — сети. Этот небольшой разрыв создал настоящую проблему координации.
Затем очередь сдвинулась. Две подачи перескочили впереди моей из-за различных весов приоритета и более ранних окон пакета. Робот уже действовал, но слой проверки все еще догонял.
Этот момент заставил изменить логику.
Для ограниченных действий агент теперь должен ждать печати. Если значок проверки не зеленый, система блокирует движение. Никаких кратчайших путей.
На следующем запуске рука достигла ограниченной границы и на мгновение остановилась. В течение этой паузы Fabric завершил доказательство, и значок стал зеленым. Только тогда рука двинулась.
Урок был прост: в робототехнике, координированной сетью, движение само по себе не определяет завершение.
Завершение определяет.
@Fabric Foundation $ROBO

