Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
b4a4875
E2E workflow stub
shamil-gadelshin Feb 17, 2026
860aab9
Merge pull request #2428 from opentensor/e2e-workflow-stub
sam0x17 Feb 17, 2026
61d15e2
hoist crypto dependencies and add zeroize
l0r1s Feb 9, 2026
555aacb
introduce ShieldKeystore on node side
l0r1s Feb 9, 2026
8858849
add InherentDatapProvider for MEV shield
l0r1s Feb 9, 2026
b872011
add key rotation task on own block import
l0r1s Feb 9, 2026
b1fb00b
remove old author/proposer tasks
l0r1s Feb 9, 2026
a3db025
extract Executive Context
l0r1s Feb 9, 2026
fda9e85
remove keys default and swap safely
l0r1s Feb 9, 2026
d1ef7a9
make inherent public key possibly none in case of node failure
l0r1s Feb 9, 2026
b23a283
move shield client logic to own stc-shield crate
l0r1s Feb 9, 2026
0c4c7dc
added shield primitives crate (stp-shield)
l0r1s Feb 9, 2026
837b626
refactor MemoryShieldKeystore and implement ShieldKeystore
l0r1s Feb 9, 2026
3649fbb
fix types following stp-shield crate creation
l0r1s Feb 9, 2026
6c8a0fd
remove unused deps from node
l0r1s Feb 9, 2026
d4ea4bc
added subtensor primitives for I/O aka custom host functions (stp-io)
l0r1s Feb 9, 2026
c730f6f
fix imports and features
l0r1s Feb 9, 2026
0b3ffc3
stp-shield: added basic shield runtime API
l0r1s Feb 9, 2026
1ce48ca
fix type errors in node consensus
l0r1s Feb 9, 2026
cc96105
stp-io: aead_decrypt now returns Vec<u8> because unknown result size
l0r1s Feb 10, 2026
95a1be9
add SubtensorHostFunctions to node
l0r1s Feb 10, 2026
d7eb559
rework the pallet-shield
l0r1s Feb 10, 2026
aad59bb
implement stp_shield::ShieldApi Runtime API
l0r1s Feb 10, 2026
600a6af
pallet-shield: expose Current and Next keys
l0r1s Feb 10, 2026
31347e6
pallet-shield: tx ext to filter based on used key
l0r1s Feb 11, 2026
e24415d
pallet-shield: fix shielded transaction format
l0r1s Feb 11, 2026
33eb516
some renaming
l0r1s Feb 11, 2026
24989e6
fix some tx extensions org
l0r1s Feb 11, 2026
9ccfe1b
move ShieldedTransaction to shield/primitives
l0r1s Feb 11, 2026
5c17f8d
fix runtime API impl
l0r1s Feb 11, 2026
9555252
renaming
l0r1s Feb 12, 2026
2bb2648
simplify key rotation in pallet-shield
l0r1s Feb 13, 2026
d86ce0d
fix shield tx extension
l0r1s Feb 13, 2026
0acd062
types in stp-shield and more logging
l0r1s Feb 13, 2026
5a4c4fe
track CurrentKey and fix extension
l0r1s Feb 13, 2026
1f43c3e
added tests for MemoryShieldKeystore
l0r1s Feb 13, 2026
b65d190
added shielded_tx tests
l0r1s Feb 13, 2026
8e9a607
cargo fmt
l0r1s Feb 13, 2026
928c2ae
added shield extension tests
l0r1s Feb 13, 2026
d4bcc94
update comment
l0r1s Feb 13, 2026
0d9b364
added tests for pallet-shield
l0r1s Feb 13, 2026
88d07de
update workspace Cargo.toml
l0r1s Feb 14, 2026
bf1ec4d
fix Cargo.toml for pallet-shield and workspace
l0r1s Feb 14, 2026
ed8b1fb
move stp-shield/stc-shield to polkadot-sdk to avoid circular deps
l0r1s Feb 14, 2026
cc88c59
update benchmarks
l0r1s Feb 14, 2026
ca2152b
update Cargo.toml/lock
l0r1s Feb 14, 2026
4fe3441
added migration to clear old storage + tests
l0r1s Feb 16, 2026
4a57233
commit Cargo.lock
l0r1s Feb 16, 2026
301b9d5
cargo check
l0r1s Feb 16, 2026
b10a135
clippy fix
l0r1s Feb 16, 2026
7ad09d5
update fix_rust script to match CI
l0r1s Feb 16, 2026
935d3f3
fix clippy with expect used for the stp-io methods
l0r1s Feb 16, 2026
b913cd0
zepter fix
l0r1s Feb 16, 2026
4f72743
fix benchmark compilation issue with rand stuff
l0r1s Feb 16, 2026
9cd6e1a
use rand_chacha (portable + nostd) instead of OsRng in benchmarks
l0r1s Feb 17, 2026
34d8357
downgrade rand_chacha back to 0.3.1
l0r1s Feb 17, 2026
df0d064
fix compilation issues after cherrypick on devnet-ready
l0r1s Feb 17, 2026
9a08ef0
move CustomTransactionError to subtensor common
l0r1s Feb 18, 2026
0a5359b
added new custom transaction error for shielded txs
l0r1s Feb 18, 2026
aee4aa4
bump frontier and psdk deps
l0r1s Feb 18, 2026
e39bfe7
setup pnpm workspace for e2e
l0r1s Feb 18, 2026
5f656bf
added shared e2e package including node utils, chainspec and sequencer
l0r1s Feb 18, 2026
db4d93c
add helpers to e2e/shared/client
l0r1s Feb 18, 2026
47a6743
setup e2e/shield package for mev shields e2e tests
l0r1s Feb 18, 2026
d2bf68d
added e2e tests for shield
l0r1s Feb 18, 2026
7bd9825
add workflow to run e2e
l0r1s Feb 19, 2026
6a855c4
Merge branch 'devnet-ready' into mev-shield-rework
l0r1s Feb 19, 2026
f143f01
added missing readmes
l0r1s Feb 19, 2026
92751a5
Merge branch 'devnet-ready' into mev-shield-rework
l0r1s Feb 19, 2026
1a81775
move multiple tx in same block tests to basic/scaling
l0r1s Feb 19, 2026
c0b9a6f
fix rand crate api changes when upgrading
l0r1s Feb 19, 2026
a548094
split E2E into another PR
l0r1s Feb 19, 2026
d6f0293
remove e2e workflow
l0r1s Feb 19, 2026
a948c1c
Merge branch 'main' into mev-shield-rework
l0r1s Feb 19, 2026
6cb72db
fix clippy
l0r1s Feb 19, 2026
4e5f4d2
bump spec version to 381
l0r1s Feb 19, 2026
3bf35a3
fix benchmarks
l0r1s Feb 19, 2026
ee5e3df
fix benchmarks
l0r1s Feb 19, 2026
4e56a30
trigger ci
l0r1s Feb 23, 2026
c6291ed
set longevity to 3 for mev shield txs
l0r1s Feb 23, 2026
d9ec370
Revert "split E2E into another PR"
l0r1s Feb 20, 2026
69b2494
Revert "remove e2e workflow"
l0r1s Feb 20, 2026
5184e4b
convert from dedot to papi
l0r1s Feb 23, 2026
8ab3c45
change tmp dire to /tmp/subtensor-e2e
l0r1s Feb 24, 2026
d8b609b
added script to setup environment
l0r1s Feb 24, 2026
6c117e6
make bootstrap_types independent on papi
l0r1s Feb 24, 2026
83c7e61
added script to bootstrap a new package
l0r1s Feb 24, 2026
cef5609
added README
l0r1s Feb 24, 2026
abadfbc
update pnpm lock
l0r1s Feb 24, 2026
924dd1a
update README to add dep
l0r1s Feb 24, 2026
b77b7f7
build both binaries + bootstrap types in CI
l0r1s Feb 24, 2026
8977255
workflow run on PR
l0r1s Feb 24, 2026
dc780c3
fix polkadot-api issue
l0r1s Feb 24, 2026
1d0e621
update README
l0r1s Feb 24, 2026
ce18e97
compile only production and fast binaries
l0r1s Feb 25, 2026
e7f8f00
replace production build with release for e2e
l0r1s Feb 26, 2026
18ffc4a
fix binaries download error
l0r1s Feb 26, 2026
b840c2e
fix binaries download error 2
l0r1s Feb 26, 2026
8619e9a
remove renaming in workflow
l0r1s Feb 26, 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
144 changes: 144 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
name: E2E Tests

on:
pull_request:

workflow_dispatch:
inputs:
verbose:
description: "Output more information when triggered manually"
required: false
default: ""

env:
CARGO_TERM_COLOR: always

permissions:
contents: read

jobs:
# Build the node binary in both variants and share as artifacts.
build:
runs-on: [self-hosted, type-ccx33]
timeout-minutes: 60
strategy:
matrix:
include:
- variant: release
flags: ""
- variant: fast
flags: "--features fast-runtime"
env:
RUST_BACKTRACE: full
steps:
- name: Check-out repository
uses: actions/checkout@v4

- name: Install system dependencies
run: |
sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update
sudo DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y --no-install-recommends \
-o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \
build-essential clang curl git make libssl-dev llvm libudev-dev protobuf-compiler pkg-config

- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable

- name: Utilize Shared Rust Cache
uses: Swatinem/rust-cache@v2
with:
key: e2e-${{ matrix.variant }}
cache-on-failure: true

- name: Build node-subtensor (${{ matrix.variant }})
run: cargo build --profile release ${{ matrix.flags }} -p node-subtensor

- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: node-subtensor-${{ matrix.variant }}
path: target/release/node-subtensor
if-no-files-found: error

# Discover e2e packages that have a "test" script.
discover:
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.find.outputs.packages }}
steps:
- name: Check-out repository
uses: actions/checkout@v4
with:
sparse-checkout: e2e

- name: Find testable packages
id: find
working-directory: e2e
run: |
packages=$(
find . -maxdepth 2 -name package.json -not -path './node_modules/*' \
| while read -r pkg; do
name=$(jq -r '.name // empty' "$pkg")
has_test=$(jq -r '.scripts.test // empty' "$pkg")
if [ -n "$has_test" ] && [ -n "$name" ]; then
echo "$name"
fi
done \
| jq -R -s -c 'split("\n") | map(select(. != ""))'
)
echo "packages=$packages" >> "$GITHUB_OUTPUT"
echo "Discovered packages: $packages"

# Run each e2e package's tests in parallel.
test:
needs: [build, discover]
if: ${{ needs.discover.outputs.packages != '[]' }}
runs-on: [self-hosted, type-ccx33]
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.discover.outputs.packages) }}
name: "e2e: ${{ matrix.package }}"
steps:
- name: Check-out repository
uses: actions/checkout@v4

- name: Download release binary
uses: actions/download-artifact@v4
with:
name: node-subtensor-release
path: target/release

- name: Download fast binary
uses: actions/download-artifact@v4
with:
name: node-subtensor-fast
path: target/fast

- name: Make binaries executable
run: chmod +x target/release/node-subtensor target/fast/node-subtensor

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: e2e/.nvmrc

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Bootstrap papi types
working-directory: e2e
run: ./bootstrap_types.sh --skip-build

- name: Install e2e dependencies
working-directory: e2e
run: pnpm install --frozen-lockfile

- name: Run tests
working-directory: e2e
run: pnpm --filter ${{ matrix.package }} test
Loading
Loading