docs: add README with installation instructions and fix Docker builds

- Add comprehensive README with installation guides for:
  - Desktop wallet (macOS DMG, Windows MSI/EXE, Linux AppImage)
  - Node daemon (pre-built binaries and Docker)
  - Build from source instructions
  - CLI usage and RPC API examples
  - Configuration reference
- Fix Dockerfiles: simplify build context, use -p package flag
- Fix unstable Rust feature: replace is_multiple_of with modulo operator
This commit is contained in:
Gulshan Yadav 2026-02-02 01:26:44 +05:30
parent 3d161afd9d
commit 5ff415deb8
4 changed files with 226 additions and 7 deletions

View file

@ -23,11 +23,9 @@ COPY Cargo.toml Cargo.lock ./
COPY src/ src/
COPY crates/ crates/
COPY apps/ apps/
COPY contracts/ contracts/
COPY sdk/ sdk/
# Build release binary
RUN cargo build --release --bin synord
# Build release binary (using -p for package, synord includes the bin)
RUN cargo build --release -p synord
# =============================================================================
# Stage 2: Runtime Environment

View file

@ -24,8 +24,8 @@ COPY src/ src/
COPY crates/ crates/
COPY apps/ apps/
# Build release binary
RUN cargo build --release --bin synor-faucet
# Build release binary (using -p for package, synor-faucet includes the bin)
RUN cargo build --release -p synor-faucet
# =============================================================================
# Stage 2: Runtime Environment

221
README.md Normal file
View file

@ -0,0 +1,221 @@
# Synor Blockchain
Quantum-secure decentralized cloud computing platform built on DAG-based consensus.
## Features
- **Quantum-Resistant Cryptography**: Hybrid Ed25519 + Dilithium3 signatures (NIST FIPS 204)
- **DAG Consensus**: GHOSTDAG-based ordering for high throughput
- **Smart Contracts**: WASM-based execution with Rust SDK
- **Post-Quantum Security**: Future-proof against quantum computing threats
## Installation
### Desktop Wallet
Download the latest release for your platform:
| Platform | Download | Notes |
|----------|----------|-------|
| **macOS (Apple Silicon)** | `Synor-Wallet_x.x.x_aarch64.dmg` | Drag to Applications |
| **macOS (Intel)** | `Synor-Wallet_x.x.x_x64.dmg` | Drag to Applications |
| **Windows** | `Synor-Wallet_x.x.x_x64_en-US.msi` | Run installer (recommended) |
| **Windows (portable)** | `Synor-Wallet_x.x.x_x64-setup.exe` | Alternative installer |
| **Linux** | `Synor-Wallet_x.x.x_amd64.AppImage` | `chmod +x && ./` |
**First launch on macOS**: Right-click → Open (to bypass Gatekeeper if not code-signed)
### Node Daemon (synord)
Download pre-built binaries:
| Platform | Download |
|----------|----------|
| **Linux x86_64** | `synor-linux-x86_64.tar.gz` |
| **Linux ARM64** | `synor-linux-aarch64.tar.gz` |
| **macOS x86_64** | `synor-macos-x86_64.tar.gz` |
| **macOS ARM64** | `synor-macos-aarch64.tar.gz` |
| **Windows x86_64** | `synor-windows-x86_64.zip` |
```bash
# Extract and install (Linux/macOS)
tar -xzf synor-<platform>.tar.gz
sudo mv synord /usr/local/bin/
sudo mv synor-cli /usr/local/bin/
# Initialize and run
synord init --network testnet
synord run --network testnet
```
### Docker (Recommended for Nodes)
```bash
# Run a single node
docker run -d \
--name synor-node \
-p 17511:17511 \
-p 17110:17110 \
-p 17111:17111 \
-v synor-data:/data/synor \
synor/synord:latest \
--network testnet
# Run multi-node testnet
./scripts/testnet-deploy.sh start
```
**Ports:**
| Service | Port | Description |
|---------|------|-------------|
| P2P | 17511 | Peer-to-peer network |
| HTTP RPC | 17110 | JSON-RPC API |
| WebSocket RPC | 17111 | WebSocket API |
## Build from Source
### Prerequisites
**All platforms:**
- Rust 1.75+ (`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`)
**macOS:**
```bash
brew install rocksdb cmake llvm node pnpm
```
**Ubuntu/Debian:**
```bash
sudo apt-get install -y librocksdb-dev libclang-dev cmake pkg-config libssl-dev
```
**Windows:**
```powershell
winget install Rustlang.Rustup Microsoft.VisualStudio.2022.BuildTools OpenJS.NodeJS.LTS LLVM.LLVM
npm install -g pnpm
```
### Build Node
```bash
# Clone repository
git clone https://github.com/g1-technologies/synor.git
cd synor
# Build all binaries
cargo build --release --workspace
# Binaries located at:
# ./target/release/synord (node daemon)
# ./target/release/synor-cli (CLI wallet)
```
### Build Desktop Wallet
```bash
# Install Tauri CLI
cargo install tauri-cli
# Build wallet
cd apps/desktop-wallet
pnpm install
pnpm tauri:build
# Output:
# macOS: src-tauri/target/release/bundle/dmg/
# Windows: src-tauri/target/release/bundle/msi/
# Linux: src-tauri/target/release/bundle/appimage/
```
## Usage
### CLI Wallet
```bash
# Create new wallet
synor-cli wallet create
# Check balance
synor-cli balance
# Send tokens
synor-cli send <address> <amount>
# View network info
synor-cli info
```
### RPC API
```bash
# Get node info
curl -X POST http://localhost:17110 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"synor_getInfo","params":[],"id":1}'
# Get block count
curl -X POST http://localhost:17110 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"synor_getBlockCount","params":[],"id":1}'
```
## Configuration
Config file: `~/.synor/config.toml` (Linux/macOS) or `%APPDATA%\Synor\config.toml` (Windows)
```toml
[network]
network = "testnet" # mainnet, testnet, or devnet
[p2p]
listen_addr = "/ip4/0.0.0.0/tcp/17511"
max_peers = 50
[rpc]
http_enabled = true
http_addr = "127.0.0.1:17110"
ws_enabled = true
ws_addr = "127.0.0.1:17111"
[mining]
enabled = false
coinbase_address = "synor:qz..."
threads = 4
```
## Documentation
- [Developer Guide](docs/DEVELOPER_GUIDE.md) - Full development documentation
- [Deployment Guide](docs/DEPLOYMENT.md) - Production deployment instructions
- [Code Signing](docs/CODE_SIGNING.md) - Certificate setup for releases
- [API Reference](docs/API.md) - RPC API documentation
## Architecture
```
synor/
├── apps/
│ ├── synord/ # Node daemon
│ ├── cli/ # CLI wallet
│ ├── desktop-wallet/ # Tauri desktop wallet
│ ├── faucet/ # Testnet faucet
│ └── explorer/ # Block explorer
├── crates/
│ ├── synor-crypto/ # Quantum-resistant cryptography
│ ├── synor-dag/ # GHOSTDAG consensus
│ ├── synor-consensus/ # Transaction validation
│ ├── synor-network/ # P2P networking (libp2p)
│ ├── synor-storage/ # RocksDB persistence
│ ├── synor-vm/ # WASM smart contracts
│ └── synor-rpc/ # JSON-RPC server
└── contracts/ # Example smart contracts
```
## Security
- Report vulnerabilities to security@synor.cc
- See [SECURITY.md](SECURITY.md) for our security policy
## License
MIT OR Apache-2.0

View file

@ -275,7 +275,7 @@ impl DagKnightManager {
let data = self.ghostdag.add_block(block_id, parents)?;
// Periodically update adaptive k
if self.latency_tracker.sample_count().is_multiple_of(50) {
if self.latency_tracker.sample_count() % 50 == 0 {
self.update_adaptive_k();
}