lightninglabs / lightninglabs/taproot-assets
[feature]: RPC endpoint `SyncUniverse` checks target universe server permissions before attempting sync
Nobody has claimed this yet.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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