January Final Report
What progress was made on your grant this month?
- Various internal refactoring and cleanup needed in the core portal system
- Implemented UI integration
- Numerous updates to the go plugin and the
liblbrylibrary
| Milestone | Task | Pull Request(s) | Additional Notes |
|---|---|---|---|
| LBRY Protocol | Library Updates | #86, #87, #88, #89 | |
| LBRY Plugin | Plugin Updates | #28, #29, #30, #31, #33, #34, #35, #36, #38, #39, #47, #48, #50 | |
| LBRY Plugin | UI Updates | #653, #655, #657, #658, #659 #748 |
Link to an easy to test version or a demo video.
- https://account.pinner.xyz
- GitHub - LumeWeb/lbry-cli-demo · GitHub
- Follow demo 5,
lbry-upload.- Please note this is a minimalist demo using the grant implementation of the protocol spec. The prior demos demonstrated the reference LBRY python interop with the grant go implementation, and so to be KISS with further demos, this one allows directly uploading a file with the go implementation and no docker or additional complexities needed. So this can be considered a LBRY tool per the grant milestones.
- For pinning, the following is a list of stream
SD hashesthat can be used. These were sampled from the LBRY network:000009ed42b383e571cd219e66651f23b605a49b30f8161a187df9665cf22732b126fae5e1e9c8e936d2cd0ed118012000001157b0b1a3b00b8e9d62feababef1f7088e2346aa9388f298b58b8a5d2591e7d0c2ab3d7e89716a1cfc4394847d000001449db520160334766444614c0ac89e010c04d125f097134da20f25d71e34b114ad5a6212bcfc68517647778d8e0000015d5681cfc2a554b0c7c348f12c1162a4aaea101ecd8ff46d33bda92652a89ab83fa827378aefdeb1eadead898e00000195a27987b8a9b8f180a0b1b004d8f70add6f4fa19b19833e0cc0484076be72c68b27817d2b943ec4900a49ee26000001ec447f83f1702e506dc0b361de95090fc0f31ec66905557ec035f9a009ee978079d9462d04a04e78604797bc7a0000023faa6ebd8a4ff1a830e26785e7818a45c6016420f49de655024f1ef1d2f7f6eeea8007bc60e6855d37e49c4572000002c90d3d39ced557edfa705b92d1dcfceb3fc7c399d6ec9b00dd6c899a98b18a3c72b16b97ff41b7bfffeee584fa0000042e8cae86fd99f0ec80f3b7b1034a8b97d86b2b5b2b6099b37fff4bf29202f5f7e949884124b54d3e2d0f6f7c45000004591b854ff224a21ba1173f63d97cdb0a744b2ac0301edaffc74895d359b7a27b166d8d877c670b4a3fd78b7e27
Provide an overall summary of everything achieved during this grant.
Implemented a MVP integration of LBRY content hosting with the standard portal support of POST/TUS, and network pinning. Added LBRY specific reflector uploading as an input method with a devices list.
If there were challenges you experienced and/or any work you weren’t able to complete, list it here.
Besides the DHT issues hit in the 1st part of the grant, LBRY’s state is very much the implementation is the spec. As such I ran into a lot of weird edge cases during testing. LBRY has a concept of a terminating blob that is effectively a fake data chunk? that has to be supported given the manifest hash is of the JSON blob’s contents. That caused a fair bit of grief in data modeling and defensive checks, especially because it is an optional thing.
Second, I found only recently… manifest JSON key ordering was changed so manifest blobs in-the-wild can have multiple ways that the JSON is serialized… Had to handle that using a concept of profiles after seeing backend processing errors. Was not caught earlier as it depends on the file your working with :/.
All work has been completed, these are just engineering gotchas discovered during testing.
What lessons have you learned as a result of this grant?
Reinforced the fact of unknown unknowns and that there will always be things you need to handle in protocol specs that you never saw coming. Learned some more in-the-weeds and obscure stuff regarding DHT discovery mechanics, and how much of it connects back to principles IPFS and other nets use.
What are you most proud of about your work on this grant?
One baby step closer to wiring up web3 and bringing it mainstream