Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5ed7ab3
add galexie service to quickstart
leighmcculloch Jan 6, 2026
f0bee43
add galexie integration test and configuration
leighmcculloch Jan 6, 2026
c5514e9
Add galexie image download step to build workflow
leighmcculloch Jan 6, 2026
2ecd82f
Fix execute permissions on galexie start script
leighmcculloch Jan 6, 2026
4367454
Add captive-core config for galexie
leighmcculloch Jan 6, 2026
5591db3
Add debug output for config response in galexie test
leighmcculloch Jan 6, 2026
8aea0e9
Fix JSON field names in ConfigFile struct to match actual response
leighmcculloch Jan 6, 2026
ecfaa32
Add more debug output to galexie test to diagnose file issues
leighmcculloch Jan 6, 2026
7f24e64
Add partition directory listing to debug galexie test
leighmcculloch Jan 6, 2026
7481313
Update galexie test to find any ledger file dynamically
leighmcculloch Jan 6, 2026
4e9aea8
Remove unused metadataFile variable
leighmcculloch Jan 6, 2026
cc97eb5
Fix galexie test file extension from .zstd to .zst
leighmcculloch Jan 6, 2026
e44bbd5
Fix metadata sidecar file test - use .metadata.json suffix
leighmcculloch Jan 6, 2026
e4a7a74
Clean up galexie test debug output
leighmcculloch Jan 6, 2026
31cb7d1
replace galexie version with image.json query
leighmcculloch Jan 6, 2026
2416ffb
Remove metadata sidecar test - filesystem datastore doesn't support m…
leighmcculloch Jan 6, 2026
487d6f1
Move galexie supervisor config to copy_defaults with other services
leighmcculloch Jan 6, 2026
faa9d31
remove galexie feature flag check
leighmcculloch Jan 6, 2026
d5016b2
Merge branch 'main' into galexie
leighmcculloch Jan 6, 2026
74e37a8
update meta-archive path to /opt/stellar/meta-archive/data
leighmcculloch Jan 7, 2026
7fe76f3
add meta-archive endpoint documentation
leighmcculloch Jan 7, 2026
79f4cda
add metaarchivehome variable and update directory setup
leighmcculloch Jan 7, 2026
8bd804d
reorder galexie initialization steps
leighmcculloch Jan 7, 2026
a952e65
add galexie to test matrix and remove duplicate configs
leighmcculloch Jan 7, 2026
9ea675a
rename meta-archive to ledger-meta-store
leighmcculloch Jan 8, 2026
c54a5a6
pin galexie to specific commit hash
leighmcculloch Jan 8, 2026
8dc55bd
Merge branch 'main' into galexie
leighmcculloch Jan 8, 2026
e4367f7
add galexie ledger meta exporter documentation
leighmcculloch Jan 8, 2026
51a9acd
add history-archive and ledger-meta-store ports
leighmcculloch Jan 8, 2026
1e38ba8
update galexie ref to v25.1.0
leighmcculloch Jan 8, 2026
3f5c906
update galexie ref to galexie-v25.1.0
leighmcculloch Jan 8, 2026
c67bb69
parameterize galexie captive core database path
leighmcculloch Jan 8, 2026
284da01
Merge branch 'main' into galexie
leighmcculloch Jan 8, 2026
ff4bdf8
Merge branch 'main' into galexie
leighmcculloch Jan 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ ARG HORIZON_IMAGE=stellar-horizon-stage
ARG FRIENDBOT_IMAGE=stellar-friendbot-stage
ARG RPC_IMAGE=stellar-rpc-stage
ARG LAB_IMAGE=stellar-lab-stage
ARG GALEXIE_IMAGE=stellar-galexie-stage

# xdr

Expand Down Expand Up @@ -183,6 +184,24 @@ COPY --from=stellar-lab-builder /lab/public /lab/public
COPY --from=stellar-lab-builder /lab/build/static /lab/public/_next/static
COPY --from=stellar-lab-builder /usr/local/bin/node /node

# galexie

FROM golang:1.24-trixie AS stellar-galexie-builder

ARG GALEXIE_REPO
ARG GALEXIE_REF

WORKDIR /src
RUN git clone https://github.com/${GALEXIE_REPO} /src
RUN git fetch origin ${GALEXIE_REF}
RUN git checkout ${GALEXIE_REF}
ENV CGO_ENABLED=0
RUN go build -o /galexie .

FROM scratch AS stellar-galexie-stage

COPY --from=stellar-galexie-builder /galexie /galexie

# quickstart

FROM $XDR_IMAGE AS xdr
Expand All @@ -191,6 +210,7 @@ FROM $HORIZON_IMAGE AS horizon
FROM $FRIENDBOT_IMAGE AS friendbot
FROM $RPC_IMAGE AS rpc
FROM $LAB_IMAGE AS lab
FROM $GALEXIE_IMAGE AS galexie

FROM ubuntu:24.04 AS quickstart

Expand All @@ -216,6 +236,7 @@ COPY --from=friendbot /friendbot /usr/local/bin/friendbot
COPY --from=rpc /stellar-rpc /usr/bin/stellar-rpc
COPY --from=lab /lab /opt/stellar/lab
COPY --from=lab /node /usr/bin/
COPY --from=galexie /galexie /usr/bin/galexie

RUN adduser --system --group --quiet --home /var/lib/stellar --disabled-password --shell /bin/bash stellar;

Expand Down
7 changes: 7 additions & 0 deletions common/galexie/bin/start
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#! /bin/bash

set -e
set -o pipefail

echo "starting galexie..."
exec /usr/bin/galexie append --start 2 --config-file /opt/stellar/galexie/etc/galexie.toml
25 changes: 25 additions & 0 deletions images.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@
"name": "lab",
"repo": "stellar/laboratory",
"ref": "main"
},
{
"name": "galexie",
"repo": "stellar/stellar-galexie",
"ref": "add-filesystem-datastore-support"
}
],
"tests": {
Expand Down Expand Up @@ -108,6 +113,11 @@
"name": "lab",
"repo": "stellar/laboratory",
"ref": "main"
},
{
"name": "galexie",
"repo": "stellar/stellar-galexie",
"ref": "add-filesystem-datastore-support"
}
],
"tests": {
Expand Down Expand Up @@ -175,6 +185,11 @@
"name": "lab",
"repo": "stellar/laboratory",
"ref": "21cc0d0b9080e664b9dbfae5713d9c7615613729"
},
{
"name": "galexie",
"repo": "stellar/stellar-galexie",
"ref": "add-filesystem-datastore-support"
}
],
"tests": {
Expand Down Expand Up @@ -230,6 +245,11 @@
"name": "lab",
"repo": "stellar/laboratory",
"ref": "main"
},
{
"name": "galexie",
"repo": "stellar/stellar-galexie",
"ref": "main"
}
],
"tests": {
Expand Down Expand Up @@ -286,6 +306,11 @@
"name": "lab",
"repo": "stellar/laboratory",
"ref": "main"
},
{
"name": "galexie",
"repo": "stellar/stellar-galexie",
"ref": "main"
}
],
"tests": {
Expand Down
21 changes: 21 additions & 0 deletions local/galexie/etc/galexie.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Galexie Configuration for Local Network

# Admin port configuration
admin_port = 6062

# Datastore Configuration
[datastore_config]
type = "Filesystem"

[datastore_config.params]
destination_path = "/tmp/stellar-core/meta-archive"

[datastore_config.schema]
ledgers_per_file = 1
files_per_partition = 64000

# Stellar-core Configuration
[stellar_core_config]
network_passphrase = "__NETWORK__"
history_archive_urls = ["http://localhost:1570"]
stellar_core_binary_path = "/usr/bin/stellar-core"
5 changes: 5 additions & 0 deletions local/nginx/etc/conf.d/meta-archive.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
location /meta-archive {
rewrite /meta-archive/(.*) /$1 break;
proxy_pass http://127.0.0.1:1571;
proxy_redirect off;
}
9 changes: 9 additions & 0 deletions local/supervisor/etc/supervisord.conf.d/galexie.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[program:galexie]
user=stellar
directory=/opt/stellar/galexie
command=/opt/stellar/galexie/bin/start
autostart=false
startretries=50
autorestart=true
priority=70
redirect_stderr=true
9 changes: 9 additions & 0 deletions local/supervisor/etc/supervisord.conf.d/meta-archive.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[program:meta-archive]
user=stellar
directory=/tmp/stellar-core/meta-archive
command=/usr/bin/python3 -m http.server 1571
autostart=true
autorestart=true
startretries=100
priority=10
redirect_stderr=true
55 changes: 55 additions & 0 deletions start
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export FBHOME="$STELLAR_HOME/friendbot"
export LABHOME="$STELLAR_HOME/lab"
export NXHOME="$STELLAR_HOME/nginx"
export STELLAR_RPC_HOME="$STELLAR_HOME/stellar-rpc"
export GALEXIEHOME="$STELLAR_HOME/galexie"

export CORELOG="/var/log/stellar-core"

Expand All @@ -32,6 +33,7 @@ export PROTOCOL_VERSION_DEFAULT="$(< /image.json jq -r '.config.protocol_version
: "${ENABLE_CORE:=false}"
: "${ENABLE_HORIZON:=false}"
: "${ENABLE_LAB:=false}"
: "${ENABLE_GALEXIE:=false}"
# TODO: Remove once the Soroban RPC name is fully deprecated
: "${ENABLE_SOROBAN_RPC:=false}"
: "${ENABLE_RPC:=$ENABLE_SOROBAN_RPC}"
Expand Down Expand Up @@ -61,6 +63,10 @@ function validate_before_start() {
echo "--randomize-network-passphrase is only supported in the local network" >&2
exit 1
fi
if [ "$NETWORK" != "local" ] && [ "$ENABLE_GALEXIE" = "true" ]; then
echo "--enable galexie is only supported in the local network" >&2
exit 1
fi
if [ "$NETWORK" = "local" ] && [ "$DISABLE_SOROBAN_DIAGNOSTIC_EVENTS" = "false" ]; then
ENABLE_SOROBAN_DIAGNOSTIC_EVENTS=true
fi
Expand Down Expand Up @@ -94,6 +100,8 @@ function start() {
echo " $(< /image.json jq -r '.deps[] | select(.name == "friendbot") | "\(.ref) (\(.sha))"')"
echo " lab:"
echo " $(< /image.json jq -r '.deps[] | select(.name == "lab") | "\(.ref) (\(.sha))"')"
echo " galexie:"
echo "$(galexie version | sed 's/^/ /')"

echo "mode: $STELLAR_MODE"
echo "network: $NETWORK"
Expand All @@ -112,6 +120,7 @@ function start() {
init_horizon
copy_pgpass
init_stellar_rpc
init_galexie

stop_postgres # this gets started in init_db

Expand Down Expand Up @@ -219,6 +228,10 @@ function process_args() {
ENABLE_LAB=true
fi

if [[ ",$ENABLE," = *",galexie,"* ]]; then
ENABLE_GALEXIE=true
fi

case "$NETWORK" in
testnet)
export NETWORK_PASSPHRASE="Test SDF Network ; September 2015"
Expand Down Expand Up @@ -389,6 +402,19 @@ function copy_defaults() {
$CP /opt/stellar-default/$NETWORK/nginx/ $NXHOME
fi
fi

if [ -d $GALEXIEHOME/etc ]; then
echo "galexie: config directory exists, skipping copy"
else
$CP /opt/stellar-default/common/galexie/ $GALEXIEHOME
if [ -d /opt/stellar-default/$NETWORK/galexie/ ]; then
$CP /opt/stellar-default/$NETWORK/galexie/ $GALEXIEHOME
fi
if [ "$ENABLE_GALEXIE" = "true" ]; then
cp /opt/stellar-default/$NETWORK/supervisor/etc/supervisord.conf.d/galexie.conf $SUPHOME/etc/supervisord.conf.d 2>/dev/null || true
cp /opt/stellar-default/$NETWORK/supervisor/etc/supervisord.conf.d/meta-archive.conf $SUPHOME/etc/supervisord.conf.d 2>/dev/null || true
fi
fi
}

function copy_pgpass() {
Expand Down Expand Up @@ -574,6 +600,31 @@ function init_stellar_rpc() {
popd
}

function init_galexie() {
if [ "$ENABLE_GALEXIE" != "true" ]; then
return 0
fi

if [ -f $GALEXIEHOME/.quickstart-initialized ]; then
echo "galexie: already initialized"
return 0
fi

pushd $GALEXIEHOME

# Create meta archive directory
mkdir -p /tmp/stellar-core/meta-archive

# Configure galexie
perl -pi -e "s/__NETWORK__/$NETWORK_PASSPHRASE/g" etc/galexie.toml

run_silent "init-galexie" chown -R stellar:stellar .
run_silent "init-galexie-meta-archive" chown -R stellar:stellar /tmp/stellar-core/meta-archive

touch .quickstart-initialized
popd
}

function kill_supervisor() {
kill -3 $(cat "/var/run/supervisord.pid")
}
Expand Down Expand Up @@ -704,6 +755,10 @@ function start_optional_services() {
if [ "$ENABLE_LAB" == "true" ]; then
supervisorctl start stellar-lab
fi

if [ "$ENABLE_GALEXIE" == "true" ]; then
supervisorctl start galexie
fi
}

function exec_supervisor() {
Expand Down
Loading