Skip to content

[MPC Feedback] No lightweight blockchain data subscription — forced to embed nearcore #30

@r-near

Description

@r-near

Source

MPC team feedback via @marten.blankfors (Slack thread)

Problem Statement

"Lacking a proper solution for subscribing to blockchain data. The fact that the canonical way to do this is to embed a full nearcore node is so painful."

Pain points:

  • Ties releases to nearcore releases (every upgrade is a hard fork deadline)
  • Hard to debug (nearcore memory leak took down MPC nodes, GC bug filled disks)
  • Full node overhead to track a single contract

Research Findings

Root Cause

The MPC team historically chose to embed nearcore directly for lowest latency. This created tight coupling — they depend on 8 internal nearcore crates not meant for external use.

Alternatives Exist

There are several indexing options that don't require embedding nearcore:

  • NEAR Lake Framework (S3-based)
  • FastNEAR / NEARDATA
  • RPC polling via near-api-rs
  • WebSocket event streams

Each has different latency/complexity tradeoffs. The MPC team would need to evaluate which fits their requirements.

Remaining Gaps

  1. No official push-based subscription — all options require polling (S3, HTTP, or RPC)
  2. Sub-second latency — may require running own infrastructure or using optimistic blocks
  3. Migration effort — MPC team needs to refactor away from internal nearcore crates
  4. Unclear recommendation — no documented guidance on which approach fits which use case

Recommended Actions

  • Help MPC team evaluate alternatives for their latency/reliability requirements
  • Benchmark latency: embedded nearcore vs alternatives
  • Document tradeoffs of different indexing approaches (part of DevEx Indexing initiative)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmpc-teamFeedback from MPC teampartner-feedbackFeedback from internal partner teams (MPC, Bridge, etc.)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions