Windows storage driver

  • I'm developing a storage driver for Sia using Dokan and am currently in design phase. Before reinventing the wheel, just wanted to check to see if this is already in the works for Sia.

  • admins

    To the best of my knowledge, nobody is working on this. Would be really exciting to see this though.

  • When it gets to a testable state, I'll push it to github and send you guys a note. Thanks for letting me know. I'm about half way through api units tests and should have something soon.

  • Coming along. Almost ready for testing:
    alt text

  • looks great... will the functinality be similar to a "normal" windows drive??
    It will still need the SIAD running in the back ground, or - and still the full setup of the SIA UI, right?

  • It will be treated as either a standard fixed or removable drive, so normal windows explorer browsing, etc. In a nutshell, it operates on a local cache and sync's changes once files are created/modified/deleted. Also, network sharing should be possible. How much you choose to keep cached is configurable so as to not "waste" too much local drive space. And siad or SiaUI will need to be running. Trying not to rewrite a full client, but may end up that way.

  • This looks very promising, I think this is excactly what this project needs at this stage.

    Ill be happy to do some testing of this once it reaches some sort of alpha maturity.

    Keep it up.

  • @brisk Glad to see there's interest in this. In it's current state, Sia feels more like an online backup service than a live filesystem. Hopefully this can bridge the gap a bit. Linux FUSE is next on the todo list if this is successful.

  • count me in for testing!! I agree, seems SIAs focus is back bone and optimizing speed and how to aviod "attacks", which is absolutely also key and that they rely on 3rd parties to leverage the potential of the cloud sharing. The service still is very "geeky" to interact with, so having it more easily consumable via native Windows is definately a good start... Please keep updating :-)

  • i think you should get familiar with sia current caveats. top of head
    -sia requires all files on local disk to repair
    -sia inefficient on files <<40mb

    will be adressed some day

  • very interested in testing this soon ;-)

    edit: BTW will it be open source?

  • @snakes Definitely. MIT license, unless there's some conflict with 3rd-party libraries, which isn't likely.
    @brisk Thanks for the info. Not show stoppers, but limitations I'll have to clearly state. Should be able to work around most of it, but when it's more appropriate, I'll reach out to Sia dev's with issues this project has encountered.

    Probably 3-4 weeks away for testing. I've had quite a bit of available time to spend on it lately. Any features or suggestions, just post them here. Thanks again for the feedback. Keeps me motivated :)

  • Features hmm, Ill describe a problem.

    Typical user of this windows drive will not have 24/7 uptime, there will be reboots.
    This causes the wallet to be locket.
    This causes the siad not able to renew contracts
    This causes data to possibly be lost'

    I do see the problem with storeing the seed to unlock on disk, hackers will love that, but if the amount in wallet is like < 20$ the risk is manageble, right?

    I dont know which software should be responsible for unlocking wallet on reboot, but I do think its a needed feature for this to work.

    //Cheers, keep going don t stop

  • @brisk Worst case would be a prompt after login for unlock with option to store the password encrypted. The app won't expose itself to network, so it should be relatively secure that way. Essentially, Google Drive and Dropbox behavior without the need to send anything authentication-related over the internet. You're absolutely right, though, with Sia it's data and currency you have to worry about keeping secure.
    Corruption should be minimal and even less likely with SiaDrive. Sia is the service, but internally the app will have quite a bit of safeguards in place. To what extent will evolve over time, but it's my primary focus to ensure reliability.
    Really great feedback. Keep it coming - I'll keep coding :)

  • I forgot to address the uptime issue for renewal. Since files reside in a cache folder, the app will be intelligent enough to re-upload missing files in Sia and to download files that aren't cached (i.e. uploaded via Sia-UI). This won't help if the file isn't cached (i.e. LRU eviction) and also fails to renew, but will provide a little more safety. Also, as you mentioned, the cache style will cause issues if repair is needed assuming the configured cache size is less than your total amount stored.
    Another idea I had was to host siad on a system that will run 24/7 and to create a proxy service that resides on the siad machine. The proxy would allow SiaDrive to run on multiple boxes that wouldn't need to be up.

  • @drexel: a note on your idea to host a SIAd instance externally to avoid it to be run local. IMO that would non alligned with the idea of P2P and introduce a single point of failure. Then I personally think it is better to have the "hazzle" locally.

  • @larsfloe Good point. Not on the radar for first release. Plenty of challenges without it. There would be security implications as well. siad would still listen on loopback only, but any network expose would need to be secure.

  • Global Moderator

    @drexel said in Windows storage driver:

    And siad or SiaUI will need to be running.

    Looks really good! I would try to divorce your app from the SiaUI app at the very least. Maybe even let user define location of siad as an option and start the daemon if its not already running.

  • @in-cred-u-lous Html/css are king for UI's :)
    Good to know. Wasn't entirely sure which route to take, but most dev has been against siad standalone. I do test against both just to be sure that Sia-UI interactions aren't causing issues. The app will guide you through setting up a new account, if required. May just add an option to install siad when packaged to keep it simple.

  • Tedious week focused on unit test, mock siad and creating test cases. I'll try to update once a week.

  • @drexel maybe you would consider to join the sia slack and discuss you project in the #contributors channel

Log in to reply