Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
a1f6bf2
build: lint all scripts in CI and on pre-commit
kaimast May 13, 2026
57f751f
fix: ensure dev-on-prod works as expected
kaimast May 13, 2026
dcf721c
tweak: improve synchronization when disconnecting
ljedrz May 27, 2026
7e55531
tweak: relax connection accept backoff
ljedrz May 27, 2026
affaed8
tweak: guard against a niche underflow in CountingCodec
ljedrz May 27, 2026
95d1695
fix: bound the number of tasks spawned when accepting connections
ljedrz May 27, 2026
dbb252a
fix(cli): do not use empty path for endpoint
kaimast May 29, 2026
b3b3c7f
Initial plan
Copilot May 29, 2026
427debd
fix: source reported versions from release-version
Copilot May 29, 2026
a2a72fe
feat: RAII auto-disconnect + DisconnectOrigin
ljedrz Jun 2, 2026
8b56074
logs: notify on actual physical disconnect
ljedrz Jun 2, 2026
c4c94d7
tweak: apply review comments
ljedrz Jun 2, 2026
005cea1
Bump snarkVM and snarkOS version
vicsn Jun 3, 2026
6f74267
Merge remote-tracking branch 'origin/staging' into fix/hotswap-ledger
vicsn Jun 4, 2026
055fb2a
Install libclang-dev in circleci
vicsn Jun 4, 2026
b9f4063
Merge pull request #4266 from ProvableHQ/fix/hotswap-ledger
vicsn Jun 4, 2026
b18c186
Install missing deps for github workflows
vicsn Jun 4, 2026
7ee95f2
Merge pull request #4299 from ProvableHQ/fix_github_workflows
vicsn Jun 4, 2026
2f72a13
Merge remote-tracking branch 'origin/staging' into postrelease-merge-…
vicsn Jun 4, 2026
e914c14
Update Cargo.lock
vicsn Jun 4, 2026
2502648
Merge pull request #4298 from ProvableHQ/postrelease-merge-mainnet
vicsn Jun 4, 2026
96fa0cd
Initial plan
Copilot Jun 4, 2026
0eeb475
feat: enable telemetry by default build feature
Copilot Jun 4, 2026
531086a
docs: clarify telemetry default wording
Copilot Jun 4, 2026
0c9b543
Increase REST body limit
raychu86 Jun 4, 2026
5193362
Merge pull request #4302 from ProvableHQ/copilot/make-telemetry-defau…
vicsn Jun 4, 2026
a0d5706
Start consensus handlers only after CDN sync is complete
vicsn Jun 2, 2026
6e5a05f
Merge pull request #4293 from ProvableHQ/fix_cdn_sync
vicsn Jun 4, 2026
813f871
Increase REST body limit
raychu86 Jun 4, 2026
db69605
Merge pull request #4303 from ProvableHQ/feat/increase-rest-body-size
vicsn Jun 4, 2026
5c5ce41
Merge pull request #4276 from ProvableHQ/tweak/tcp_hardening_bits
vicsn Jun 5, 2026
254d3c1
Merge pull request #4294 from ProvableHQ/feat/disconnect_origin
vicsn Jun 5, 2026
3e3326b
feat: panic on startup if ulimit is low
ljedrz Jun 9, 2026
89ecb54
feat: enforce ulimit on startup, check fd use every 30s
ljedrz Jun 9, 2026
0899047
chore: adjust the lockfile
ljedrz Jun 9, 2026
dda8740
tweak: apply review comments
ljedrz Jun 9, 2026
e75a593
chore: adjust the lockfile
ljedrz Jun 9, 2026
b15030e
Initial plan
Copilot Jun 9, 2026
eac67c2
feat(rest): add POST endpoint to evaluate view functions at a given b…
Copilot Jun 9, 2026
968d622
fix: use /dev/fd for non-Linux Unix fd count, avoiding nix AsFd issue
Copilot Jun 10, 2026
59319e7
Update cli/src/helpers/fd_check.rs
ljedrz Jun 10, 2026
2e5adcb
Merge pull request #4287 from ProvableHQ/copilot/bugfix-registered-ve…
vicsn Jun 10, 2026
e07e968
Merge pull request #4308 from ProvableHQ/feat/stricter_fd_limit_checks
vicsn Jun 10, 2026
8a56f71
feat(rest): update snarkVM rev, add view-at-latest endpoint, extend d…
Copilot Jun 10, 2026
4caaa16
fix(rest): capture latest height inside spawn_blocking, rename view fn
Copilot Jun 10, 2026
ece5c23
logs: be more explicit about unexpected peer status during promotion
ljedrz Jun 10, 2026
0aca11f
Merge pull request #4313 from ProvableHQ/logs/more_explicit_peer_prom…
vicsn Jun 10, 2026
9d9305c
Apply remaining changes
Copilot Jun 12, 2026
8a6ccdb
Bump snarkVM and snarkOS version
vicsn Jun 12, 2026
0e4252b
Update Cargo.lock
vicsn Jun 12, 2026
8ad736d
Fix build
vicsn Jun 12, 2026
a73632f
Bump snarkVM rev and Message::VERSIONS
vicsn Jun 15, 2026
965c49a
Comment out unused test
vicsn Jun 15, 2026
94cfd20
Merge branch 'copilot/feature-expose-new-api-endpoint' into testnet
vicsn Jun 15, 2026
60d952b
Bump time libraries warned for by cargo audit
vicsn Jun 15, 2026
72daf11
Bump snarkVM rev
vicsn Jun 15, 2026
92b0589
Merge remote-tracking branch 'origin/staging' into testnet
vicsn Jun 15, 2026
4760005
Bump release version
vicsn Jun 15, 2026
519b23a
Surface rejection reasons endpoint
vicsn Jun 24, 2026
ce2a437
Resolve rejection reasons for both confirmed and unconfirmed transact…
vicsn Jun 24, 2026
9041f52
Bump release version
vicsn Jun 24, 2026
5dc1a9f
Merge pull request #4329 from ProvableHQ/expose_rejection_reasons_api
vicsn Jun 24, 2026
c37d657
Cargo audit fix
vicsn Jun 24, 2026
4ec48e2
Merge remote-tracking branch 'origin/testnet' into main_net_v48
vicsn Jun 28, 2026
3d1856a
Bump cargo release version
vicsn Jun 28, 2026
2803318
Bump snarkVM rev
vicsn Jun 28, 2026
bab98fc
Run extra CI
vicsn Jun 28, 2026
b5c3ea6
Bump Cargo.lock
vicsn Jun 28, 2026
88208d0
Run benchmarks
vicsn Jun 28, 2026
8625930
Update Message VERSIONS
vicsn Jun 29, 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
2 changes: 1 addition & 1 deletion .cargo/release-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v4.7.3
v4.8.0
3 changes: 2 additions & 1 deletion .ci/test_dev_on_prod_restart.sh
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,9 @@ function copy_setup_ledger() {

# Clear any state cached by a previous test run (proposal cache, dev committee state, etc.).
# The ledger we just copied is fresh, so any persisted dev state must be regenerated from it.
# Pass --node-data-storage so clean targets the same custom path start_dev_nodes uses.
for i in $(seq 0 $((NUM_DEV_NODES - 1))); do
snarkos clean "--dev=${i}" "--network=0"
snarkos clean "--dev=${i}" "--network=0" --node-data-storage "node-data-${i}"
done
}

Expand Down
75 changes: 75 additions & 0 deletions .ci/test_devnet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,10 @@ function main:
add r0 r1 into r2;
output r2 as u32.private;

view compute_sum:
add 1u32 2u32 into r0;
output r0 as u32.public;

constructor:
assert.eq true true;
" > program/main.aleo
Expand Down Expand Up @@ -187,6 +191,36 @@ else
exit 1
fi

# Query the view function at the latest height.
log "● Testing view function evaluation at latest height..."
view_response=$(curl -s -X POST \
-H "Content-Type: application/json" \
-d '[]' \
"http://localhost:3030/v2/$network_name/program/${program_name}/view/compute_sum")
view_output=$(jq -r '.[0]' <<< "$view_response")
if [ "$view_output" = "3u32" ]; then
log "✅ View function returned expected output at latest height: $view_output"
else
log "❌ Test failed! View function returned unexpected output at latest height: $view_response"
exit 1
fi

# Query the view function at a specific block height.
# Requires history feature.
# log "● Testing view function evaluation at specific block height..."
# current_height=$(curl -s "http://localhost:3030/v2/$network_name/block/height/latest")
# view_response=$(curl -s -X POST \
# -H "Content-Type: application/json" \
# -d '[]' \
# "http://localhost:3030/v2/$network_name/program/${program_name}/view/compute_sum/${current_height}")
# view_output=$(jq -r '.[0]' <<< "$view_response")
# if [ "$view_output" = "3u32" ]; then
# log "✅ View function returned expected output at height ${current_height}: $view_output"
# else
# log "❌ Test failed! View function returned unexpected output at height ${current_height}: $view_response"
# exit 1
# fi

# Execute a function in the deployed program and wait for the execution to be processed.
log "● Testing program execution with V2 API..."
execute_result=$(cd program && snarkos developer execute --dev-key 0 --network "$network_id" --broadcast --endpoint=http://localhost:3030 \
Expand Down Expand Up @@ -232,6 +266,47 @@ if [ "$rest_status" != "accepted" ]; then
exit 1
fi

log "✅ Confirmed transaction endpoint returned status \"accepted\""

# Broadcast a transfer_public with an impossibly large amount so the transaction is rejected on finalize.
log "● Testing transaction rejection reason endpoint..."
recipient=$(curl -s "http://$localhost:3030/v2/$network_name/committee/latest" | jq -r '.members | keys[1]')
if [ -z "$recipient" ] || [ "$recipient" = "null" ]; then
log "❌ Test failed! Could not retrieve a recipient address from the committee."
exit 1
fi

rejected_execute_result=$(snarkos developer execute --dev-key 0 --network "$network_id" \
--broadcast --endpoint="http://$localhost:3030" --wait --timeout 60 \
credits.aleo transfer_public "$recipient" 18446744073709551615u64)
rejected_tx=$(echo "$rejected_execute_result" | tail -n 1)

rest_rejected=$(curl -s "http://$localhost:3030/v2/$network_name/transaction/confirmed/$rejected_tx")
rest_status=$(jq --raw-output '.status' <<< "$rest_rejected")
if [ "$rest_status" != "rejected" ]; then
printf "❌ Test failed! Expected transaction to be rejected, but status was: \"%s\"\nFull JSON: %s\n" \
"$rest_status" "$rest_rejected"
exit 1
fi

rejection_reason=$(curl -s "http://$localhost:3030/v2/$network_name/transaction/rejected/$rejected_tx/reason")
rejection_reason_status=$(curl -s -o /dev/null -w "%{http_code}" \
"http://$localhost:3030/v2/$network_name/transaction/rejected/$rejected_tx/reason")
if (( rejection_reason_status != 200 )); then
log "❌ Test failed! Rejection reason endpoint returned $rejection_reason_status instead of 200: $rejection_reason"
exit 1
fi

rejection_type=$(jq --raw-output '.type' <<< "$rejection_reason")
rejection_program=$(jq --raw-output '.program_id' <<< "$rejection_reason")
rejection_resource=$(jq --raw-output '.resource' <<< "$rejection_reason")
if [ "$rejection_type" != "finalize" ] || [ "$rejection_program" != "credits.aleo" ] || [ "$rejection_resource" != "transfer_public" ]; then
log "❌ Test failed! Unexpected rejection reason: $rejection_reason"
exit 1
fi

log "✅ Rejection reason retrieved successfully for rejected transfer_public transaction"

log "ℹ️Testing REST API and REST Error Handling"

# Test invalid transaction data (JsonDataError) returns 422 Unprocessable Content
Expand Down
12 changes: 6 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ commands:
name: Install Debian packages
command: |
DEBIAN_FRONTEND=noninteractive sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y --no-install-recommends clang llvm-dev llvm lld pkg-config xz-utils make libssl-dev libssl-dev jq iproute2
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y --no-install-recommends clang libclang-dev llvm-dev llvm lld pkg-config xz-utils make libssl-dev libssl-dev jq iproute2
- restore_cache:
keys:
- << parameters.cache_key >>
Expand Down Expand Up @@ -760,7 +760,7 @@ jobs:
- run:
name: Lint scripts
command: |
shellcheck -x .ci/*.sh
shellcheck -x .ci/*.sh scripts/*.sh
- clear_environment:
cache_key: v4.2.0-rust-1.88.0-lint-scripts-cache

Expand Down Expand Up @@ -816,7 +816,7 @@ workflows:
filters:
branches:
only:
- test_fixed_dev_committee
- main_net_v48
- canary
- testnet
- mainnet
Expand All @@ -826,7 +826,7 @@ workflows:
filters:
branches:
only:
- release-mainnet-4.7.3
- main_net_v48
- canary
- testnet
- mainnet
Expand All @@ -836,7 +836,7 @@ workflows:
filters:
branches:
only:
- release-mainnet-4.7.3
- main_net_v48
- canary
- testnet
- mainnet
Expand All @@ -845,7 +845,7 @@ workflows:
filters:
branches:
only:
- release-mainnet-4.7.3
- main_net_v48
- canary
- testnet
- mainnet
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- 'staging'
- 'release-mainnet-4.7.3'
- 'main_net_v48'
workflow_dispatch:

jobs:
Expand All @@ -25,7 +25,7 @@ jobs:
- name: Install required Debian packages
run: |
sudo apt-get update
sudo apt-get install -y lld python3-pip
sudo apt-get install -y lld libclang-dev python3-pip

- name: Set up Python virtual environment
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
uses: dtolnay/rust-toolchain@stable

- name: Install required Debian pacakges
run: sudo apt install -y lld
run: sudo apt install -y lld libclang-dev

- name: Build snarkOS
run: |
Expand Down
2 changes: 1 addition & 1 deletion .rusty-hook.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[hooks]
pre-commit = "cargo clippy --workspace --all-targets --all-features -- -D warnings && cargo +nightly fmt --all -- --check"
pre-commit = "./scripts/lint.sh"

[logging]
verbose = true
Loading
Loading