Skip to content

Conversation

@matiwinnetou
Copy link
Collaborator

No description provided.

Mateusz Czeladka and others added 15 commits November 4, 2025 15:41
Set PEER_DISCOVERY to false in the default docker-compose configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Implement support for Cardano Node 10.5.1 which uses Ouroboros Genesis consensus protocol.
This replaces bootstrap peers with big ledger peer snapshots for better decentralization.

Changes:
- Add PeerSnapshotService to load peers from Genesis peer snapshot files
- Create model classes for BigLedgerPool, PeerSnapshotConfig, and Relay
- Update TopologyConfigServiceImpl to use peer snapshots with bootstrap fallback
- Add support for domain, IPv4, IPv6, and address relay formats
- Update mainnet, preprod, and preview topology.json to use peer-snapshot.json
- Add comprehensive unit tests (16 test cases) using mainnet peer snapshot
- Keep devkit with bootstrap peers for backward compatibility

The implementation maintains dynamic peer discovery priority:
1. Try dynamically discovered peers from yaci-indexer (when enabled)
2. Fallback to static peers from peer-snapshot.json (Genesis mode)
3. Fallback to bootstrap peers (legacy mode)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>
Co-authored-by: Claude <noreply@anthropic.com>
- Bump version from 1.4.1 to 2.0.0-beta
- Update yaci-store from 0.1.5 to 2.0.0-beta4
- Update cardano-client-lib from 0.6.6 to 0.7.0
- Update yaci from 0.3.8 to 0.4.0-beta5
- Enable governance data support (Voltaire)
- Re-enable peer discovery in docker-compose config
- Simplify database migration for address_utxo index
- Remove maven.compiler.proc property

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…427)

* fix: enable peer discovery by default.

* refactor: remove assetName (#619)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>

* fix: symbol search will be now in hex, not ascii, which will support CIP-26, CIP-68 and other type of such assets. (#620)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>

* chore: upgrade cardano-node from 10.4.1 to 10.5.1 (#626)

Updates cardano-node version across Dockerfile, config files, and documentation to 10.5.1.

Key changes in 10.5.1:
- PeerSharing configuration behavior changes (default depends on BP vs relay)
- Networking improvements (DNS caching reduced to 15min, Windows socket fixes)
- Tracing system improvements for slotsMissed_int metric

Changes:
- Update CARDANO_NODE_VERSION build arg to 10.5.1 in both Dockerfiles
- Update MinNodeVersion to 10.5.0 in mainnet/preprod/preview configs
- Download official config.json, topology.json, checkpoints.json for all networks
- Download peer-snapshot.json for mainnet, preprod, and preview
- Keep hasPrometheus as 0.0.0.0 in all configs for metrics access
- Update version references in documentation and test configs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>
Co-authored-by: Claude <noreply@anthropic.com>

* chore: upgrade mithril from 2524.0 to 2537.0 (#630)

Updated Mithril version across all Docker and environment configuration files to use the latest release 2537.0.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>
Co-authored-by: Claude <noreply@anthropic.com>

* chore: update cardano-node version to 10.5.1 in remaining env files

Updated CARDANO_NODE_VERSION from 10.4.1 to 10.5.1 in additional environment configuration files that were missed in the previous upgrade.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: separate versions for cnode/mithril/pg in dockerhub

* chore: disable peer discovery by default

Set PEER_DISCOVERY to false in the default docker-compose configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: version upgrade to 1.4.1

Updated project version from 1.4.0 to 1.4.1 in pom.xml and README.md Docker run examples.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: update peer discovery and token registry config

- Remove outdated token registry comment from preprod config
- Change peer discovery initial delay from 1 to 5 minutes
- Refactor TimeUnit import to use static import for MINUTES

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: upgrade to version 2.0.0-beta with dependency updates

- Update project version to 2.0.0-beta
- Upgrade yaci-store to 2.0.0-beta4
- Upgrade cardano-client-lib to 0.7.0
- Upgrade yaci to 0.4.0-beta5
- Enable yaci-store-governance dependency for Voltaire support
- Enable peer discovery by default
- Remove maven.compiler.proc property

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: simplify Flyway migration for address_utxo index creation

Remove conditional check for index existence in migration script.
Flyway handles migration idempotency, so the explicit IF NOT EXISTS
check is unnecessary and can be simplified to a direct CREATE INDEX.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: standardize database schema to use public schema

Replace network-specific schemas (mainnet, preprod) with the public
schema consistently across all configurations.

Changes:
- Update DB_SCHEMA to 'public' in docker-compose and integration test configs
- Modify JDBC URLs to use currentSchema=public as default
- Update entrypoint.sh to set DB_SCHEMA=public instead of network name
- Fix UPDATE_GENESIS_BLOCK_QUERY to use quoted "public" schema

This simplifies database management by using a single schema regardless
of the network being used.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: VladislavKudrin <vladislavkudrin@gmail.com>
Update PostgreSQL version across all Docker configurations and builds.

Changes:
- Bump PG_VERSION_TAG from REL_14_11 to REL_18_0 in all env files
- Add libicu-dev and pkg-config dependencies for PostgreSQL 18 build
- Remove version directive from docker-compose-offline.yaml (deprecated)

PostgreSQL 18 provides improved performance, security updates, and
better support for modern database operations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>
Co-authored-by: Claude <noreply@anthropic.com>
Complete removal of single Docker deployment infrastructure and documentation.

Changes:
- Remove all single Docker deployment files (Dockerfile, entrypoint.sh, .env.dockerfile, readme.md)
- Delete deprecated single docker test results (versions 1.2.6, 1.2.7, 1.2.9)
- Update GitHub Actions to remove all-in-one Docker builds
- Update CLAUDE.md to remove single docker commands
- Update deployment documentation for Docker Compose only

This completes the transition to Docker Compose as the sole deployment method,
providing better modularity, scalability, and maintenance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>
Co-authored-by: Claude <noreply@anthropic.com>
Change the hardcoded retirement epoch from 19 to 2 to fix validation
errors on fresh devkit/testnet environments where current epoch is 0.

The Cardano protocol requires:
  current_epoch < retirement_epoch <= current_epoch + eMax (18)

With epoch 0, retirement epoch 19 exceeds the maximum allowed offset,
causing StakePoolRetirementWrongEpochPOOL validation errors.

Using epoch 2 provides a conservative offset that works on fresh chains
while still allowing successful pool retirement testing.

Changes:
- Update pool retirement epoch from 19 to 2 in PoolTransactions.java
- Update devkit genesis configuration and test data

Related error:
  StakePoolRetirementWrongEpochPOOL
  (Mismatch {mismatchSupplied = EpochNo 19, mismatchExpected = EpochNo 0})

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added README.md with instructions for connecting to the devkit H2 database,
including connection details and usage examples. Updated devkit database file.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Implements peer limiting and randomization to improve network peer distribution:
- Limits peer responses to 25 peers (configurable via MAX_PEERS constant)
- Randomizes peer selection on each load/discovery to avoid always returning the same peers
- Updates PeerSnapshotServiceImpl to shuffle and limit peers from snapshot files
- Updates PeerDiscoveryManager to shuffle and limit discovered peers from cardano-node
- Maintains deterministic in-memory cache between refreshes
- Updates tests to reflect new peer limiting and randomization behavior

This prevents excessive peer lists and naturally distributes connections across the network
without needing to track peer performance metrics.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
PEER_DISCOVERY is now disabled by default for mainnet deployments
to reduce unnecessary peer discovery is still in beta version. It remains enabled
for preprod environments where dynamic peer discovery is less risky.

Changes:
- Set PEER_DISCOVERY=false in .env.docker-compose (mainnet)
- Preprod configurations keep PEER_DISCOVERY=true
Release version 2.0.0 with peer discovery improvements:
- Limited peer responses to 25 peers with randomization
- Disabled PEER_DISCOVERY by default for mainnet
- Enabled PEER_DISCOVERY for preprod environments only

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
PostgreSQL 15+ changed the default security model where the PUBLIC role
no longer has CREATE privilege on the public schema. This caused Flyway
migrations to fail during integration tests with "permission denied for
schema public" errors.

Added explicit GRANT commands to:
- Grant all privileges on the public schema to the database user
- Grant privileges on all existing tables in the schema
- Set default privileges for future tables created in the schema

This fix ensures the yaci-indexer can successfully run database migrations
during Docker container initialization.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Reverting version back to 2.0.0-beta for continued development.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Regenerated all JOOQ table and record classes to reflect current database schema
with consistent formatting and field ordering.

Changes:
- Updated all JOOQ table classes (Transaction, Block, Address, AddressUtxo, etc.)
- Updated all JOOQ record classes with consistent getter/setter ordering
- Applied consistent code formatting across all generated files

Affected tables:
- Transaction and TransactionRecord
- Block, Address, AddressUtxo
- Delegation, StakeRegistration
- PoolRegistration, PoolRetirement
- Error, InvalidTransaction
- And all other schema tables (48 files total)

Generated from database schema using JOOQ code generator.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Mateusz Czeladka <mateusz.czeladka@cardanofoundation.org>
Co-authored-by: Claude <noreply@anthropic.com>
…dering

Changes:
- Modified Index 6: idx_transaction_slot_desc_tx_index_desc (replaces tx_hash with tx_index)
  - Query pattern: ORDER BY slot DESC, tx_index DESC
  - Provides deterministic pagination for /search/transactions
- Added Index 7: idx_transaction_block_hash_tx_index
  - Composite index on (block_hash, tx_index)
  - Ensures transactions within blocks are ordered correctly (0, 1, 2, ...)
  - Optimizes /block and /block/transaction endpoints

This prepares the database schema for Yaci-Store 2.0.0-beta tx_index column support.
Since 2.0.0 will reindex from genesis, no DROP INDEX or migration files needed.
Mateusz Czeladka and others added 3 commits November 6, 2025 22:13
Remove redundant idx_transaction_block_hash_tx_index index as the existing idx_transaction_slot_desc_tx_index_desc already provides efficient query performance for block transaction retrieval with proper ordering.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
… to ensure

transactions are ordered correctly within blocks (0, 1, 2, ...) and in search results.

Changes:
- Added txIndex field to TxnEntity JPA entity
- Updated JOOQ Transaction and TransactionRecord classes to include TX_INDEX field
- Modified TxRepositoryQueryBuilder to select and map tx_index in queries
- Updated search query ordering to use (slot DESC, tx_index DESC)
- Updated block transaction query to order by tx_index ASC

This ensures:
- Transactions within blocks are returned in correct order (0, 1, 2, ...)
- Search results maintain proper chronological and within-slot ordering
- Consistent pagination for /search/transactions API
- Proper ordering for /block and /block/transaction endpoints
@github-actions
Copy link
Contributor

github-actions bot commented Nov 7, 2025

✅ Preprod Tests: PASSED

📊 View Detailed Test Report

🔗 Action Run #86

Tests run against preprod network with live blockchain data

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants