Skip to content

Releases: PiCoreTeam/pi-node-docker

organization-mainnet-v1.0-p21.2

26 Mar 16:05

Choose a tag to compare

How to Use

Fresh Installation

Check the Docker README documentation for Docker setup snippets and tips.

New containers are up and running from the start β€” no extra configuration needed.

Upgrading from Previous Version

Update the image in your docker compose file:

image: pinetwork/pi-node-docker:organization-mainnet-v1.0-p21.2

See this for an example of a docker-compose.yml.

Note: Auto-migrations are now enabled by default β€” migrations will run automatically. To opt out, pass --disable-auto-migrations.

Expected downtime
This release includes data migrations (003_fix_validator3_port, 004_deprecated_sql_ledger_state) that run automatically on container startup. Expect a brief service interruption during container restart while the migrations complete and the new binary initializes. No reingestion required. Usually completes in under 5 minutes; in rare cases, restarts may take longerβ€”please allow them to finish.

Docker container available at: pinetwork/pi-node-docker:organization-mainnet-v1.0-p21.2

Release Notes

Version Updates

Component Previous New
stellar-core 20.2.0-1720.34d82fc00.focal v21.2.0
horizon 2.30.0-436 v2.32.0

Changes

Build

  • Switched stellar-core and horizon from apt packages to source-built binaries using multi-stage Docker build
  • Added Dockerfile.core and Dockerfile.horizon to build from source
  • Added libc++ runtime libs (libc++1-12, libc++abi1-12, libunwind8) required by stellar-core built with clang
  • Removed stellar apt package installs from install script; binaries now copied from build stages

Configuration

  • Added DEPRECATED_SQL_LEDGER_STATE=false to default stellar-core.cfg (required by stellar-core 21.x)

Runtime

  • Auto-migrations are now enabled by default (ENABLE_AUTO_MIGRATIONS=true)
  • Added --disable-auto-migrations runtime flag to opt out
  • Kept --enable-auto-migrations flag for backward compatibility

Migrations

  • Added migration 003_fix_validator3_port: fixes wrong port for validator3 in stellar-core.cfg and stellar-core-captive.yml (31502 β†’ 31402)
  • Added migration 004_deprecated_sql_ledger_state: sets DEPRECATED_SQL_LEDGER_STATE=false in stellar-core.cfg for nodes upgrading from 20.x

organization-mainnet-v1.0-p20.2

03 Mar 17:43

Choose a tag to compare

How to Use

Fresh Installation

Check the Docker README documentation for Docker setup snippets and tips.

New containers automatically configure captive core on startup β€” no additional steps required.

Upgrading from Previous Version

Update the image in your docker compose file:

image: pinetwork/pi-node-docker:organization_mainnet-v1.0-p20.2

see this for an example of a docker-compose.yml

Expected downtime
This is a protocol upgrade only without the need of data migrations. Expect a brief service interruption during container restart while the new binary initializes.

Docker container available at: pinetwork/pi-node-docker:organization_mainnet-v1.0-p20.2

Release Notes

Version Updates

Component Previous New
stellar-core 19.9.0-1254.064a2787a.focal 20.2.0-1720.34d82fc00.focal

Changes

Build

  • Updated stellar-core to 20.2.0-1720.34d82fc00.focal

organization-mainnet-v1.0-p19.9

20 Feb 01:20

Choose a tag to compare

How to Use

Fresh Installation

Check the Docker README documentation for Docker setup snippets and tips.

New containers automatically configure captive core on startup β€” no additional steps required.

Upgrading from Previous Version

Update the image in your docker compose file:

image: pinetwork/pi-node-docker:organization_mainnet-v1.0-p19.9

Add --enable-auto-migrations flag to the starting command of the container, if needed:

command: ["--mainnet --enable-auto-migrations"]

Expected downtime
The captive core migration reconfigures Horizon to spawn stellar-core as a subprocess for ingestion, it also reingest the history. Expect several hours of service interruption while the migration applies.

To determine whether the migration is complete, compare your most recently ingested block number with the current latest block height on mainnet:

curl localhost:31401 |  grep ingest_latest_ledger
curl https://api.mainnet.minepi.com | tail ingest_latest_ledger

The migration is complete once the two block numbers match (within a tolerance of Β±1 block).

Alternative: Run migration script manually
If you don't want to enable auto migrations you can run the migration manually:

docker exec -it container_name /migrations/002_captive_core_migration.sh

FYI, Detailed explanation of migration: 002_captive_core_migration.md

Docker container available at: pinetwork/pi-node-docker:organization_mainnet-v1.0-p19.9

Release Notes

Version Updates

Component Previous New
stellar-core 19.6.0 19.9.0-1254.064a2787a.focal
horizon 2.23.1 2.30.0-436

New Features

Captive Core Ingestion

  • Horizon now spawns stellar-core as a subprocess for ingestion
  • Added pubnet/horizon/etc/stellar-core-captive.yml captive-core configuration
  • Added migrations/002_captive_core_migration.sh for migrating existing containers

Changes

Architecture

  • Removed testnet and testnet2 support β€” container now runs exclusively in mainnet mode

Configuration

  • Updated pubnet/horizon/etc/horizon.env with captive-core settings
  • Added pubnet/horizon/etc/stellar-core-captive.yml for captive-core ingestion
  • Network-specific horizon config overlay applied per-network on first init

Build

  • Updated horizon to 2.30.0-436
  • Update stellar-core to 19.9.0

Startup (start script)

  • Removed --testnet and --testnet2 flags; --mainnet is now the only supported network
  • Applied network-specific horizon config overlay on container initialization
  • Ensured correct permissions on captive-data directory at startup

Bug Fixes

  • Fixed stale postmaster.pid preventing PostgreSQL from starting after unclean container shutdown

Documentation

  • Updated README.md to reflect mainnet-only support
  • Added migrations/docs/002_captive_core_migration.md

organization-mainnet-v1.3-p19.6

04 Feb 17:47

Choose a tag to compare

How to Use

Fresh Installation

Check the README documentation for Docker setup snippets and tips.

Upgrading from Previous Version

Make two changes in your docker compose file.

Update the Image:

image: pinetwork/pi-node-docker:organization_mainnet-v1.3-p19.6

Add --enable-auto-migrations flag to the starting command of the container:

command: ["--mainnet --enable-auto-migrations"]

Expected downtime
This migration is straightforward but takes hours to complete. Do not perform it to all your nodes at the same time. Divert traffic away from your nodes while upgrading. Point to your other nodes or to https://api.mainnet.minepi.com/

To know when the migration finished, compare "ingest_latest_ledger" from your node (curl http://localhost:31401/ with the same value on https://api.mainnet.minepi.com/. When the two values are about the same, your node has finished migrating. Note that during the long migration process this number will not be gradually updating, it will only update at the very end of the process.

Done.

Alternative: Run migration script manually
If you don't want to enable auto migrations you can run the migration manually:

docker exec -it container_name ./migrations/migration_runner.sh

FYI, Detailed explanation of migration:
001_update_validator3.md

Docker container available at: pinetwork/pi-node-docker:organization_mainnet-v1.3-p19.6

Release Notes

New Features

Migration Scripts

  • Added --enable-auto-migrations flag to automatically run pending migrations on container startup
  • Added migrations/migration_runner.sh for executing configuration migrations
  • Added migrations/001_update_validator3.sh - updates validator3 node configuration
  • Migrations bundled into Docker image at build time

Changes

Architecture

  • Removed standalone network mode - only mainnet, testnet, testnet2 supported
  • Removed ephemeral mode - container always runs in persistent mode

PostgreSQL

  • Increased max_connections from 100 to 200 in common/postgresql/etc/postgresql.conf

Build

  • stellar-archivist now installed from apt instead of building from source
  • Removed Go installation from Dockerfile
  • Removed Dockerfile.testing and build-testing Makefile target
  • Removed Travis CI (.travis.yml, travis.go)
  • Updated image version to v1.3

Startup (start script)

  • Removed --standalone, --ephemeral, --captive-core, --manual-close flags
  • Simplified network validation logic
  • Removed .docker-ephemeral file creation

Bug Fixes

  • Fixed trailing space in archive URL (mirror_full_archive.sh)
  • Added user=root to [supervisord] section to suppress root execution warning

Documentation

  • Updated README.md with port mappings (31401:8000, 31402:31402, 31403:1570)
  • Added Docker Compose example configuration
  • Added migrations/README.md and migrations/docs/001_update_validator3.md

organization-testnet2-v1.1-p19.6

23 May 00:29

Choose a tag to compare

  • Fixed problem with starting local history server

organization-testnet2-v1.0-p19.6

30 Apr 20:43

Choose a tag to compare

  • Stellar Core upgrade to 19.6.0-1138.b3a6bc281.focal
  • Horizon upgrade to 2.23.1-320

organization-mainnet-v1.0-p19.6

30 Apr 20:41

Choose a tag to compare

  • Stellar Core upgrade to 19.6.0-1138.b3a6bc281.focal
  • Horizon upgrade to 2.23.1-320
  • Adds validator3
  • Adds history CDN for validators

relevant docker-compose image:
image: pinetwork/pi-node-docker:organization_mainnet-v1.2-p19.6

organization-mainnet-v1.1-p19.6

23 May 00:27
473bb5f

Choose a tag to compare

  • Fixed problem with starting local history server
  • Updated validator3