- Подписаться по сокетам к ноде Ethereum
- Получать новые блоки с транзакциями и сохранять в памяти последнии 100 блоков
- Сделать endpoint (HTTP/gRPC) для получения по диапазону блоков (N-M) или transaction id
- Реализовать graceful shutdown сервиса
Ограничения: Минимизировать количество зависимостей Примечания: логи, тесты, обработка ошибок и т.п. на усмотрение разработчика
go get github.com/mellaught/ethereum-blocks
cd $GOPATH:/src/github.com/mellaught/ethereum-blocks/src
- update config.json. Add your appID: wss://ropsten.infura.io/ws/v3/ + {YOUR_APP_ID}.
go run main.go
1. By blocks range:
http://localhost:8000/blocks/8976341-8976344
2. By transaction id:
http://localhost:8000/blocks/0x8488f4d75348439b9fc23cd2066edd7e9b8e79516d3aa01f0676414966632b31