Skip to content
This repository was archived by the owner on Dec 6, 2022. It is now read-only.
This repository was archived by the owner on Dec 6, 2022. It is now read-only.

Use Case: Blockchain Data #4

@mikeal

Description

@mikeal

One critical use case is the replication of blockchain data.

Because of the way the data is encoded (each new block is added as a new root node, adding a layer of depth every cycle) the structure ends up being a very deep tree with fairly little data at each depth. Therefor, the bottleneck tends to be round-trip time as the requester doesn't have knowledge of the links at each depth until they receive each block.

A proposed solution has been asking for a indefinite number of blocks from a peer, potentially using an advanced selector interface (see IPLD Selectors).

Additional Concerns:

  • Asking for an indefinite amount of data is always risky. At the very least there will need to be some kind of cancellation mechanism.
  • Pulling the data from multiple peers is very difficult if you don't know the set of data you're asking for. Note: @jbenet commented that this complexity should be pushed up to the consumer of the API to deal with parallelism.
  • Any local caches are irrelevant as the remote end won't know the cache state of the requester.

Action Items:

  • Collect a few sample data sets for testing and modeling.
  • Prioritize current blockers:
    • RPC interface for adding new replication methods.
    • IPLD Selector parser.

/cc @jbenet @Stebalien @vmx Did I miss anything?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions