Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
5119e87
feat: fix create_bucket_with_storage extrinsic
danielbui12 May 27, 2026
8b2b806
feat: update pallet-storage-provider
danielbui12 May 28, 2026
c9d0edd
feat: add establish_storage_agreement with provider-signed terms
danielbui12 May 28, 2026
43eeb2e
feat: migrate request_agreement to establish_replica_agreement
danielbui12 May 28, 2026
8ab1797
test: update pallet tests for new agreement flow
danielbui12 May 28, 2026
583e1af
feat: update pallet storage provider benchmarks
danielbui12 May 28, 2026
2e10aac
feat: update pallet s3 registry
danielbui12 May 28, 2026
fd0bbef
feat: rewire pallet-drive-registry to signed-terms create_drive
danielbui12 May 28, 2026
a3fbf60
chore: update weights
danielbui12 May 28, 2026
82b5919
feat: rewire client SDK to signed-terms establish_storage_agreement
danielbui12 May 29, 2026
430f3ea
chore: update runtime weights
danielbui12 May 29, 2026
50f2394
feat: add negotiate endpoint and persistent nonce counter to provider…
danielbui12 May 29, 2026
52e3d59
feat: update full-flow papi example
danielbui12 May 29, 2026
4134f39
chore: fmt
danielbui12 May 29, 2026
00408be
chore: fmt
danielbui12 May 29, 2026
7aae4eb
Merge branch 'dev' into tung/create_bucket_with_storage_fixes
danielbui12 May 29, 2026
e36601c
feat: adopt storage-interfaces/file-system to new agreement flow
danielbui12 Jun 1, 2026
ebe02b7
feat: adopt storage-interfaces/s3 to new agreement flow
danielbui12 Jun 1, 2026
4726b1b
fix(bot): install missing `frame-omni-bencher` in CI for bench (#106)
ilchu May 29, 2026
07afc24
chore: fmt
danielbui12 Jun 1, 2026
c5e0c65
chore: fix tests
danielbui12 Jun 1, 2026
1440bba
feat: update demo lifecycle of s3 & drive registry
danielbui12 Jun 1, 2026
cd27041
MMerge remote-tracking branch 'origin/dev' into tung/create_bucket_wi…
danielbui12 Jun 1, 2026
ef2f8ae
feat: adpt examples to new agreement flow
danielbui12 Jun 1, 2026
522c53c
refactor(provider-node): drop disk-backed nonce file, bootstrap from …
danielbui12 Jun 3, 2026
daa524f
Merge remote-tracking branch 'origin/dev' into tung/create_bucket_wit…
danielbui12 Jun 3, 2026
bf8fb7b
refactor: rename replay-window anchor hwm -> hsn (high sequence nonce)
danielbui12 Jun 3, 2026
ab9cec5
Merge remote-tracking branch 'origin/dev' into tung/create_bucket_wit…
danielbui12 Jun 3, 2026
9dc759a
feat(precompiles): move bucket/drive creation to provider-signed term…
danielbui12 Jun 3, 2026
a119080
Rewire user-interface following new agreement flow changes (#111)
danielbui12 Jun 3, 2026
7195874
test(provider-node): derive expected /info provider id from signing seed
danielbui12 Jun 3, 2026
eadd3c4
chore(weights): regenerate weights for the signed-terms extrinsic sur…
danielbui12 Jun 3, 2026
48a0a66
feat(examples/papi): port smart-contract demos to the signed-terms flow
danielbui12 Jun 3, 2026
1266734
chore: make all tests passed
danielbui12 Jun 3, 2026
1e7da05
Merge remote-tracking branch 'origin/dev' into tung/create_bucket_wit…
danielbui12 Jun 3, 2026
bfef55c
chore: resolve user interface build
danielbui12 Jun 3, 2026
75b8f52
fix: widen replay window to 1024 bits
danielbui12 Jun 4, 2026
5f8ef54
feat: bind provider-signed agreement terms to a bucket id
danielbui12 Jun 4, 2026
4eb7cd2
feat: validate negotiate requests against on-chain provider settings
danielbui12 Jun 4, 2026
a198c5b
fix: return 503 with defined errors when /negotiate prerequisites are…
danielbui12 Jun 4, 2026
0603508
Merge remote-tracking branch 'origin/dev' into tung/create_bucket_wit…
danielbui12 Jun 4, 2026
bd659ef
feat: domain-separate primary and replica term signatures
danielbui12 Jun 4, 2026
17528eb
fix: send bigint terms fields as strings in /negotiate requests
danielbui12 Jun 4, 2026
1feb033
ci: register providers on-chain before starting provider nodes
danielbui12 Jun 4, 2026
2fc19cd
feat: update storage interface benchmarks
danielbui12 Jun 4, 2026
972d9c4
fix: examples smart contract ensure price_per_byte greater than provi…
danielbui12 Jun 4, 2026
2abee61
fix: update sc-api to ensure negotiate request body
danielbui12 Jun 4, 2026
a6f6a99
fix: update ci examples
danielbui12 Jun 4, 2026
86917bb
ci: register provider on-chain before starting provider node in ui-e2e
danielbui12 Jun 4, 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
31 changes: 20 additions & 11 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,14 +116,21 @@ jobs:
- name: Wait for parachain blocks
uses: ./.github/actions/wait-for-parachain

- name: Start provider (inmemory) and wait for health
- name: Register providers on-chain
run: |
echo "//Alice" > /tmp/alice-key && chmod 600 /tmp/alice-key
echo "//Charlie" > /tmp/charlie-key && chmod 600 /tmp/charlie-key
cargo run --release -p storage-client --example register_provider \
ws://127.0.0.1:2222 http://127.0.0.1:3333 /ip4/127.0.0.1/tcp/3333 /tmp/alice-key
cargo run --release -p storage-client --example register_provider \
ws://127.0.0.1:2222 http://127.0.0.1:3334 /ip4/127.0.0.1/tcp/3334 /tmp/charlie-key

- name: Start provider (inmemory) and wait for health
run: |
nohup ./target/release/storage-provider-node \
--keyfile /tmp/alice-key --storage-mode inmemory \
--bind-addr 0.0.0.0:3333 --chain-rpc ws://127.0.0.1:2222 \
--enable-agreement-coordinator --enable-checkpoint-coordinator \
> /tmp/provider.log 2>&1 &
--enable-checkpoint-coordinator > /tmp/provider-inmemory.log 2>&1 &
echo "Waiting for provider HTTP server..."
for i in $(seq 1 60); do
if curl -s http://127.0.0.1:3333/health | jq -e '.status' > /dev/null 2>&1; then
Expand All @@ -132,20 +139,18 @@ jobs:
fi
if [ "$i" -eq 60 ]; then
echo "Timeout: provider did not become healthy"
cat /tmp/provider.log || true
cat /tmp/provider-inmemory.log || true
exit 1
fi
sleep 2
done

- name: Start provider (disk) and wait for health
run: |
echo "//Charlie" > /tmp/charlie-key && chmod 600 /tmp/charlie-key
nohup ./target/release/storage-provider-node \
--keyfile /tmp/charlie-key --storage-mode disk --storage-path /tmp/provider-data \
--bind-addr 0.0.0.0:3334 --chain-rpc ws://127.0.0.1:2222 \
--enable-agreement-coordinator --enable-checkpoint-coordinator \
> /tmp/provider-disk.log 2>&1 &
--enable-checkpoint-coordinator > /tmp/provider-disk.log 2>&1 &
echo "Waiting for disk provider HTTP server..."
for i in $(seq 1 60); do
if curl -s http://127.0.0.1:3334/health | jq -e '.status' > /dev/null 2>&1; then
Expand Down Expand Up @@ -192,7 +197,7 @@ jobs:
name: integration-test-logs-${{ matrix.runtime.name }}
path: |
/tmp/zombienet.log
/tmp/provider.log
/tmp/provider-inmemory.log
/tmp/provider-disk.log
/tmp/zombie-*/*.log
/tmp/zombie-*/**/*.log
Expand Down Expand Up @@ -307,14 +312,18 @@ jobs:
- name: Wait for parachain blocks
uses: ./.github/actions/wait-for-parachain

- name: Start provider (inmemory) and wait for health
- name: Register provider on-chain
run: |
echo "//Alice" > /tmp/alice-key && chmod 600 /tmp/alice-key
cargo run --release -p storage-client --example register_provider \
ws://127.0.0.1:2222 http://127.0.0.1:3333 /ip4/127.0.0.1/tcp/3333 /tmp/alice-key

- name: Start provider (inmemory) and wait for health
run: |
nohup ./target/release/storage-provider-node \
--keyfile /tmp/alice-key --storage-mode inmemory \
--bind-addr 0.0.0.0:3333 --chain-rpc ws://127.0.0.1:2222 \
--enable-agreement-coordinator --enable-checkpoint-coordinator \
> /tmp/provider.log 2>&1 &
--enable-checkpoint-coordinator > /tmp/provider.log 2>&1 &
for i in $(seq 1 60); do
if curl -s http://127.0.0.1:3333/health | jq -e '.status' > /dev/null 2>&1; then
echo "Provider is healthy (attempt $i)"
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/ui-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,18 @@ jobs:
- name: Wait for parachain blocks
uses: ./.github/actions/wait-for-parachain

- name: Start provider (Alice, inmemory) and wait for health
- name: Register provider on-chain
run: |
echo "//Alice" > /tmp/alice-key && chmod 600 /tmp/alice-key
cargo run --release -p storage-client --example register_provider \
ws://127.0.0.1:2222 http://127.0.0.1:3333 /ip4/127.0.0.1/tcp/3333 /tmp/alice-key

- name: Start provider (Alice, inmemory) and wait for health
run: |
nohup ./target/release/storage-provider-node \
--keyfile /tmp/alice-key --storage-mode inmemory \
--bind-addr 0.0.0.0:3333 --chain-rpc ws://127.0.0.1:2222 \
--enable-agreement-coordinator --enable-checkpoint-coordinator \
> /tmp/provider.log 2>&1 &
--enable-checkpoint-coordinator > /tmp/provider.log 2>&1 &
for i in $(seq 1 60); do
if curl -s http://127.0.0.1:3333/health | jq -e '.status' > /dev/null 2>&1; then
echo "Provider healthy (attempt $i)"
Expand Down
29 changes: 29 additions & 0 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ scale-info = { version = "2.11.6", default-features = false, features = [
# External dependencies
serde = { version = "1.0", default-features = false, features = ["derive"] }
serde_json = { version = "1.0", default-features = false }
serde_with = { version = "3.20.0" }
tracing = { version = "0.1.41", default-features = false }
tracing-subscriber = { version = "=0.3.19" }

Expand Down
2 changes: 2 additions & 0 deletions client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@ description = "Client library for scalable Web3 storage"

[dependencies]
storage-primitives = { workspace = true, features = ["serde", "std"] }
codec = { workspace = true, features = ["std"] }
reqwest = { workspace = true }
serde = { workspace = true, features = ["std"] }
serde_json = { workspace = true }
serde_with = { workspace = true }
sp-core = { workspace = true, features = ["std"] }
sp-runtime = { workspace = true, features = ["std"] }
tokio = { workspace = true }
Expand Down
Loading
Loading