Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions .github/actions/install-rocksdb/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: "Install RocksDB dependencies"
description: "Install dependencies for RocksDB compilation"

runs:
using: "composite"
steps:
- name: Install LLVM/Clang for RocksDB
shell: bash
run: |
set -eux
sudo apt-get update
# Install clang/llvm for bindgen (needed for FFI bindings).
# RocksDB is compiled from source by librocksdb-sys.
sudo apt-get install -y clang llvm-dev libclang-dev
8 changes: 8 additions & 0 deletions .github/workflows/lint.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not loving the CI complexity.

Is the goal not to always have this enabled? When would we run a node without this once its working? I would imagine that CI caching should keep the compile times in check or no?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really hate the CI crap that's part of the PR.
The CI caching should keep the CI times in check, but right now rocksdb also compiles it's C/CXX dependency, which takes a while.

The rationale: It takes a while to compile rocksdb. If it's cached, it re-claims a good chunk of cache size. I don't necessarily want to cache this at all. I'd preferably link statically against host libraries (at least in CI), but this has proven itself to be fragile (llvm compiler version fun).

I am very open to suggestions how to handle this.

Also: Not a fan of GHA, it's a constrained dumpsterfire.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I simplified it to use host libraries. As said earlier, no good solutions, only trade-offs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Host libraries are too old on debian 🫠

Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@main
- name: Cleanup large tools for build space
uses: ./.github/actions/cleanup-runner
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
- name: Rustup
run: |
rustup update --no-self-update
Expand Down Expand Up @@ -87,6 +91,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@main
- name: Cleanup large tools for build space
uses: ./.github/actions/cleanup-runner
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
- name: Rustup
run: rustup update --no-self-update
- uses: Swatinem/rust-cache@v2
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/publish-debian-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ jobs:
uses: actions/checkout@main
with:
fetch-depth: 0
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
- name: Build and Publish Node
uses: ./.github/actions/debian
with:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/publish-debian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ jobs:
with:
fetch-depth: 0

- name: Install RocksDB
uses: ./.github/actions/install-rocksdb

- name: Build and Publish Packages
uses: ./.github/actions/debian
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/publish-dry-run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
fetch-depth: 0
- name: Cleanup large tools for build space
uses: ./.github/actions/cleanup-runner
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y jq
- name: Update Rust toolchain
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/publish-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ jobs:
with:
fetch-depth: 0
ref: main
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
# Ensure the release tag refers to the latest commit on main.
# Compare the commit SHA that triggered the workflow with the HEAD of the branch we just
# checked out (main).
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/stress-test-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,14 @@ env:
jobs:
stress-test-check:
name: stress-test-check
runs-on: ubuntu-24.04
timeout-minutes: 10
runs-on: Linux-ARM64-Runner
timeout-minutes: 20
steps:
- uses: actions/checkout@main
- name: Cleanup large tools for build space
uses: ./.github/actions/cleanup-runner
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
- name: Rustup
run: rustup update --no-self-update
- uses: Swatinem/rust-cache@v2
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test-beta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ jobs:
- uses: actions/checkout@v4
with:
ref: 'next'
- name: Cleanup large tools for build space
uses: ./.github/actions/cleanup-runner
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
- name: Rustup
run: rustup install beta && rustup default beta
- uses: taiki-e/install-action@v2
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@main
- name: Cleanup large tools for build space
uses: ./.github/actions/cleanup-runner
- name: Install RocksDB
uses: ./.github/actions/install-rocksdb
- name: Rustup
run: rustup update --no-self-update
- uses: Swatinem/rust-cache@v2
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
- Add optional `TransactionInputs` field to `SubmitProvenTransaction` endpoint for transaction re-execution (#[1278](https://github.com/0xMiden/miden-node/pull/1278)).
- Added `validator` crate with initial protobuf, gRPC server, and sub-command (#[1293](https://github.com/0xMiden/miden-node/pull/1293)).
- [BREAKING] Added `AccountTreeWithHistory` and integrate historical queries into `GetAccountProof` ([#1292](https://github.com/0xMiden/miden-node/pull/1292)).
- [BREAKING] Added `rocksdb` feature to enable rocksdb backends of `LargeSmt` ([#1326](https://github.com/0xMiden/miden-node/pull/1326)).
- [BREAKING] Handle past/historical `AccountProof` requests ([#1333](https://github.com/0xMiden/miden-node/pull/1333)).
- Implement `DataStore::get_note_script()` for `NtxDataStore` (#[1332](https://github.com/0xMiden/miden-node/pull/1332)).
- Started validating notes by their commitment instead of ID before entering the mempool ([#1338](https://github.com/0xMiden/miden-node/pull/1338)).
Expand Down
127 changes: 127 additions & 0 deletions Cargo.lock

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

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ miden-tx = { branch = "next", default-features = false, git = "http
miden-tx-batch-prover = { branch = "next", git = "https://github.com/0xMiden/miden-base.git" }

# Other miden dependencies. These should align with those expected by miden-base.
miden-air = { features = ["std", "testing"], version = "0.20" }
miden-air = { features = ["std", "testing"], version = "0.20" }
miden-crypto = { default-features = false, version = "0.19" }

# External dependencies
anyhow = { version = "1.0" }
Expand Down
3 changes: 2 additions & 1 deletion bin/node/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
FROM rust:1.90-slim-bullseye AS builder

# Install build dependencies. RocksDB is compiled from source by librocksdb-sys.
RUN apt-get update && \
apt-get -y upgrade && \
apt-get install -y llvm clang bindgen pkg-config libssl-dev libsqlite3-dev ca-certificates && \
apt-get install -y llvm clang libclang-dev pkg-config libssl-dev libsqlite3-dev ca-certificates && \
rm -rf /var/lib/apt/lists/*

WORKDIR /app
Expand Down
Loading