Skip to main content

Overview

Learn how to set up and run your own Intuition node to participate in the network using the official Rust implementation.

What is an Intuition Node?

The intuition-rs workspace is a comprehensive Rust workspace for blockchain data indexing and processing, featuring a modular architecture with multiple specialized services. This implementation provides high performance, memory safety, and reliability for running Intuition nodes and backend services.

Node Requirements

Running an Intuition node requires Docker, Rust toolchain, and proper environment configuration. This guide provides comprehensive setup instructions for local development and production deployments.

Supported Contract Versions

  • Multivault v2.0

Why Run a Node?

Running your own Intuition node provides several key benefits:

  • Full Data Access: Direct access to all blockchain data without relying on third-party services
  • Network Participation: Actively contribute to the decentralization and resilience of the Intuition network
  • Custom Indexing: Tailor data indexing and processing to your specific needs
  • Performance Control: Optimize performance and resource allocation based on your requirements
  • Enhanced Privacy: Process and query data without exposing your queries to external services
  • Development Freedom: Ideal for building and testing applications in a controlled environment

Architecture

This workspace contains the following core services:

Core Services

CLI: Terminal UI client for interacting with the Intuition system
Consumer: Event processing pipeline using Redis Streams (RAW, DECODED, and RESOLVER consumers)
Models: Domain models and data structures for the Intuition system

CLIConsumerModels

Infrastructure Services

Hasura: GraphQL API with database migrations and configuration
Image Guard: Image processing and validation service
RPC Proxy: RPC call proxy with caching for eth_call methods

GraphQLProxy

Supporting Services

Histocrawler: Historical data crawler
Shared Utils: Common utilities and shared code
Migration Scripts: Database migration utilities

CrawlerUtils

Event Processing Pipeline

The system processes blockchain events through multiple stages:

  1. RAW - Raw event ingestion from blockchain
  2. DECODED - Event decoding and parsing
  3. RESOLVER - Data resolution and enrichment
  4. IPFS-UPLOAD - Upload images to IPFS and track them in the local DB

Prerequisites

Required Tools

Rust toolchain: Install with curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo-make: Install with cargo install --force cargo-make
Node.js: For integration tests (install pnpm dependencies)

Environment Configuration

You'll need to set up environment variables for various services. Create a .env file based on the .env.sample template with the following required variables:

VariableDescriptionSource
OPENAI_API_KEYOpenAI API key for AI featuresOpenAI Platform
PINATA_GATEWAY_TOKENPinata gateway token for IPFSPinata Dashboard
PINATA_API_JWTPinata API JWT for IPFS uploadsPinata Dashboard
BASE_MAINNET_RPC_URLBase mainnet RPC endpointAlchemy Dashboard
BASE_SEPOLIA_RPC_URLBase sepolia testnet RPC endpointAlchemy Dashboard
ETHEREUM_MAINNET_RPC_URLEthereum mainnet RPC endpointAlchemy Dashboard
LINEA_MAINNET_RPC_URLLinea mainnet RPC endpointAlchemy Dashboard
LINEA_SEPOLIA_RPC_URLLinea sepolia testnet RPC endpointAlchemy Dashboard
TRUST_TESTNET_RPC_URLTrust testnet RPC endpoint (local geth)Local development
TRUST_MAINNET_RPC_URLTrust mainnet RPC endpoint (local geth)Local development
INDEXER_SCHEMADatabase schema for indexer (set to "local")Local development
INTUITION_CONTRACT_ADDRESSIntuition contract addressContract deployment

Next Steps

Once you understand the architecture and have the prerequisites ready:

  1. Learn about why we chose Rust for the backend implementation
  2. Follow the Running a Node guide to start your node
  3. Explore Local Development Setup for development workflows
  4. Check Kubernetes Deployment for production deployments