---
# System prepended metadata

title: оценить оставшиеся задачи

---

# оценить оставшиеся задачи

## валидаторы
Тут кажется все готово   
Возможно нужны доработки для согласования разных задач

## gwat-консенсус
Тут кажется все готово   
Возможно нужны доработки для согласования разных задач

## синхронизация gwat-coordinator
#### Coordinator:
- Coordinator: Pежим работы координатора без живота
> В принципе работает, но требуется более детальный ресерч и анализ того что происходит, 
> возможно нужны доработки по ограничению рабочих процессов (валидация спайнов, создание блоков етц)
- SyncSlotInfo установка тайм-слот параметров 
> уже есть и работает, возможно требуется корректировка вызова
- Coordinator: Процедура синхронизации
> 1. координатор запрашивает состояние GWAT dag_CoordinatedState  
> 2. если жват занят - ошибка - коорд по таймеру повторяет запрос
> 3. координатор находит соответствующий чекпоинт и от него начинает синхронизацию: 
> 4. отправляет запросы dag_finalize для последующих эпох  
> запрос может включать сразу несколько эпох например 16

#### GWAT: 
- Проработка статусов этапов синхронизации (Initial, SyncSlotInfo, Synchronizing)
- SyncSlotInfo установка тайм-слот параметров
> уже есть и работает
- Запуск синхронизации
> 1. поучив dag_finalize, выбирает ноду для синхронизации  
> 1.1. надо проработать выбор ноды. Предварительно: запрашиваем контрольные хидеры (текущий чекпоинт и последний спайн в finalize.spines))  
> 1.2. получаем ответ и проверяем результат  
> 1.3. Если ок - переключаемся на синхронизацию  
> 1.4. Если феил - проверяем следующую ноду, а текущую дропаем 
> 2. запрос блоков  
> начиная от последнего финализированного (baseSpine) блока  
> и заканчивая последним спайном в finalize.spines запросе
- Синхронизация до последнего финализированного Чекпоинта
> последний финализированный Чекпоинт можно определить по `SlotInfo` и чекпоинту в запросе
- Если получен lastFinCp: запускаем Даг-Синхронизацию
- После получения всех блоков Даг-Синк, выполняем стандартную процедуру финализации
- переход в рабочий режим 
> разобраться по ходу.   
> теоретически, `После получения всех блоков Даг-Синк` можно считать что мы в рабочем режиме  

### Эры функционал 
- на стадии готовности

### Функционал создания и процессинга транзакций запроса 
- Deposit - готово
- Exit
- Withdrawal
> Exit и Withdrawal по аналогии с Deposit
- Доработки (перечислены в задаче)

### Функционал создания и процессинга коорд-тх
- Создание (функционал готов)
- интегрировать создание в криейторе
> Проверка назначения креатора
> Первоочередное добавление в блок
- обработка 
> в тх-пулл сразу не добавляем: добавляем только в блок, а уже потом в Процессинг тх-пулла
> валидация тх (?)
- процессинг ТХ 
> в `validator/processor.go`
> внесение изменений в стейт, логи
- доработка валидации блока
- интегрировать валидацию `ValidatorSync` полученную от координатора
> валидатор уже есть `validator/validatorsync/validator_sync_tx.go:90`  
> `func ValidateValidatorSyncOp(bc blockchain, stateBlockHash common.Hash, valSyncOp *types.ValidatorSync) (bool, error)`
- проверить пропагейт/синхронизацию

## рефактоинг оптимистического алгоритма



## награды в координирующей сети


