lightninglabs / lightninglabs/taproot-assets

[feature]: RPC endpoint `SyncUniverse` checks target universe server permissions before attempting sync

Open
#760 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement gRPC syncing universe
Dominant language
Go
Stars
525
Forks
150
Avg merge
2d 15h
Merged PRs (30d)
31

Description

The `SyncUniverse` RPC endpoint is designed for syncing a specified universe ID(s) with a target universe server. A significant issue arises because `SyncUniverse` does not verify read permissions on the target server prior to syncing. This oversight leads to non-transparent errors for users lacking the necessary permissions.

## Proposed Changes

To address this, the `CheckFederationServer` function should be implemented to confirm connectivity with the target universe server before initiating the sync process. An example of this function's usage can be found in our repository:
https://github.com/lightninglabs/taproot-assets/blob/5a25a469e30ac43ccf77be94282bc9c8da2ab5d4/rpcserver.go#L4044-L4044

It may be necessary to expand the capabilities of `CheckFederationServer` to include read permission checks, in addition to its current role in validating server connections.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the SyncUniverse RPC endpoint and the CheckFederationServer reference in rpcserver.go, then trace how the target universe server is contacted before syncing. Verify the existing connection checks and permission behavior. Done means the endpoint checks target-server connectivity and read permission first and reports permission failures transparently.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.