Insight v0.0.3-beta

Toomas Oosalu

Version v0.0.3-beta focuses on data accuracy by introducing handling for reorgs. Other changes include refactoring the RPC component for easier reuse, creating a test setup with initial tests and improving the setup for running Insight locally.

Features and Enhancements

  • Reorganization Handling and Storage Enhancements
    • Introduced a new `ReorgHandler` component to detect and handle blockchain reorganizations, with updated metrics to track performance.
    • Added storage support for chain reorganization
    • Configurable reorg handler settings to manage detection intervals and block scans.
  • Refactored RPC Client and Modularity Improvements
    • Created an `IRPCClient` interface for better abstraction and testability of the RPC client.
    • Refactored RPC-related functionality into a dedicated `rpc` package to improve code structure and performance.
    • Updated orchestrator components to utilize the enhanced RPC client setup.
    • Simplified RPC interactions with utility functions for data serialization.
  • Data Insertion Refactoring
    • Overhauled data insertion logic in the storage layer for configurable batching strategy, enhancing transaction handling across different storage systems.
    • Introduced `InsertDataForBlocks` method in storage interfaces, streamlining data insertion processes.

API Changes

  • API Configuration and Documentation
    • Made the API host configurable, enhancing deployment flexibility across environments.
    • Updated Swagger documentation handling to dynamically generate API docs at the `/openapi.json` endpoint.
  • CORS Support
    • Added CORS middleware to API routes, improving cross-origin request handling and enhancing API accessibility.

Infrastructure and Tooling

  • Continuous Integration and Testing Setup
    • Established a testing framework using Testify and Mockery, and integrated CI workflows.
  • Local Development Enhancements
    • Added an option to disable TLS for ClickHouse and included a Docker Compose setup for easier local development and testing.

Learn more about Insight at https://github.com/thirdweb-dev/insight