solana-stream-engine — это Rust-библиотека.
Она получает TransactionEvent, содержащий transaction_id: String. Проверяет, валиден ли transaction_id, и если он невалидный, то возвращает ошибку InvalidSignature.
Если идентификатор валидный и уже встречался, движок возвращает Duplicate и не изменяет состояние. Если идентификатор раньше не встречался, движок сохраняет Signature и возвращает Accepted.
Сейчас проект умеет:
- принимать
TransactionEvent; - валидировать
transaction_id; - хранить принятые
Signatureв памяти; - определять повторные события по идентификатору транзакции;
- возвращать
Accepted,DuplicateилиInvalidSignature; - проверять основную логику с помощью unit-тестов.
Сейчас в проекте нет:
- async/Tokio;
- Solana RPC;
- Solana SDK;
- базы данных;
- постоянного хранения состояния;
- HTTP/API сервера;
- восстановления состояния после перезапуска.
Все принятые сигнатуры хранятся только в оперативной памяти.
Запустить минимальный binary:
cargo runПроверить форматирование:
cargo fmt --checkЗапустить Clippy и считать warnings ошибками:
cargo clippy --all-targets --all-features -- -D warningsЗапустить все тесты:
cargo test --all