Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Blockchain Indexer Implementation - EMURGO Backend Engineer Challenge
Summary
Complete implementation of a blockchain indexer API that tracks address balances using the UTXO (Unspent Transaction Output) model. All required endpoints, validations, and comprehensive test coverage included.
What's Implemented
API Endpoints
1. POST /blocks
2. GET /balance/:address
3. POST /rollback?height=number
Technical Architecture
Database Schema (PostgreSQL)
Key Design Decisions
spentboolean flag on outputs instead of deletionTest Coverage
18/18 tests passing - 100% success rate
Test Categories:
Block Validation (7 tests)
Balance Queries (4 tests)
Rollback Functionality (4 tests)
Edge Cases (3 tests)
Technologies Used
Files Changed
How to Run