Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
17cacfe
feat(drive-abci,dashmate): seed Orchard shielded pool at SDK_TEST_DAT…
shumkov May 25, 2026
1725f59
feat(drive-abci): shielded-pool snapshot bake at image build, apply a…
shumkov May 25, 2026
0c0d399
feat(drive-abci): Phase 2 — frontier-less filler bulk-seed for fast b…
shumkov May 26, 2026
9adb779
Merge remote-tracking branch 'origin/v3.1-dev' into test/sheilded_tes…
shumkov May 26, 2026
0bd7056
fix(rs-platform-wallet): align shielded_sync test with bind_shielded …
shumkov May 26, 2026
fd5af62
feat(drive-abci): allow create_sdk_test_data on Devnet, not just Regtest
shumkov May 26, 2026
32beb34
feat(swift-sdk): shielded sync timing UI + raw-seed test wallet bind
shumkov May 26, 2026
e4b69db
feat(swift-sdk,rs-sdk-ffi): wire devnet through SDK with overridable …
shumkov May 26, 2026
46ab5c2
test(platform-wallet): paloma devnet shielded sync + persister diagno…
shumkov May 26, 2026
fe9b36a
feat(swift-sdk): preserve cold-sync duration + auto-discover DAPI fan…
shumkov May 26, 2026
6c68613
feat(shielded-sync): per-chunk progress callback end-to-end (P1.2)
shumkov May 26, 2026
76fb2bf
fix(shielded): rebind force-rescans + simpler devnet UX (P0.2)
shumkov May 27, 2026
1a744dd
Merge remote-tracking branch 'origin/v3.1-dev' into test/sheilded_tes…
shumkov May 27, 2026
b5950c3
Merge remote-tracking branch 'origin/v3.1-dev' into test/sheilded_tes…
shumkov May 27, 2026
4686094
chore(shielded): remove wallet A hardcoding from Swift + FFI
shumkov May 27, 2026
5c99351
test(platform-wallet): per-chunk timing + decrypt-throughput benches
QuantumExplorer May 27, 2026
8402d1d
style: cargo fmt --all across the workspace
QuantumExplorer May 27, 2026
0e683c4
feat(drive-abci): switch shielded-pool seed to grovedb append_many_raw
shumkov May 28, 2026
e8ca2c7
Merge remote-tracking branch 'origin/v3.1-dev' into test/sheilded_tes…
shumkov May 28, 2026
e0c381a
Merge remote-tracking branch 'origin/v3.1-dev' into test/sheilded_tes…
shumkov May 28, 2026
9ef8b71
refactor(drive-abci): pure-filler shielded seeder, batched by 10k
shumkov May 28, 2026
cf4d43a
fix(drive-abci): single end-of-bake commit_mmr for batched seed
shumkov May 28, 2026
beebc8e
Merge remote-tracking branch 'origin/v3.1-dev' into test/sheilded_tes…
shumkov May 28, 2026
8861763
perf(platform-wallet): WAL + sync=NORMAL for shielded commitment tree
QuantumExplorer May 28, 2026
eabb145
feat(platform): GetShieldedNotesCount RPC for sync progress total
QuantumExplorer May 28, 2026
709bef7
feat(shielded): interleave SDK fetch with wallet tree-append
QuantumExplorer May 29, 2026
458303c
feat(shielded): dual sync progress bars (downloaded + checked)
QuantumExplorer May 29, 2026
bbe1551
feat(shielded): surface notes total_count from the note-fetch proof
QuantumExplorer May 29, 2026
28834bf
Merge origin/v3.1-dev into test/sheilded_test_data
QuantumExplorer May 29, 2026
d8e1b91
fix(shielded): coherent dual progress bars + address PR review
QuantumExplorer May 30, 2026
1b39081
fix(shielded): use struct update syntax for max_concurrent
QuantumExplorer May 30, 2026
a81bbda
chore(coverage): ignore shielded snapshot tooling in codecov
QuantumExplorer May 30, 2026
1a073d8
fix(shielded): propagate clear/reset failures through FFI
QuantumExplorer May 30, 2026
f9f5f42
docs(shielded-ffi): document EventHandlerCallbacks ABI-growth constraint
QuantumExplorer May 30, 2026
115024f
fix(shielded): defer registry clear until store reset succeeds
QuantumExplorer May 30, 2026
ef371a9
test(shielded): cover clear() all-or-nothing store-reset contract
QuantumExplorer May 30, 2026
3fdc1b5
test(shielded): gate clear-failure test to unix
QuantumExplorer May 30, 2026
0cfb3a5
docs(shielded): drop scratch perf/follow-up notes from the PR
QuantumExplorer May 30, 2026
af24380
fix(shielded): keep Downloaded >= Checked on resumed syncs
QuantumExplorer May 30, 2026
2b312ab
fix(shielded): seed progress total from tree_size to keep Downloaded …
QuantumExplorer May 30, 2026
57af181
refactor(drive-abci): gate shielded snapshot tooling behind create_sd…
QuantumExplorer May 31, 2026
b635ffe
fix(platform-wallet-ffi): run full shutdown in manager_destroy
QuantumExplorer May 31, 2026
7b36f29
fix(swift-sdk): tie shielded completion suppression to a sync generation
QuantumExplorer May 31, 2026
0cfe6c8
fix(platform-wallet): quiesce sync managers on shutdown to close FFI UAF
QuantumExplorer May 31, 2026
be33d41
fix(swift-sdk): generation-guard the shielded progress callbacks
QuantumExplorer May 31, 2026
b5db278
fix(drive-abci): make shielded snapshot parent-leaf flags encoding in…
QuantumExplorer May 31, 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
5 changes: 5 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,11 @@ ignore:
- "packages/rs-drive-abci/src/mimic/**"
- "packages/rs-sdk-trusted-context-provider/**"
- "packages/rs-drive-abci/src/replay/**"
# Shielded-pool snapshot bake/apply tooling — only reachable via the
# `snapshot-bake` CLI subcommand (build-time) and the InitChain
# `DRIVE_SHIELDED_SNAPSHOT` env fast-path; both require full GroveDB genesis
# seeding and are exercised by create_genesis_state integration tests
- "packages/rs-drive-abci/src/shielded_snapshot/**"
# DPP signing test module — integration tests, not unit-testable
- "packages/rs-dpp/src/state_transition/state_transitions/address_funds/**/signing_tests.rs"
# Drive extra tests — integration tests in production code tree
Expand Down
38 changes: 23 additions & 15 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

61 changes: 56 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,12 @@
# - ALPINE_VERSION - use different version of Alpine base image; requires also rust:apline...
# image to be available
# - USERNAME, USER_UID, USER_GID - specification of user used to run the binary
# - SDK_TEST_DATA - set to `true` to create SDK test data on chain genesis. It should be used only for testing
# purpose in local development environment
# - SDK_TEST_DATA - set to `true` to create SDK test data on chain genesis.
# For local devnet workflows use `yarn dashmate config set
# platform.drive.abci.docker.build.buildArgs.SDK_TEST_DATA true` (the
# `yarn setup` script does this automatically for the `local` config) —
# do NOT pass it as a shell env. The value flows through dashmate ->
# docker-compose `build.args:` -> this ARG.
#
# # sccache cache backends
#
Expand Down Expand Up @@ -422,9 +426,11 @@ RUN --mount=type=secret,id=AWS \
# This will prebuild majority of dependencies
FROM deps AS build-drive-abci

# Pass SDK_TEST_DATA=true to create SDK test data on chain genesis
# This is only for testing purpose and should be used only for
# local development environment
# SDK_TEST_DATA is forwarded by dashmate from each `local_N` config's
# `platform.drive.abci.docker.build.buildArgs.SDK_TEST_DATA` field (set by
# `scripts/setup_local_network.sh` after `dashmate setup local`, as part of
# `yarn setup`). Do NOT set this via shell env — single source of truth is the
# dashmate config.
ARG SDK_TEST_DATA
ARG ADDITIONAL_FEATURES=""

Expand Down Expand Up @@ -554,6 +560,37 @@ RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOM
rm -rf /platform


#
# STAGE: BAKE SHIELDED-POOL SNAPSHOT
#
# Self-contained bake step: runs `drive-abci snapshot-bake` against a fresh
# in-container tempdir to produce /artifacts/shielded-pool.snap. The runtime
# image COPYs that file in and sets `DRIVE_SHIELDED_SNAPSHOT` so the
# InitChain hook applies it instead of running the runtime seeder.
#
# Skipped (file replaced with a sentinel) when SDK_TEST_DATA != "true", so
# production / non-SDK builds don't carry test data.
#
FROM build-drive-abci AS bake-shielded-snapshot

ARG SDK_TEST_DATA

# libgcc + libstdc++ for the dynamically-linked drive-abci binary (build
# stage's alpine image normally has them; explicit `apk add` is a no-op if
# already present).
RUN apk add --no-cache libgcc libstdc++

RUN set -ex; \
mkdir -p /artifacts; \
if [ "${SDK_TEST_DATA}" = "true" ]; then \
/artifacts/drive-abci snapshot-bake --out /artifacts/shielded-pool.snap ; \
ls -la /artifacts/shielded-pool.snap ; \
else \
echo "SDK_TEST_DATA != true; skipping shielded-pool snapshot bake" ; \
: > /artifacts/.no-shielded-snapshot ; \
fi


#
# STAGE: BUILD JAVASCRIPT INTERMEDIATE IMAGE
#
Expand Down Expand Up @@ -667,8 +704,22 @@ RUN mkdir -p /var/log/dash \
${REJECTIONS_PATH}

COPY --from=build-drive-abci /artifacts/drive-abci /usr/bin/drive-abci
COPY --from=bake-shielded-snapshot /artifacts/ /opt/dashmate/snapshots/
COPY packages/rs-drive-abci/.env.mainnet /var/lib/dash/rs-drive-abci/.env

# Only point InitChain's apply-side at the snapshot when the bake stage
# actually produced one (SDK_TEST_DATA=true). On the SDK_TEST_DATA=false
# branch the bake stage leaves only a `.no-shielded-snapshot` sentinel, so
# exporting DRIVE_SHIELDED_SNAPSHOT unconditionally would make
# create_data_for_shielded_pool try to apply a missing file and fail
# instead of falling back to the runtime seeder. We gate on the real file's
# existence (writing the var into the binary's .env, which is loaded via
# dotenvy and left unset otherwise so the seeder fallback runs).
RUN if [ -f /opt/dashmate/snapshots/shielded-pool.snap ]; then \
echo "DRIVE_SHIELDED_SNAPSHOT=/opt/dashmate/snapshots/shielded-pool.snap" \
>> /var/lib/dash/rs-drive-abci/.env ; \
fi

# Create a volume
VOLUME /var/lib/dash/rs-drive-abci/db
VOLUME /var/log/dash
Expand Down
Loading
Loading