Я думал о том, что происходит, когда транзакция достигает Dusk.
Сначала кажется, что есть только один вопрос:
**«Примет ли сеть эту транзакцию?»**
Но если присмотреться, на самом деле есть два разных вопроса.
Во-первых, следует ли транзакция правилам протокола?
Затем, предполагая, что следует, согласны ли участники с состоянием, которое получится в результате?
Эту разницу легко упустить, потому что снаружи оба шага ведут к одному и тому же результату: принятому состоянию.
Но архитектурно это разные задачи.
Если что-то пойдет не так, их разделение делает проще выяснить, что именно не сработало. Транзакция была некорректной? Или же она была корректной, но участники не сошлись во взглядах на получившееся состояние?
Я считаю, что такое разделение — сильное дизайнерское решение.
Но оно также порождает новый вопрос.
Каждая граница ответственности — это еще одна передача полномочий. И каждая такая передача должна вести себя правильно, когда происходит что-то неожиданное.
Поэтому я снова и снова возвращаюсь к этому:
**Разделяет ли отделение проверки корректности от достижения консенсуса делает Dusk проще для понимания с точки зрения сбоев, или каждая новая граница добавляет еще одно место, где система может сломаться?**
#Dusk @Dusk $DUSK
Сначала кажется, что есть только один вопрос:
**«Примет ли сеть эту транзакцию?»**
Но если присмотреться, на самом деле есть два разных вопроса.
Во-первых, следует ли транзакция правилам протокола?
Затем, предполагая, что следует, согласны ли участники с состоянием, которое получится в результате?
Эту разницу легко упустить, потому что снаружи оба шага ведут к одному и тому же результату: принятому состоянию.
Но архитектурно это разные задачи.
Если что-то пойдет не так, их разделение делает проще выяснить, что именно не сработало. Транзакция была некорректной? Или же она была корректной, но участники не сошлись во взглядах на получившееся состояние?
Я считаю, что такое разделение — сильное дизайнерское решение.
Но оно также порождает новый вопрос.
Каждая граница ответственности — это еще одна передача полномочий. И каждая такая передача должна вести себя правильно, когда происходит что-то неожиданное.
Поэтому я снова и снова возвращаюсь к этому:
**Разделяет ли отделение проверки корректности от достижения консенсуса делает Dusk проще для понимания с точки зрения сбоев, или каждая новая граница добавляет еще одно место, где система может сломаться?**
#Dusk @Dusk $DUSK
Easier to isolate failures
0%
Clearer system boundaries
0%
More coordination risks
0%
Both equally
0%
0 проголосовали • Голосование закрыто