call_end

    • Pl chevron_right

      Dino: Stateless File Sharing: Source Attachment and Wrap-Up

      news.movim.eu / PlanetJabber • 12 November, 2022 • 2 minutes

    Recap

    Stateless file sharing (sfs) is a generic file sharing message which, alongside metadata, sends a list of sources where the file can be retrieved from. It is generic in the sense, that sources can be from different kinds of file transfer methods. HTTP, Jingle and any other file transfers can be encapsulated with it. The big idea is that functionality can be implemented for all file transfer methods at once, thanks to this wrapper.

    Source Attaching

    The idea is simple: Once somebody started sfs, anybody can contribute more sources to the list of sources. A sfs-attachment consists of the message id of the original sfs, as well as a list of sources that should be attached.

    You might ask: “But why? I have used many messengers and never heard of such a feature, why should somebody else in the chat be able to do that?”

    I was surprised as well, but there actually are some reasonable use cases.

    1. Peer-to-Peer file sharing in groups
    2. Reviving dead download links
    3. Announcing file uploads before the upload is finished

    Security Considerations

    We obviously have to prevent the possibility of other members attaching wrong files to other people’s sfs. To prevent this, sources can only be attached to sfs, which have checksums in their metadata.

    Clients need to dismiss source attachments,

    1. if the sfs didn’t provide a checksum
    2. if the checksum algorithm is not trusted or unknown
    3. if the checksum of the downloaded file doesn’t match

    Google Summer of Code Retrospect

    This was the first time with Google Summer of Code and honestly, it’s been a nice ride. I’ve come to enjoy my stay and take pride in finishing the different components.

    When I started earlier this year, I had developed a bit of an Imposter syndrome . For one I wasn’t sure if I understood the full scope of the project, but I was also uncertain if I had the skill to work on it.

    Confidence came over time, when I managed to get an overview of everything that needed to be done. Everything suddenly looks much more manageable, when you understand the purpose and inner workings of each subcomponent that will be required over the way. Of course, it’s not completely straight forward. I often had to realize that I will need another component somewhere, but one thing at a time is manageable. Since I had my mentor to back me up whenever I got stuck, working on the project didn’t get frustrating.

    Blog posts

    Parallel to working on the project, we were expected to publish blog posts. Originally I was going for a weekly interval, but yea…

    I don’t think writing the blog posts helped me in any meaningful way. However, I do think writing blogs is a good habit and hope that

    1. I improved my blog writing skills
    2. The blogs will someday help someone

    Progress

    The GSoC period has already finished. See my pull request .

    • wifi_tethering open_in_new

      This post is public

      dino.im /blog/2022/11/stateless-file-sharing-source-attachment-and-wrap-up/

    • Pl chevron_right

      Ignite Realtime Blog: Openfire 4.7.4 release

      news.movim.eu / PlanetJabber • 9 November, 2022 • 1 minute

    The Ignite Realtime Community is happy to announce the 4.7.4 release of Openfire. This release fixes a number of bugs and represents our effort to provide a stable 4.7.x series while work continues on the next feature release of Openfire.

    Notable fixes include enhancements to cluster-specific implementation of Multi-User Chat functionality, improved websocket handling and improved statistics. Additionally, the dependency on Apache Commons Text has been upgraded, to prevent statistic analyzers raising unneeded alarms with regards to its recently published CVE.

    You can find download artifacts available here with the following sha256sum values

    a6a98540e3ab6da65916f630b7b22d04e7ec125be9d09ae98121f6075ef2ef77  openfire-4.7.4-1.noarch.rpm
    5f4bd4e6390bdfe99a63e4e72b25200461854348a9f6039368cffe1c509782fa  openfire_4.7.4_all.deb
    6bebb52b4828d9564b1e22f3d0aebaeec6eefb1e5c7899549747b48bc8d6e30d  openfire_4_7_4.dmg
    142d923f0b17e4dff65b01f69d9d5885494798011157a64cfef8847063f503ee  openfire_4_7_4.exe
    9ebcb9c15d38d4f8fb528a79f0f53440179d64c214176c2d9e578b11762258dd  openfire_4_7_4.tar.gz
    ef233db999c8a18ac43edb7fd17657c7677c0ce2e29f09c9ccb53185c451ded3  openfire_4_7_4_x64.exe
    ba0fb1d992c5169da466107e7752f5eee588d79987dcf052e5b68abc101f7173  openfire_4_7_4.zip
    

    If you have any questions, please stop by our community forum or our live groupchat . We are always looking for volunteers interested in helping out with Openfire development!

    For other release announcements and news follow us on Twitter

    1 post - 1 participant

    Read full topic