2 min read

I've uploaded a 187.4kB file on the EOS Blockchain for FREE with EOSfilestore, and this is what I've learnt

There are many Blockchain projects that sell themself as "Blockchain for X" (where "X" is something cool!), unfortunatly the Blockchain is basically is an immutable, decentralized and secure data storage so if X if rapresented by data you can use an existing Blockchain, the same way you use Internet, instead of Internet for Gaming or Internet for Finance

EOSfilestore

TLDR; EOSfilestore is on Github !

Most of non scammy Blockchains have different tradeoffs, EOS has fast and free transactions and you pay the service with inflation.

The EOS cryptocurrency has an actual value, because if You stake it, you can reserve a certain amount of CPU, RAM or NET bandwidth on the EOS Blockchain.

How does it work?

Currently eosfilestore is a very simple to use command-line tool.

$ eosfilestore push myfile.gif
...
b5407140a0f7b6365b2dcf1731f6ad50ee0502d052ecdb9da01700ecd398f759 cpu: 8757 net:1272
Done, uploaded myfile.gif in b5407140a0f7b6365b2dcf1731f6ad50ee0502d052ecdb9da01700ecd398f759

It will base64 encode the file and split it in several action transactions. The hash b5407140a0f7b6365b2dcf1731f6ad50ee0502d052ecdb9da01700ecd398f759 is the only information you need to rebuild the file back.

$ eosfilestore get b5407140a0f7b6365b2dcf1731f6ad50ee0502d052ecdb9da01700ecd398f759 x.gif
...
0fb2a1ebb57af6ba344ce43a10c88166c8c8b4b413652862266cfab4c0c95900
null
Done, saved b5407140a0f7b6365b2dcf1731f6ad50ee0502d052ecdb9da01700ecd398f759 in x.gif

Why would I want to store a file on the Blockchain?

Because you can. Jokes aside, there many benefits to store certain files on the Blockchain:

  • Time proof: You can demonstrate publically you know, or you have, something to a certain date in the past

  • Secure and Censorship resistant: Once the file is on the Blockchain you can't alter it, you can't corrupt it and it is nowhere and everywhere at the same time.

  • Probably there are also other use cases, the limit is your imagination

EOSfilestore tradeoffs and what I've learnt

  1. It costs 0 EOS to upload a file, but if you don't stake enough EOS for CPU or NET your file upload won't complete successfully, of course.

  2. RAM Cost. To publish my basic smart contract to the EOS mainnet I should pay 50kB RAM =~ 20 EOS =~ $ 200, so I'm using decentwitter / avatar action for my purposes.. Feel free to donate to eosfilestore RAM or EOS to allow me to deploy a dedicated smart contract.

  3. In C++ a string has the max length of 4294967294 chars but in EOS the limit is lower because there is also a limit on transaction size at network level.

  4. Storing a file on a Blockchain is not GDPR compliant.. because you can't delete it. But you encrypt it and then forget the password.

  5. It isn't IPFS or Torrent, probably the EOSfilestore technique isn't suited for very big files. But 187.4kB could be a lot of kinds of documents an it is 25 txs

Finally I've consumed some CPU and NET, for the EOS I'm staking for it

Conclusion

Feedbacks are welcomed, EOSfilestore is Open source and available on Github.