Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

light-client: Add experimental light-client support #965

Merged
merged 88 commits into from
Jun 26, 2023
Merged
Show file tree
Hide file tree
Changes from 77 commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
68e239a
rpc/types: Decode `SubstrateTxStatus` for substrate and smoldot
lexnv May 18, 2023
e54aa6a
lightclient: Add light client Error
lexnv May 18, 2023
aaace2c
lightclient: Add background task to manage RPC responses
lexnv May 18, 2023
e9a6491
lightclient: Implement the light client RPC in subxt
lexnv May 18, 2023
2efdef1
subxt: Expose light client under experimental feature-flag
lexnv May 18, 2023
f715092
artifacts: Add development chain spec for local nodes
lexnv May 18, 2023
0dc47f2
Update cargo lock
lexnv May 18, 2023
d59a331
examples: Add light client example
lexnv May 18, 2023
d25c133
Update sp-* crates and smoldot to use git with branch / rev
lexnv May 22, 2023
96b428c
Apply cargo fmt
lexnv May 22, 2023
5a04b21
Fix clippy
lexnv May 22, 2023
4140615
Import hashmap entry
lexnv May 22, 2023
c6668f6
lightclient: Fetch spec only if jsonrpsee feature is enabled
lexnv May 22, 2023
890a0e1
Update subxt/src/rpc/lightclient/background.rs
lexnv May 22, 2023
5b15e2d
Fix typo
lexnv May 22, 2023
01549d0
artifacts: Update dev chain spec
lexnv May 25, 2023
922e19a
types: Handle storage replies from chainHead_storage
lexnv May 25, 2023
14b6013
artifacts: Add polkadot spec
lexnv May 25, 2023
c241506
lightclient: Handle RPC error responses
lexnv May 25, 2023
973c423
examples: Tx basic with light client for local nodes
lexnv May 25, 2023
1ba4b82
example: Light client coprehensive example for live chains
lexnv May 25, 2023
e470006
examples: Remove prior light client example
lexnv May 25, 2023
f33d4cf
feature: Rename experimental to unstable
lexnv May 25, 2023
b4c818c
Merge remote-tracking branch 'origin/master' into lexnv/light_client_…
lexnv May 25, 2023
8600842
book: Add light client section
lexnv May 25, 2023
8624d72
testing: Fix clippy
lexnv May 25, 2023
5aa0ac8
lightclient: Ignore validated events
lexnv May 25, 2023
d6f69ef
Adjust tests for light-clients and normal clients
lexnv May 25, 2023
f405c89
testing: Keep lightclient variant
lexnv May 25, 2023
8e46da7
Remove support for chainHead_storage for light client
lexnv May 25, 2023
df12146
Update light client to point to crates.io
lexnv May 26, 2023
c03a93e
Merge remote-tracking branch 'origin/master' into lexnv/light_client_…
lexnv May 31, 2023
77cfeb7
Update sp-crates from crates.io
lexnv May 31, 2023
20f314b
Replace Atomic with u64
lexnv Jun 14, 2023
d4095a3
Add LightClientBuilder
lexnv Jun 14, 2023
be80883
Adjust chainspec with provided bootnodes
lexnv Jun 14, 2023
a010ace
Add potential_relay_chains to light client builder
lexnv Jun 14, 2023
3141161
Merge remote-tracking branch 'origin/lexnv/light_client_support' into…
lexnv Jun 14, 2023
4780966
Move the light-client to the background task
lexnv Jun 15, 2023
86344e7
Adjust tracing logs
lexnv Jun 15, 2023
9d7e452
Merge remote-tracking branch 'origin/master' into lexnv/light_client_…
lexnv Jun 15, 2023
b8678df
Update book and example
lexnv Jun 15, 2023
e8abb7c
Apply cargo fmt
lexnv Jun 15, 2023
f3f7bc5
Remove dev_spec.json artifact
lexnv Jun 15, 2023
65dbf3d
Examples fix duplicate Cargo.toml
lexnv Jun 15, 2023
2069d53
Use tracing_subscriber crate
lexnv Jun 15, 2023
ddcd5a1
Fix clippy for different features
lexnv Jun 16, 2023
e4757ae
Add comment about bootNodes
lexnv Jun 16, 2023
2421005
Add comment about tracing-sub dependency
lexnv Jun 16, 2023
a0a716d
Run integration-tests with light-client
lexnv Jun 20, 2023
2b2cd40
Feature guard some incompatible tests
lexnv Jun 20, 2023
8247481
ci: Enable light-client tests under feature flag
lexnv Jun 20, 2023
7843be6
Merge remote-tracking branch 'origin/master' into lexnv/light_client_…
lexnv Jun 20, 2023
5f9050c
ci: Fix git step name
lexnv Jun 20, 2023
a646d32
Adjust flags for testing
lexnv Jun 20, 2023
f8a4ac0
Adjust warnings
lexnv Jun 20, 2023
51aec8d
Rename feature flag jsonrpsee-ws to jsonrpsee
lexnv Jun 21, 2023
88447d4
Fix cargo check
lexnv Jun 21, 2023
a167609
ci: Run tests on just 2 threads
lexnv Jun 21, 2023
24aaeee
Move light-client to subxt/src/client
lexnv Jun 21, 2023
90b455d
Adjust LightClientBuilder
lexnv Jun 21, 2023
97d983c
Use ws_url to construct light client for testing
lexnv Jun 21, 2023
27172e7
Refactor background
lexnv Jun 21, 2023
f4e893a
Address feedback
lexnv Jun 21, 2023
7421e25
Remove polkadot.spec and trim sub_id
lexnv Jun 21, 2023
97ce4b2
Wait for substrate to produce block before connecting light client
lexnv Jun 21, 2023
0be66ff
Adjust builder and tests
lexnv Jun 21, 2023
7ec3302
Merge remote-tracking branch 'origin/master' into lexnv/light_client_…
lexnv Jun 21, 2023
aa6ef52
Apply fmt
lexnv Jun 21, 2023
bbd5474
ci: Use release for light client testing
lexnv Jun 21, 2023
3b8b21a
Add single test for light-client
lexnv Jun 22, 2023
608e225
Wait for more blocks
lexnv Jun 22, 2023
56ba7dc
Use polkadot endpoint for testing
lexnv Jun 22, 2023
21ebb6d
Adjust cargo check
lexnv Jun 22, 2023
45d35c1
examples: Remove light client chain connection example
lexnv Jun 22, 2023
c5054ed
Adjust cargo.toml section for the old example
lexnv Jun 22, 2023
32b9212
Adjust background task to use usize for subscription Id
lexnv Jun 23, 2023
e84cc09
Build bootnodes with serde_json::Value directly
lexnv Jun 23, 2023
0bde689
Make channel between subxt user and subxt background unbounded
lexnv Jun 23, 2023
4d53500
Update subxt/src/client/lightclient/builder.rs
lexnv Jun 23, 2023
0adfed4
Switch to smoldot 0.6.0 from 0.5.0
lexnv Jun 23, 2023
3f01f92
Move testing to `full_client` and `light_client` higher modules
lexnv Jun 23, 2023
5b586a5
Remove subscriptionID type
lexnv Jun 26, 2023
836c173
Remove subxt/integration-testing feature flag
lexnv Jun 26, 2023
1497478
Adjust wait_for_blocks documentation
lexnv Jun 26, 2023
5e39e41
Adjust utils import for testing
lexnv Jun 26, 2023
88dfb6b
Remove into_iter from builder construction
lexnv Jun 26, 2023
e88b6ef
Merge remote-tracking branch 'origin/master' into lexnv/light_client_…
lexnv Jun 26, 2023
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
32 changes: 32 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,38 @@ jobs:
command: nextest
args: run --workspace

nonwasm_light_client_tests:
name: "Test Light Client"
runs-on: ubuntu-latest-16-cores
timeout-minutes: 15
steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Download Substrate
run: |
curl $SUBSTRATE_URL --output substrate --location
chmod +x substrate
./substrate --version
mkdir -p ~/.local/bin
mv substrate ~/.local/bin

- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Rust Cache
uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894 # v2.4.0

- name: Run tests
uses: actions-rs/cargo@v1.0.3
with:
command: test
args: --release --package integration-tests --features unstable-light-client

clippy:
name: Cargo clippy
runs-on: ubuntu-latest
Expand Down
Loading
Loading