Skip to content

Releases: cardano-foundation/cardano-rosetta-java

1.2.6

15 Apr 19:00
abd5765

Choose a tag to compare

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

1.2.5

21 Mar 12:06
af8e313

Choose a tag to compare

What's Changed

  • feat: add end-to-end testing framework for Cardano Rosetta API by @linconvidal in #351
  • refactor: common executor services defined once and re-used.
  • chore: dependencies update.
  • fix: we apply application specific index via flyweel for both single docker image and docker compose.
  • refactor: do not use cpu bound thread pool, context switching between threads is not cheap.
  • feat: add explicit db properties.
  • fix: always use API prefix for Rosetta API DB pool
  • added below parameters to environment files in #348:
  • API_DB_POOL_MIN_COUNT=10
  • API_DB_POOL_MAX_COUNT=10
  • API_DB_POOL_MAX_LIFETIME_MS=2000000
  • API_DB_POOL_CONNECTION_TIMEOUT_MS=100000
  • API_DB_KEEP_ALIVE_MS=60000
  • API_DB_LEAK_CONNECTIONS_WARNING_MS=60000
  • API_DB_MONITOR_PERFORMANCE=false
  • API_DB_SHOW_SQL=false

Full Changelog: 1.2.4...1.2.5

1.2.4

12 Mar 15:01
3333d37

Choose a tag to compare

What's Changed

  • fix: avoid NPE when transaction is not found by @matiwinnetou in #313
  • feat: simple performance / scalability fixes. by @matiwinnetou in #316
  • feat: Add Rosetta stability test configuration and sample data for mainnet and preprod by @linconvidal in #317
  • fix: missing txhash filtering on /block/transaction by @matiwinnetou in #323
  • feat: exposing configuration variables for yaci-store prunning inside of rosetta yaci indexer by @matiwinnetou in #321
  • feat: small scalability improvements for a typical exchange setup. by @matiwinnetou in #330
  • feat: dRep vote delegation support (transaction construction) by @matiwinnetou in #307
  • added below parameters to environment files in #321:
  • PRUNING_SAFE_BLOCKS=2160
  • PRUNING_INTERVAL=600

⚠️ Known Issue

  • #327: Transactions may become imbalanced when implicit fees differ from /construction/metadata. More details

ℹ️ Important Notice about CIP-129 Hash Prefix

CIP-129 hashes include a 1-byte prefix, resulting in a total length of 29 bytes. However, the rosetta-java API currently expects only a raw 28-byte hash for DRep keys and script hashes. When submitting transactions involving DRep keys or script hashes, ensure you’re using the correct 28-byte raw hash (remove the CIP-129 tag prefix byte) to avoid ledger validation errors.


Full Changelog: 1.2.3...1.2.4

1.2.3

05 Mar 14:00
dafd82c

Choose a tag to compare

What's Changed

  • feat: propagation supports is not recommended without open db transaction and can lead to connection leak issues. by @matiwinnetou in #309
  • chore: prepare 1.2.3 by @matiwinnetou in #310

⚠️ Known Issue

  • #327: Transactions may become imbalanced when implicit fees differ from /construction/metadata. More details

Full Changelog: 1.2.2...1.2.3

1.2.2

03 Mar 07:07
dc55d83

Choose a tag to compare

What's Changed

⚠️ Known Issue

  • Unbalanced transactions when using fixed fees different than suggested fee (#327)
    This version introduced an issue where the /construction/payloads endpoint may generate an imbalanced transaction when the implicit fee (calculated as the difference between inputs and outputs provided by the user) does not match the exact fee suggested by the /construction/metadata endpoint. This mainly affects use cases where transactions rely on manually-defined fixed fees rather than dynamically calculated fees returned by /metadata.

Full Changelog: 1.2.1...1.2.2

1.2.1

27 Feb 10:55
3e5c4db

Choose a tag to compare

What's Changed

  • feat: upgrade to the latest Cardano Client Lib, 0.6.3 which is Conway… by @matiwinnetou in #289
  • chore: docker standard env fixes. by @matiwinnetou in #291
  • added below parameters to environment files in #291 :

Full Changelog: 1.2.0...1.2.1

1.2.0

13 Feb 16:34
9e7f42a

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.1.5...1.2.0

1.1.5

09 Jan 05:57
28bcfa6

Choose a tag to compare

What's Changed

Full Changelog: 1.1.4...1.1.5

1.1.4

03 Jan 16:10
41dc9ed

Choose a tag to compare

What's Changed

  • update mithril to fix certificate hash unmatch error by @Kartiiyer12 in #266
  • Fix/indexer stopped due to wrong redeemer data by @Kammerlo in #267

Full Changelog: 1.1.3...1.1.4

1.1.3

17 Dec 16:29

Choose a tag to compare

What's Changed

  • fix: fixed the address search to use either .address or .accountIdentifier.address by @Kammerlo in #263
  • fix: added filtering for account/balance by @Kammerlo in #261
  • fix: fixed a mapping issue which left the protocolversion at null by @Kammerlo in #260

Full Changelog: 1.1.2...1.1.3