Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
6d6073f
refactor(stage): perform trie computation as separate task (#373)
kariy Dec 2, 2025
5a03c99
fixed blocks before fork
michalpalkowski Dec 7, 2025
7e90f21
refactor(stage): perform trie computation as separate task (#373)
kariy Dec 2, 2025
f84e884
del comments
michalpalkowski Dec 8, 2025
67d3ffd
del regression
michalpalkowski Dec 8, 2025
56f4bd6
changed insert api
michalpalkowski Dec 8, 2025
0be3ee6
hotfix(provider): pre-fork point contract state not being fetched cor…
kariy Dec 8, 2025
d55f84c
feat(trie): add revert functionality to state tries (#374)
kariy Dec 8, 2025
67ca465
fixed prop-tests
michalpalkowski Dec 10, 2025
eccac4f
feat(full-node): add state pruning mechanism to sync pipeline (#358)
kariy Dec 11, 2025
c057024
refactor(stage): run prune logic on blocking pool
kariy Dec 11, 2025
e2d164c
chore(stage): rename stage related types for coherency
kariy Dec 11, 2025
54daefb
chore(make): install `zlib` for snos deps
kariy Dec 11, 2025
61ba360
added e2e test
michalpalkowski Dec 11, 2025
934a478
fix(pipeline): rw transaction deadlock
kariy Dec 12, 2025
1fd4284
chore(pipeline): revert accidental removal of pipeline metric
kariy Dec 12, 2025
fe983d8
del comments
michalpalkowski Dec 12, 2025
79f6f49
fix
michalpalkowski Dec 12, 2025
2118840
improved e2e test setup
michalpalkowski Dec 12, 2025
c106d85
feat(tracing): output logs to file (#377)
kariy Dec 15, 2025
bbce8c4
fix(pipeline): pipeline waits on stale tip (#380)
kariy Dec 16, 2025
d3a91a8
feat: add migrated class hashes in state update (#379)
kariy Dec 16, 2025
071b268
fix(stage): extract execution resources from gateway type (#381)
kariy Dec 16, 2025
ea44e0d
fix(node): preconf watcher watch latest block + 1 (#382)
kariy Dec 16, 2025
16521bd
feat(primitives): deploy tx receipt (#383)
kariy Dec 18, 2025
48e9efd
fix(cli): merge explorer options from config file (#384)
kariy Dec 18, 2025
aafb4d5
feat: alias contract for stateful compression (#375)
chudkowsky Dec 18, 2025
dff8efc
refactor(node): restart chain tip watcher on error
kariy Dec 19, 2025
458efde
Merge branch 'main' into feature/forking
kariy Dec 19, 2025
b57e984
remove `*_with_proofs` TrieWriter methods
kariy Dec 19, 2025
23ed17f
refactor(primitives): define `felt!` macro locally (#390)
kariy Dec 25, 2025
080b39f
chore: remove `starknet-crypto` (#391)
kariy Dec 25, 2025
8f86123
refactor(primitives): remove usages of `short_string!` macro (#389)
kariy Dec 29, 2025
977dd0b
fix: system contract no class hash (#387)
kariy Dec 29, 2025
353efab
Merge branch 'main' into feature/forking
kariy Dec 30, 2025
6c7b33e
chore: bump Rust version in Dockerfile (#393)
kariy Dec 30, 2025
e897bbb
ci: install `caddy` via static binary
kariy Dec 30, 2025
89ec430
Update clippy and fmt version
kariy Dec 30, 2025
da32083
ci: run in bigger storage runner (#394)
kariy Dec 31, 2025
6295a24
chore: bump `blockifier` to `v0.16.0-rc.0` (#392)
kariy Jan 1, 2026
bba5909
ci: temporarily disable snos-integration-test job (#395)
kariy Jan 1, 2026
dca26b6
feat(rpc): update to Starknet JSON-RPC spec v0.10.0 (#385)
kariy Jan 1, 2026
45dfb37
feat(tee): add Trusted Execution Environment (TEE) attestation suppor…
tarrencev Jan 1, 2026
1925f76
ci: add release-tee workflow for reproducible TEE builds
kariy Jan 1, 2026
c6ddca2
chore: `felt!` macro cleanup (#396)
kariy Jan 2, 2026
7e2c2df
Add database path logging for sequencer node (#397)
kariy Jan 12, 2026
fdca5ae
ci: run test workflow on release branches (#401)
kariy Jan 28, 2026
99a4bb6
feat(rpc): implement `dev_setStorageAt` endpoint (#400)
kariy Jan 28, 2026
cf75664
ci: remove deprecated macos-13 runners from release workflow
kariy Jan 29, 2026
6285e60
Merge main into feature/forking
michalpalkowski Jan 29, 2026
54192fb
forking fix
michalpalkowski Feb 5, 2026
5b126e0
fix: fee tokens and starknet version for sepolia
michalpalkowski Feb 5, 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
17 changes: 13 additions & 4 deletions .github/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && \
libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 \
libxss1 libxtst6 lsb-release wget xdg-utils \
# Additional tools
gh libgmp3-dev software-properties-common curl git unzip bc \
gh libgmp3-dev curl git unzip bc \
debian-keyring debian-archive-keyring apt-transport-https \
# LLVM dependencies
llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 \
Expand Down Expand Up @@ -117,9 +117,18 @@ ENV PATH="$ASDF_DATA_DIR/shims:$PATH"
RUN asdf plugin add scarb && asdf install scarb 2.8.2 && asdf set scarb 2.8.2

# Install caddy
RUN curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && \
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list && \
apt update && apt install caddy && rm -rf /var/lib/apt/lists/*
ARG TARGETPLATFORM
RUN if [ "$TARGETPLATFORM" = "linux/arm64" ] ; then \
curl -L https://github.com/caddyserver/caddy/releases/download/v2.10.0/caddy_2.10.0_linux_arm64.tar.gz -o caddy.tar.gz && \
tar -xzf caddy.tar.gz caddy && \
mv caddy /usr/local/bin/ && \
rm caddy.tar.gz; \
elif [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \
curl -L https://github.com/caddyserver/caddy/releases/download/v2.10.0/caddy_2.10.0_linux_amd64.tar.gz -o caddy.tar.gz && \
tar -xzf caddy.tar.gz caddy && \
mv caddy /usr/local/bin/ && \
rm caddy.tar.gz; \
fi

# Set permissions
RUN chown -R root:root /usr/local/cargo && chmod -R 700 /usr/local/cargo
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-and-push-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ on:
- ".github/Dockerfile"

env:
RUST_VERSION: 1.86.0
CLIPPY_VERSION: nightly-2025-02-20
RUST_VERSION: 1.89.0
CLIPPY_VERSION: nightly-2025-06-20

jobs:
# Docker tag determination based on workflow trigger:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dockerfile-build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ on:
- ".github/Dockerfile"

env:
RUST_VERSION: 1.86.0
CLIPPY_VERSION: nightly-2025-02-20
RUST_VERSION: 1.89.0
CLIPPY_VERSION: nightly-2025-06-20

jobs:
build-dev-image:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,5 @@ jobs:
title: "release(prepare): v${{ steps.version_info.outputs.version }}"
commit-message: "release(prepare): v${{ steps.version_info.outputs.version }}"
branch: prepare-release
base: main
base: ${{ github.ref_name }}
delete-branch: true
125 changes: 125 additions & 0 deletions .github/workflows/release-tee.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: release-tee

on:
workflow_dispatch:
inputs:
tag:
description: "Release tag (e.g., v1.7.0). If empty, uses version from Cargo.toml"
type: string
required: false

env:
CARGO_TERM_COLOR: always

permissions:
id-token: write # OIDC token for Sigstore signing
attestations: write # Persist attestations
contents: write # Release artifact upload

jobs:
prepare:
runs-on: ubuntu-latest
outputs:
tag_name: ${{ steps.release_info.outputs.tag_name }}
steps:
- uses: actions/checkout@v4
- name: Get version
id: release_info
run: |
if [[ -n "${{ github.event.inputs.tag }}" ]]; then
echo "tag_name=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
else
cargo install cargo-get
echo "tag_name=v$(cargo get workspace.package.version)" >> $GITHUB_OUTPUT
fi

build-contracts:
runs-on: ubuntu-latest
needs: prepare
container:
image: ghcr.io/dojoengine/katana-dev:latest
steps:
- uses: actions/checkout@v4
- name: Build contracts
run: make contracts
- name: Upload contract artifacts
uses: actions/upload-artifact@v4
with:
name: contract-artifacts
path: ./crates/contracts/build
retention-days: 1

reproducible-build:
name: Reproducible TEE Build
needs: [prepare, build-contracts]
runs-on: ubuntu-latest-8-cores
outputs:
binary-hash: ${{ steps.hash.outputs.sha384 }}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Download contract artifacts
uses: actions/download-artifact@v4
with:
name: contract-artifacts
path: ./crates/contracts/build

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build reproducible binary
run: |
docker build \
-f reproducible.Dockerfile \
-t katana-reproducible:${{ needs.prepare.outputs.tag_name }} \
--build-arg SOURCE_DATE_EPOCH=$(git log -1 --format=%ct) \
--no-cache \
.

- name: Extract binary from container
run: |
docker create --name katana-extract katana-reproducible:${{ needs.prepare.outputs.tag_name }}
docker cp katana-extract:/katana ./katana-reproducible
docker rm katana-extract

- name: Calculate binary hash
id: hash
run: |
SHA384=$(sha384sum ./katana-reproducible | cut -d ' ' -f 1)
echo "sha384=${SHA384}" >> $GITHUB_OUTPUT
echo "Binary SHA-384: ${SHA384}"

- name: Archive reproducible binary
env:
VERSION_NAME: ${{ needs.prepare.outputs.tag_name }}
run: |
tar -czvf "katana_${VERSION_NAME}_linux_amd64_tee.tar.gz" katana-reproducible
sha384sum katana-reproducible > "katana_${VERSION_NAME}_linux_amd64_tee.sha384"

- name: Generate build provenance attestation
id: attest
uses: actions/attest-build-provenance@v2
with:
subject-path: ./katana-reproducible

- name: Upload release artifacts
uses: actions/upload-artifact@v4
with:
name: tee-release-artifacts
path: |
katana_${{ needs.prepare.outputs.tag_name }}_linux_amd64_tee.tar.gz
katana_${{ needs.prepare.outputs.tag_name }}_linux_amd64_tee.sha384

- name: Summary
run: |
echo "## TEE Reproducible Build Complete" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Version:** ${{ needs.prepare.outputs.tag_name }}" >> $GITHUB_STEP_SUMMARY
echo "**SHA-384:** \`${{ steps.hash.outputs.sha384 }}\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Verify Attestation" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "gh attestation verify ./katana-reproducible --repo ${{ github.repository }}" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
11 changes: 1 addition & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
types: [closed]
branches:
- main
- "release/**"

env:
RUST_VERSION: 1.86.0
Expand Down Expand Up @@ -98,16 +99,6 @@ jobs:
arch: arm64
svm_target_platform: linux-aarch64
native_build: false
- os: macos-13
platform: darwin
target: x86_64-apple-darwin
arch: amd64
native_build: true
- os: macos-13
platform: darwin
target: x86_64-apple-darwin
arch: amd64
native_build: false
- os: macos-latest-xlarge
platform: darwin
target: aarch64-apple-darwin
Expand Down
76 changes: 39 additions & 37 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- "release/**"
paths:
- "Cargo.toml"
- "bin/**/*.rs"
Expand Down Expand Up @@ -214,42 +215,43 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info

snos-integration-test:
needs: [fmt, clippy]
runs-on: ubuntu-latest-32-cores
timeout-minutes: 30
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false)
container:
image: ghcr.io/dojoengine/katana-dev:latest
env:
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
# Workaround for https://github.com/actions/runner-images/issues/6775
- run: git config --global --add safe.directory "*"

- uses: Swatinem/rust-cache@v2
with:
key: ci-${{ github.job }}
shared-key: katana-ci-cache

- name: Download test artifacts
uses: actions/download-artifact@v5
with:
name: test-artifacts

- name: Prepare SNOS test environment
run: |
if [ ! -d "./tests/snos/snos/build" ]; then
make snos-artifacts
fi

- run: |
cargo run -p snos-integration-test
# TODO: re-enable once the snos crate is added back to the workspace
# snos-integration-test:
# needs: [fmt, clippy]
# runs-on: ubuntu-latest-32-cores
# timeout-minutes: 30
# if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false)
# container:
# image: ghcr.io/dojoengine/katana-dev:latest
# env:
# MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
# LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
# TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# # Workaround for https://github.com/actions/runner-images/issues/6775
# - run: git config --global --add safe.directory "*"

# - uses: Swatinem/rust-cache@v2
# with:
# key: ci-${{ github.job }}
# shared-key: katana-ci-cache

# - name: Download test artifacts
# uses: actions/download-artifact@v5
# with:
# name: test-artifacts

# - name: Prepare SNOS test environment
# run: |
# if [ ! -d "./tests/snos/snos/build" ]; then
# make snos-artifacts
# fi

# - run: |
# cargo run -p snos-integration-test

explorer-reverse-proxy:
needs: [fmt, clippy, build-katana-binary]
Expand Down Expand Up @@ -344,7 +346,7 @@ jobs:

db-compatibility-check:
needs: [fmt, clippy, build-katana-binary]
runs-on: ubuntu-latest
runs-on: ubuntu-latest-4-cores
container:
image: ghcr.io/dojoengine/katana-dev:latest
steps:
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ tests/fixtures/db/*

crates/contracts/build/
!crates/contracts/build/legacy/
CONTEXT.md

**/.claude/settings.local.json
.cargo/
Loading