Skip to content

Commit 16e427f

Browse files
authored
update readme (#100)
1 parent 43591f1 commit 16e427f

1 file changed

Lines changed: 13 additions & 63 deletions

File tree

README.md

Lines changed: 13 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# PVQ: PolkaVM Query System for Polkadot
1+
# PVQ: PolkaVM Query
22

33
<!-- generated by polka.codes -->
44

55
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
6-
[![Rust](https://github.com/open-web3-stack/PVQ/workflows/Rust/badge.svg)](https://github.com/open-web3-stack/PVQ/actions)
6+
[![Build](https://github.com/open-web3-stack/PVQ/actions/workflows/build.yml/badge.svg)](https://github.com/open-web3-stack/PVQ/actions/workflows/build.yml)
77

8-
A powerful and secure query system for Polkadot parachains that enables developers to write expressive, sandboxed guest programs using PolkaVM. PVQ provides a safe and efficient alternative to custom RPC endpoints for runtime data queries.
8+
PVQ is a unified query interface that bridges different chain runtime implementations and client tools/UIs. PVQ provides an extension-based system where runtime developers can expose chain-specific functionality through standardized interfaces, while allowing client-side developers to perform custom computations on the data through PolkaVM programs. By abstracting away concrete implementations across chains and supporting both off-chain and cross-chain scenarios, PVQ aims to reduce code duplication and development complexity while maintaining flexibility for custom use cases.
99

1010
## ✨ Features
1111

@@ -14,7 +14,7 @@ A powerful and secure query system for Polkadot parachains that enables develope
1414
- **⚡ High Performance**: Efficient RISC-V execution with minimal overhead
1515
- **🛠️ Developer Friendly**: Rust-first development experience with procedural macros
1616
- **🌐 Runtime Integration**: Seamless integration with Substrate runtimes
17-
- **🔍 Rich Querying**: Support for complex queries involving multiple runtime components
17+
- **🔍 Rich Querying**: Support for complex queries involving functions from multiple pallets
1818

1919
## 🏗️ Architecture
2020

@@ -42,7 +42,7 @@ The PVQ system consists of several interconnected components:
4242
| **[PVQ Runtime API](pvq-runtime-api/)** | Substrate runtime API for external query submission |
4343
| **[PVQ Primitives](pvq-primitives/)** | Common types and utilities shared across components |
4444

45-
### Available Extensions
45+
### Available Example Extensions
4646

4747
- **[Core Extension](pvq-extension-core/)**: Fundamental functionalities and extension discovery
4848
- **[Fungibles Extension](pvq-extension-fungibles/)**: Asset querying, balances, and metadata
@@ -60,18 +60,22 @@ Ensure you have the following installed:
6060
### Installation
6161

6262
1. **Clone the repository with submodules:**
63+
6364
```bash
6465
git clone --recursive https://github.com/open-web3-stack/PVQ.git
6566
cd PVQ
6667
```
6768

6869
2. **Install required tools:**
70+
6971
```bash
7072
make tools
7173
```
74+
7275
This installs `polkatool` for ELF to PolkaVM blob conversion and `chain-spec-builder`.
7376

7477
3. **Build the project:**
78+
7579
```bash
7680
cargo build --release
7781
```
@@ -81,11 +85,13 @@ Ensure you have the following installed:
8185
#### Running Example Programs
8286

8387
1. **Build guest programs:**
88+
8489
```bash
8590
make guests
8691
```
8792

8893
2. **Run a test program:**
94+
8995
```bash
9096
cargo run -p pvq-test-runner -- --program output/guest-sum-balance
9197
```
@@ -104,11 +110,13 @@ Ensure you have the following installed:
104110
#### Testing with PoC Runtime
105111

106112
1. **Start local test chain:**
113+
107114
```bash
108115
make run
109116
```
110117

111118
2. **Build and test programs:**
119+
112120
```bash
113121
make guests
114122
cargo run -p pvq-test-runner -- --program output/guest-total-supply
@@ -142,61 +150,3 @@ pub trait MyCustomExtension {
142150
fn my_query() -> String;
143151
}
144152
```
145-
146-
### Component Documentation
147-
148-
- 📚 **[Development Guide](docs/development.md)** - Comprehensive development setup
149-
- 🔧 **[Extension Development](docs/extensions.md)** - Creating custom extensions
150-
- 🏗️ **[Architecture Deep Dive](docs/architecture.md)** - System design and internals
151-
- 📋 **[API Reference](docs/api.md)** - Complete API documentation
152-
153-
## 🛠️ Development
154-
155-
### Project Structure
156-
157-
```
158-
PVQ/
159-
├── poc/runtime/ # PoC Substrate runtime
160-
├── pvq-program/ # Program macro and utilities
161-
├── pvq-executor/ # Core execution engine
162-
├── pvq-extension*/ # Extension system and implementations
163-
├── pvq-runtime-api/ # Runtime API definition
164-
├── pvq-test-runner/ # Testing utilities
165-
├── guest-examples/ # Example programs
166-
└── vendor/polkavm/ # Vendored PolkaVM dependency
167-
```
168-
169-
### Building from Source
170-
171-
```bash
172-
# Development build
173-
cargo build
174-
175-
# Release build with optimizations
176-
cargo build --release
177-
178-
# Build guest examples
179-
make guests
180-
181-
# Run all tests
182-
cargo test --all
183-
184-
# Run clippy lints
185-
cargo clippy --all --all-targets
186-
```
187-
188-
### Testing
189-
190-
```bash
191-
# Run unit tests
192-
cargo test
193-
194-
# Run integration tests
195-
cargo test --test integration
196-
197-
# Test specific component
198-
cargo test -p pvq-executor
199-
200-
# Run example programs
201-
make test-guests
202-
```

0 commit comments

Comments
 (0)