Skip to content

tangle-network/gadget-workspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Tangle Network: Gadget SDK

A comprehensive toolkit for building, deploying, and managing blueprints to run on gadgets on the Tangle Network. This workspace provides a collection of Rust crates that enable developers to create and interact with blockchain-based applications.

Table of Contents

Overview

Tangle Network's Gadget SDK is a modular framework designed to simplify the development and deployment of blockchain applications (blueprints) on the Tangle Network. It provides a comprehensive set of tools and libraries for blockchain interaction, cryptographic operations, and network communication.

๐ŸŒŸ Features

  • Blueprint System

    • Template-based blueprint creation
    • Automated deployment workflows
    • Metadata Management
  • Multi-Chain Support

    • Native Tangle Network integration
    • EigenLayer compatibility
    • EVM chain support
    • Cross-chain communication
  • Advanced Cryptography

    • Multiple signature schemes (BLS, Ed25519, SR25519)
    • Secure key management
  • Networking

    • P2P communication via libp2p
    • Custom protocol implementations
    • NAT traversal
    • Peer discovery and management
  • Development Tools

    • CLI for common operations
    • Comprehensive testing framework
    • Performance benchmarking
    • Debugging utilities

๐Ÿ›  Project Structure

tangle-network-gadget-workspace/
โ”œโ”€โ”€ cli/                    # Command-line interface tools
โ”‚   โ”œโ”€โ”€ src/               # CLI implementation
โ”‚   โ””โ”€โ”€ README.md          # CLI documentation
โ”œโ”€โ”€ crates/                # Core functionality crates
โ”‚   โ”œโ”€โ”€ benchmarking/      # Performance testing tools
โ”‚   โ”œโ”€โ”€ blueprint/         # Blueprint core system
โ”‚   โ”‚   โ”œโ”€โ”€ manager/       # Blueprint lifecycle management
โ”‚   โ”‚   โ”œโ”€โ”€ metadata/      # Blueprint metadata handling
โ”‚   โ”‚   โ””โ”€โ”€ serde/         # Serialization utilities
โ”‚   โ”œโ”€โ”€ clients/           # Network clients
โ”‚   โ”‚   โ”œโ”€โ”€ core/          # Shared client functionality
โ”‚   โ”‚   โ”œโ”€โ”€ eigenlayer/    # EigenLayer integration
โ”‚   โ”‚   โ”œโ”€โ”€ evm/          # Ethereum Virtual Machine client
โ”‚   โ”‚   โ””โ”€โ”€ tangle/       # Tangle Network client
โ”‚   โ”œโ”€โ”€ crypto/           # Cryptographic implementations
โ”‚   โ”œโ”€โ”€ event-listeners/  # Event handling system
โ”‚   โ”œโ”€โ”€ keystore/         # Key management
โ”‚   โ”œโ”€โ”€ networking/       # P2P networking
โ”‚   โ”œโ”€โ”€ runners/         # Execution environments
โ”‚   โ””โ”€โ”€ utils/           # Shared utilities
โ””โ”€โ”€ .config/             # Configuration files

๐Ÿ“‹ Prerequisites

  • Rust (nightly-2024-10-13)
  • Cargo
  • OpenSSL development packages
  • CMake (for certain dependencies)

For Ubuntu/Debian:

apt install build-essential cmake libssl-dev pkg-config

For macOS:

brew install openssl cmake

๐Ÿš€ Getting Started

Installation

  1. Install the Tangle CLI:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tangle-network/gadget/releases/download/cargo-tangle/v0.1.1-beta.7/cargo-tangle-installer.sh | sh

Or install from source:

cargo install cargo-tangle --git https://github.com/tangle-network/gadget --force

Creating Your First Blueprint

  1. Create a new blueprint:
cargo tangle blueprint create --name my_blueprint
  1. Build your blueprint:
cargo build
  1. Deploy to Tangle Network:
cargo tangle blueprint deploy --rpc-url wss://rpc.tangle.tools --package my_blueprint

๐Ÿ”‘ Key Management

Key Generation

Generate cryptographic keys using the CLI:

cargo tangle blueprint generate-keys -k <KEY_TYPE> -p <PATH> -s <SURI/SEED> --show-secret

Supported Key Types

Key Type Description Use Case
sr25519 Schnorrkel/Ristretto x25519 Tangle Network account keys
ecdsa Elliptic Curve Digital Signature Algorithm EVM compatible chains
bls_bn254 BLS signatures on BN254 curve EigenLayer validators
ed25519 Edwards-curve Digital Signature Algorithm General purpose signatures
bls381 BLS signatures on BLS12-381 curve Advanced cryptographic operations

๐Ÿ”ง Configuration

Feature Flags

The CLI and core libraries support various feature flags for customizing functionality when building blueprints:

Feature Flag Description Components Included
default Standard installation Tangle + EVM support with standard library features
std Standard library features Core functionality with std support
tangle Tangle Network support Tangle Network client, keystore, and EVM integration
eigenlayer EigenLayer integration EigenLayer clients, keystore, and EVM support
evm EVM chain support Ethereum JSON ABI, provider, network, and signer support

The crypto system supports multiple signature schemes:

  • k256 (ECDSA)
  • sr25519 (Schnorrkel)
  • ed25519
  • BLS (including BN254)
  • Tangle pair signer
  • Substrate crypto (sp-core)

Installation examples:

# Default installation (includes Tangle + EVM)
cargo install cargo-tangle

# EVM support only
cargo install cargo-tangle --features evm

# Full installation with EigenLayer support
cargo install cargo-tangle --features "tangle,eigenlayer"

Environment Variables

Required environment variables for different operations:

Variable Description Example
SIGNER Substrate signer account SURI export SIGNER="//Alice"
EVM_SIGNER EVM signer private key export EVM_SIGNER="0xcb6df..."
RPC_URL Tangle Network RPC endpoint export RPC_URL="wss://rpc.tangle.tools"
HTTP_RPC_URL HTTP RPC endpoint export HTTP_RPC_URL="https://rpc.tangle.tools"

๐Ÿ”จ Core Components

Blueprint System

The Blueprint system is the core of the Tangle Network Gadget framework:

  • Template Engine: Standardized blueprint creation
  • Metadata Management: Blueprint information and configuration

Network Clients

Specialized clients for different blockchain networks:

  • Tangle Client: Native integration with Tangle Network
  • EigenLayer Client: AVS (Actively Validated Service) integration
  • EVM Client: Ethereum and EVM-compatible chain support

Cryptography

Comprehensive cryptographic implementations:

  • Multiple Schemes: Support for various signature algorithms
  • Key Management: Secure key storage and handling

Event System

Robust event handling system:

  • Event Listeners: Custom event monitoring
  • Async Processing: Non-blocking event handling
  • Filtering: Configurable event filtering
  • Error Handling: Robust error recovery

Storage

Flexible storage solutions:

  • Local Database: Efficient local storage
  • Key-Value Store: Fast key-value operations
  • File System: Secure file storage
  • Remote Storage: Cloud storage integration (e.g., AWS, GCP, Ledger)

๐Ÿงช Development

Testing

The framework includes comprehensive testing tools:

# Run all tests
cargo test

# Run specific test suite
cargo test --package my_blueprint

# Run with logging
RUST_LOG=gadget=debug cargo test

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details on how to get started.

๐Ÿ“ฎ Support

  • Issues: Use GitHub Issues for bug reports and feature requests
  • Discussions: Join our community discussions on GitHub
  • Discord: Join our Discord server

About

Temp upgrade for the gadget libraries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages