Skip to content

More flexible network configuration #528

@SilentRhetoric

Description

@SilentRhetoric

Problem

In the spirit of decentralization, I want to be able to use Lora to query and interact with my own Algorand node. This currently involves some friction in a few ways:

  1. The network settings dialog requires an indexer to be provided. This should be optional if I don't have an indexer and don't want to query a public one.
  2. Once a custom network is configured to connect to my personal node, some pages of the site don't work at all because they require an indexer for something on the page.
  3. Lora also has some logic to go straight to an indexer for old blocks. I have my own archival node from which I could query old blocks, but Lora provides no way to achieve this via algod and simply fails on trying to query the placeholder indexer that I had to provide in the network settings to create a custom network.

Solution

This issue describes a few different things, but I have some ideas related to each of the items above, respectively:

  1. The network settings dialog could be relaxed so that an indexer is not required to be input (I would also do the same for KMD, too).
  2. Explore ways to bring errors down to a lower level on pages so that one API call failing does not prevent the rest of the page from rendering.
  3. Provide a configuration to attempt to query algod first for any endpoints that algod provides, such as for fetching a single block from /v2/blocks/{block} and then fall back to querying indexer if algod fulfill the request.

Additional Remarks

I appreciate that this is a bit of niche use case, especially for querying one's own archival node. That said, I think that some of these friction points are worth considering given we want to enable people to interact with their own nodes in the spirit of decentralization. We should also strive to minimize dependencies on indexers, given the cost to run them and the centralizing effect of relying on Nodely's indexers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions