Releases: cardano-foundation/cardano-rosetta-java
1.3.3
Highlights
- fixing a regression issue to do with writing transaction symbols as ascii instead of hex #609.
What's Changed
- feat: add a new set of integration tests for construction endpoints by @linconvidal in #583
- docs: misc docs updates for v1.3.2 release by @linconvidal in #586
- fix: update expected error codes in DRep delegation test cases by @linconvidal in #592
- fix: update schema validation to use Draft4Validator and improve code formatting by @linconvidal in #605
- chore: 1.3.3 version upgrade. by @matiwinnetou in #611
Full Changelog: 1.3.2...1.3.3
1.3.2
🌟 Highlights
Search Improvements
- Currency Filtering: Enhanced search functionality with improved currency filtering capabilities
- Performance Optimizations: Significant performance improvements for large-scale address searches and UTXO handling
- Bug Fixes: Fixed operation ordering (now sorted by slot), resolved missing transaction issues, and corrected account/transaction identifier test operations (AND/OR logic)
Network Enhancements
- Peer Management: Added static peer support in
/network/
endpoint with dynamic peer discovery available via configuration
Infrastructure Updates
- Yaci-Store Upgrade: Updated to latest yaci-store v0.1.5 from 0.1.x release line for improved stability
Testing & Quality Assurance
- Contract Testing: Comprehensive PostMan collection and Python-based contract tests for all construction endpoints
- End-to-End Testing: New Python-based flow tests for native asset transfers
⚠️ Known Issues
- Byron Era Transactions: Some Byron era transactions are currently missing (fix coming in upcoming release)
- Operation Type Search: Searching by operation type is not yet supported
- Currency Symbol Format:
currency.symbol
should use hex strings instead of ASCII (fixed in v1.3.3)
🚨 Important Upgrade Notes
Database Migration Required: This release includes new search-related indexes. On synced instances, allow several hours for full stack synchronization (primarily yaci-indexer).
Deployment Recommendation: Only enable this Rosetta version after full synchronization is complete. Monitor /network/status
endpoint and ensure sync_status.synced
shows true
before switching over.
⚙️ Configuration Changes
SEARCH_LIMIT=100 # New: Limits search results
PEER_DISCOVERY=false # New: Controls dynamic peer discovery
📋 Detailed Changes
Features
- Currency filtering and address search optimization for large UTXO sets ([#554](#554))
- Static and dynamic peer management ([#561](#561))
- End-to-end testing for native asset transfers ([#576](#576))
Fixes
- Missing transaction resolution in search results ([#563](#563))
- Search index creation issues ([#577](#577))
Maintenance
- Yaci-store upgrade to v0.1.5 ([#566](#566))
- Updated performance documentation with v1.3.1 benchmarks ([#558](#558))
- Enhanced PostMan collection review ([#578](#578))
🔗 Additional Resources
Full Changelog: [v1.3.1...v1.3.2](1.3.1...1.3.2)
Contributors: @matiwinnetou, @tienna, @Kartiiyer12, @linconvidal
1.3.1
What's Changed
- fix: /transaction/search - number of bug fixes by @matiwinnetou in #536
- chore: add new collection for search-transactions by @linconvidal in #548
- docs: Update call API endpoint, pool operations guide, and add unparsed blo… by @tienna in #547
KNOWN ISSUES:
- Total counts /search/transactions endpoints are not always exactly correct
- /search/transactions within-block returns transactions in no particular order.
Full Changelog: 1.3.0...1.3.1
1.3.0
Highlights:
- SPO Voting (governance)
- Prefix support for dRep delegation operation (governance)
- Mithril upgrade to 2524.0
- Advanced Hardware Profile for high spec machines (e.g. 96 GB RAM)
- Rosetta Prometheus / Grafana Monitoring Dashboard (early access)
- Continue On Parse flag (rosetta indexer will continue processing also in case of block it cannot process)
Fixes:
- pool registration bug fixes
- some error propagations to the user
- Node config files for node version 10.4.1
- Indexer will start only if cardano node is fully synced
New Variables:
CONTINUE_PARSING_ON_ERROR=true
SYNC=true
What's Changed
- feat: prefix support drep by @VladislavKudrin in #503
- feat: SPO voting (governance) by @matiwinnetou in #467
- fix: relay port was not added to encoded operations cbor map by @matiwinnetou in #517
- refactor: remove catalyst voting by @matiwinnetou in #515
- fix: error log level as default for prod / mainnet environments by @matiwinnetou in #520
- fix: not all errors were propagated by @matiwinnetou in #518
- fix: add config files node 10.1.4 by @VladislavKudrin in #529
- chore: bump mithril version by @VladislavKudrin in #530
- feat: upgrade to yaci-store 0.1.4, yaci-core 0.3.7 which has store.continue-on-parse-error in case there is a problem processing a block. by @matiwinnetou in #502
- docs: Add Advanced Hardware Profile and Performance Results for Rosetta-java v1.2.9 by @tienna in #521
- Chore/node sync check by @Kartiiyer12 in #531
- feat: Add Prometheus/Grafana monitoring docker profile and restructure config folder by @tienna in #528
- feat: add pool operations to e2e tests by @linconvidal in #532
- Update pruning and environment variables documentation by @Kartiiyer12 in #543
- fix: update Dockerfile to include wget ca-certificates and correct config path for single docker by @tienna in #545
Full Changelog: 1.2.11...1.3.0
1.2.11
- Upgrade the Cardano Node to 10.4.1
- Fork the GNU config repository and use it for the node build
- Add advanced profile for Docker Compose
- Small bug fixes
What's Changed
- fix: postgres support for different ports by @VladislavKudrin in #512
- feat: add advanced profile for docker compose by @tienna in #519
- fix: fork gnu config for the node build by @VladislavKudrin in #522
- chore: update node to 10.4.1 by @VladislavKudrin in #524
Full Changelog: 1.2.10...1.2.11
1.2.10
Small maintenance release fixing bugs and upgrading downstream software packages.
What's Changed
- fix: block fetch timeout variable exposed for customers to change by @matiwinnetou in #487
- fix: renamed blockFetchTimeout variable to BLOCK_TRANSACTION_API_TIMEOUT_SECS. by @matiwinnetou in #488
- chore: yaci-store upgrade to 0.1.3 to fix downstream issue that showed up only on preview environment. by @matiwinnetou in #489
- docs: misc docusaurus improvements by @linconvidal in #478
- chore: yaci-core and cardano-client-lib upgrade by @matiwinnetou in #496
- fix: /construction/parse endpoint - incorrect nesting assumptions for amount that is part of token bundle, now it should be correct. by @matiwinnetou in #499
- docs: add performance metrics for Docker Compose setup in v1.2.0 by @linconvidal in #495
- fix: drep vote delegation was not properly serialised and parsed out. by @matiwinnetou in #504
- feat: add test for reward withdrawal of 0 ADA in stake operations by @linconvidal in #507
- fix: withdrawal issue fix and integration tests for it. by @matiwinnetou in #508
Full Changelog: 1.2.9...1.2.10
1.2.9
Highlights: 🔦
- For docker-compose type of deployment building from sources all components including mithril, postgres and cardano-node
- Upgraded to Ubuntu 24.04 across all docker containers
- Java 24 LTS for Rosetta API and Rosetta Indexer
- /network/status endpoint has now sync_status field as per Rosetta standard
- /network/status endpoint has now a field oldest_block but it is active only when REMOVE_SPENT_UTXOS configuration setting is enabled
- Renamed pruning to "remove spent utxos" (special kind of pruning but different than is usually meant in the industry / rosetta spec)
- Some internal libraries upgrade
Depreciation ⚠️
- Single docker image deployment is deprecated, while we will continue to support it for now, we encourage all rosetta-java clients to move towards docker-compose build option which is now becoming canonical from 1.2.9 release onwards
What's Changed:
- docs: updates the environment variables by @tienna in #463
- feat: enhance stability test with error threshold and additional metrics by @linconvidal in #449
- docs: added link to hardware profiles page on scalability test page. by @matiwinnetou in #466
- feat: split release / prerelease dockerhub images by @VladislavKudrin in #476
- JDK 24 upgrade for Rosetta API (api module) and Rosetta Indexer (yaci-indexer module) by @matiwinnetou
- /network/status now contains oldest_block when REMOVE_SPENT_UTXOS=true by @matiwinnetou
- /network/status now contains sync_status by @matiwinnetou
- Building from sources for all components including postgres, mithril and cardano-node itself (security feature users asked to make sure no pre-bullt images are taken from dockerhub / docker registry by @VladislavKudrin
- Spring Boot upgrade to 3.4.x and standarisation that both API and Yaci-Indexer run the same version of Spring Boot by @matiwinnetou
- Ubuntu 24.04 LTS upgrade across all docker images by @matiwinnetou
BREAKING: ⚠️
- PRUNING_ENABLED configuration variable has been replaced by REMOVE_SPENT_UTXOS
- PRUNING_SAFE_BLOCKS configuration variable has been replaced by REMOVE_SPENT_UTXOS_SAFE_BLOCKS_COUNT
New Contributors
Full Changelog: 1.2.8...1.2.9
1.2.8
What's Changed
- docs: test improvements for v1.2.7 by @linconvidal in #430
- docs: docs improvements for v1.2.7 by @linconvidal in #431
- chore: mithril: v2517.1 and cardano-node: 10.3.1 by @VladislavKudrin in #461
Note: ⚠️
this is a hot-fix release that fixes issue identified with 1.2.7 that was related to bug in Mithril that could manifest only recently and only when replaying from genesis with using Mithril enabled flag.
Full Changelog: 1.2.7...1.2.8
1.2.7
Highlights 🔦
- Various bug fixes
- Downstream software upgrades, ie. Cardano Node 10.2.1, Mithril 2513.0, Yaci-Store 0.1.2, Yaci-Core 0.3.5, Cardano Client Lib 0.6.4
What's Changed
- chore: Yaci-Store 0.1.2, Yaci-Core 0.3.5, Cardano Client Lib 0.6.4 by @matiwinnetou in #378
- fix: transaction size which tracks transaction size and script size for each transaction has not been properly configured / enabled. by @matiwinnetou in #404
- fix: genesis block now correctly reported on /network/status by @matiwinnetou in #403
- chore: yaci-cli upgrade by @matiwinnetou in #401
- chore: mithril upgrade to version: 2513.0 by @matiwinnetou in #400
- fix: added filtering out for duplicate transactions by @matiwinnetou in #395
- fix: last page fix on /search/transations by @matiwinnetou in #397
- chore: cardano-node 10.2.1 integrated. by @matiwinnetou in #390
- fix: encode all operations in Rosetta's encoded CBOR extra tx data by @matiwinnetou in #398
- fix: fixes issues related to test generator that has not been updated for a while (data has not been regenerated). by @matiwinnetou in #412
Full Changelog: 1.2.6...1.2.7
1.2.6
Highlights 🔦
- Hardware Profiles: introduced entry_level and mid_level hardware profiles / configurations to ease scaling software and best tune software towards certain physical / virtual hardware specs
- Bug Fixes: addressed a couple of stability and correctness issues across the system.
- Cardano Node Upgrade: bumped to version 10.1.4 for compatibility and performance improvements.
- Scalability Testing Framework: Initial version to create, evaluate, and tune additional hardware profiles
- Rosetta documentation: initial version of new rosetta documentation https://cardano-foundation.github.io/cardano-rosetta-java/ with ability to invoke Rosetta endpoints
- Small Performance / Scalability Tweaks: connection pooling for Http connections (HTTP2) on api to yaci-indexer communication, using structured concurrency for better resilience against resource starvation issues
- Testing: added more unit tests / regression and flow tests
Breaking changes ⚠️
- you are now required to specify hardware profile upon starting cardano rosetta platform / stack.
e.g. example for "mid_level" profile:
docker-compose --env-file .env.docker-compose --env-file .env.docker-compose-profile-mid-level -f docker-compose.yaml up -d
List of hardware profile names can be access at: https://github.com/cardano-foundation/cardano-rosetta-java/wiki/9.-Hardware-Profiles, we will be adding more profiles in futher versions, it is an elementary list to get started.
What's Changed
- feat: implement stability testing with ApacheBench by @linconvidal in #360
- refactor: fail faster and less code complexity due to structured concurrency. by @matiwinnetou in #363
- feat: 10.1.4 by default also for a single docker image. by @matiwinnetou in #356
- feat: ability to externalise some of db pool and postgres db tunning parameters by @matiwinnetou in #353
- fix: payload endpoint must use original rosetta fee calculation. by @matiwinnetou in #361
- feat: initialize documentation structure and deployment workflow by @linconvidal in #366
- Add e2e test for fixed fee scenario by @linconvidal in #365
- feat: connection pooling for http connections. by @matiwinnetou in #371
- feat: enhance stability testing framework with CLI options, delays, and expanded test cases by @linconvidal in #376
- fix: rosetta tests are now called mesh. by @matiwinnetou in #382
- fix: make sure to serialize governance operations as part of embedded operations inside of CBOR. by @matiwinnetou in #381
- fix: upsert for postgres single docker image params by @matiwinnetou in #384
- moved below parameters from environment files to hardware profile files in #367)
(Values for the parameters are taken from the mid-level profile)
- API_DB_POOL_MIN_COUNT=150
- API_DB_POOL_MAX_COUNT=150
- added below parameters to hardware profile files in #367:
(Values for the parameters are taken from the mid-level profile)
DB_POSTGRES_MAX_CONNECTIONS=300
DB_POSTGRES_SHARED_BUFFERS=4GB
DB_POSTGRES_EFFECTIVE_CACHE_SIZE=8GB # ~50% of available memory for cache.
DB_POSTGRES_WORK_MEM=64MB
DB_POSTGRES_MAINTENANCE_WORK_MEM=512MB
DB_POSTGRES_WAL_BUFFERS=512MB
DB_POSTGRES_CHECKPOINT_COMPLETION_TARGET=0.7
DB_POSTGRES_RANDOM_PAGE_COST=1.3
DB_POSTGRES_EFFECTIVE_IO_CONCURRENCY=2
DB_POSTGRES_PARALLEL_TUPLE_COST=0.05
DB_POSTGRES_PARALLEL_SETUP_COST=500
DB_POSTGRES_MAX_PARALLEL_WORKERS_PER_GATHER=4
DB_POSTGRES_MAX_PARALLEL_WORKERS=8
DB_POSTGRES_SEQ_PAGE_COST=1.0
DB_POSTGRES_JIT=off
DB_POSTGRES_BGWRITER_LRU_MAXPAGES=100
DB_POSTGRES_BGWRITER_DELAY=200ms
Known issues ⚠️
- our scalability shows a slightly worse scalability numbers for mid_level hardware profile for "a single docker image" deployment option contrary to a "docker compose" way of running a project, the exact numbers will be published soon on our documentation pages: https://cardano-foundation.github.io/cardano-rosetta-java/
Full Changelog: 1.2.5...1.2.6