Refactor of ytsync - part 1 - SDK
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- go
- Domain
- backend, blockchain
Research direction
No files, tests, or entry points are named. Start by locating the existing SDK usage and comparing it with the listed wallet, lifecycle, publishing, transfer, and metadata responsibilities; done means an SDK interface exists and the current code is moved behind its implementation.
Written by the indexing model from the issue text.
Description
The goal is to create an interface that exposes the main SDK functions so that we can hide all the complicated logic and better organize the code. This way we'll be able to eventually swap out the SDK for a pure GO/lbrycrd implementation.
The identified tasks of the SDK are listed here.
- sdk
- download wallet and blockchain.db from s3
- start/stop sdk
- wait for slow startup
- clean up after shutdown
- what we actually need the sdk for
- publishing
- create channel claim, sign it, send it to lbrycrd
- create the content (aka stream) claim, sign claim with channel key
- put claim into a transaction, sign it with private key, send the transaction to lbrycrd
- ensure utxos are available, create utxos, select utxos for transaction (coin chooser)
- check balance, fund account from ytsync wallet
- check what channels are in the wallet. ensure that we're using the right wallet for the right channel, and that we have the right utxos for everything
- don't spend staked utxos
- transfer
- transferring claims to creator's wallet
- abandon tips and supports, and send them to the creator as tips
- after transfer, retain channel's public and private keys so we can keep publishing to their channel. also retain the address that the channel claim is in, so we can tell if the channel is abandoned and make sure we don't publish duplicate videos (videos we already published) to your channel
- metadata
- handle old versions of claim metadata
- update published metadata if new fields get added (may not be strictly necessary)
- publishing
Must do:
- Write an interface for the SDK
- Move the code into an implementation
- Dominant language
- Go
- Stars
- 40
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
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.
More from lbryio/ytsync
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 38/100
-
Local ytsyncOpen
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Explore ways to give more feedback on time for youtube sync to complete and/or way to initiate syncMay be free again @nikooo777 claimed this 1927 days ago, and no pull request is open. Open
Similar issues
-
duplication
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
openvibely/openvibely#1443 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
keyxmakerx/Chronicle#1179 ·
Maintainers usually reply within 1 day
-
raised-by:worker
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
medici-finance/assay#2486 ·
Maintainers usually reply within 1 day
-
area/testing kind/bug triage/needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
cozystack/cozystack#4841 · 1 reaction ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
openimsdk/openim-sdk-core#1127 ·