Project Overview

Project Purpose and Objectives

This project, ShapeShift Unchained, is a comprehensive blockchain infrastructure platform designed to provide reliable, scalable, and performant APIs and services for multiple blockchain networks. Its primary goal is to enable seamless interaction with diverse blockchain ecosystems by offering standardized APIs for account management, transaction history, sending transactions, fee estimation, and real-time event subscriptions.

Key objectives include:

Major Functionalities and Implementation Details


Example Workflows and Use Cases

1. Deployment of a New Coinstack (e.g., Litecoin)

2. Local Development Setup with Docker Compose

3. Real-time Blockchain Event Subscription


Stack and Technologies

Core Technologies

Key Libraries and Frameworks

Rationale


High-Level Architecture

The system architecture is modular and layered, supporting multiple blockchain coinstacks deployed as Kubernetes StatefulSets and services. The key components and their interactions are:

graph TB
  Client[Client Applications] -->|REST API| API[API Servers]
  Client -->|WebSocket| API
  API -->|Query| Indexer[Blockbook Indexer]
  API -->|RPC Calls| Daemon[Blockchain Daemon Nodes]
  Indexer --> Daemon
  Daemon --> Blockchain[Blockchain Networks]
  API -->|Metrics| Prometheus[Prometheus Monitoring]
  Prometheus --> Grafana[Grafana Dashboards]
  API --> Traefik[Traefik Reverse Proxy]
  Traefik --> Client

Developer Navigation

Frontend Developers Start Here

Backend Developers Focus on:

DevOps / Infrastructure

Testing and Performance


Visual Diagrams

Component Diagram - High-Level System Architecture

graph TB
  Client[Client Application] -->|HTTP REST / WS| API[API Servers]
  API -->|Query| Indexer[Blockbook Indexer]
  API -->|RPC Calls| Daemon[Blockchain Node Daemons]
  Indexer --> Daemon
  Daemon --> Blockchain[Blockchain Networks]
  API -->|Metrics| Prometheus[Prometheus Metrics]
  Prometheus --> Grafana[Grafana Dashboard]
  API --> Traefik[Traefik Proxy]
  Traefik --> Client

Flowchart - Example Workflow: API Request Handling for Transaction History

flowchart TD
  ClientRequest[Client sends Tx History Request] --> APIServer[API Server]
  APIServer --> Validate[Validate Input & Auth]
  Validate --> QueryIndexer[Query Blockbook Indexer]
  QueryIndexer --> FetchTxs[Fetch Transactions]
  FetchTxs --> Format[Format & Enrich Data]
  Format --> ReturnResponse[Return JSON Response]
  ReturnResponse --> ClientRequest

This overview provides a technical roadmap for developers to understand the project goals, core components, and workflows. It highlights the modular coinstack architecture, deployment automation, API services, and monitoring infrastructure. Developers can use this as a guide to navigate the codebase, contribute, and maintain the system effectively.