
Одна транзакция может затрагивать несколько смарт-контрактов, каждый из которых имеет своё представление о том, что должно произойти первым. Это создаёт сложную проблему. Представьте, что один контракт приоритизирует отмены, а другой — ликвидации. Когда транзакция взаимодействует с обоими, выполнение правил упорядочивания одного контракта может усложнить выполнение правил другого. Документация Ritual рассматривает эту проблему как вопрос композируемости: как различные прикладные политики упорядочивания могут сосуществовать без возникновения конфликтов? Одним из предложенных направлений является Монотонная система приоритетов, которая присваивает приоритеты вызовам функций с учётом их зависимостей. В рамках описанной системы построение блока может быть сведено к сортировке по приоритету. Более широкий урок заключается в том, что соблюдение правил внутри одного приложения — это лишь часть проблемы. Эти правила также должны работать при взаимодействии приложений.
