Blockchains

Overview

TravlrNode supports multiple blockchain platforms through a plugin-based architecture. Each blockchain implementation adheres to the BlockchainPlugin interface.

Plugin Interface

interface BlockchainPlugin {
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    registerNode(did: string, isOrganization: boolean): Promise<string>;
    grantAccess(granterDID: string, granteeDID: string, dataKey: string, expirationTime: number): Promise<string>;
    revokeAccess(revokerDID: string, granteeDID: string, dataKey: string): Promise<string>;
    // ... additional methods
}

Ethereum Implementation

The Ethereum plugin uses Web3.js for blockchain interactions and smart contracts for access control.

Key Features

  • Smart contract-based access control
  • Event monitoring
  • Gas optimization
  • Transaction management

Example Usage

const ethereumPlugin = createBlockchainPlugin('ethereum', {
    rpcUrl: process.env.ETH_RPC_URL,
    privateKey: process.env.ETH_PRIVATE_KEY,
    contractAddress: process.env.ETH_CONTRACT_ADDRESS
});

await ethereumPlugin.connect();

Sui Implementation

The Sui plugin leverages the Move programming language for efficient smart contract execution.

Key Features

  • High throughput transactions
  • Object-centric data model
  • Native Move integration
  • Parallel execution

Example Usage

const suiPlugin = createBlockchainPlugin('sui', {
    rpcUrl: process.env.SUI_RPC_URL,
    privateKey: process.env.SUI_PRIVATE_KEY,
    moduleId: process.env.SUI_MODULE_ID
});