Løan
15-08-2017, 09:39 PM
No, no es porno.
DTube: a decentralized video platform using STEEM and IPFS. DTube is an application fully written in javascript, that runs in the browser, that allows you to upload and watch videos on top of the IPFS Network. Moreover, it uses STEEM as a database and enables earning rewards from your uploads.
Using the STEEM Blockchain as a database
Because we want DTube to be truly decentralized, we cannot have a server running a database and use it to query things. Using a blockchain is a natural solution. STEEM has many advantages over other blockchains. It is fast (3 sec blocks). It is free, anyone can use it without having to deposit some form of currency, and transactions have no fees. Who would want to pay money to upload a video, comment a video, or even upvote? Nobody. As an added bonus, the STEEM blockchain already has a reward-earning mechanism.
Any video uploaded on DTube becomes a STEEM content, that can earn rewards for 7 days. DTube doesn't use either the title or the body of a content to store information, therefore if you don't want your video upload to appear in your feed, you can edit or delete it, the video would stay intact on DTube. While it would be possible to display nothing on other platforms like steemit.com or busy.org, I believe the current behavior to be fine and will help the platform growth and the users rewards.
Using IPFS as a static file storage
IPFS is a protocol that enables decentralized file storage. The principle behind it is called Distributed Hash Tables (DHT). The same principle also powers the BitTorrent network. Just like how cryptocurrency uses asymmetrical cryptography, DHT networks will hash contents in order to be able to identify a file. The hash becomes the identifier of a file, and it's as easy as re-hashing a file and making sure the hashes match to ensure the file that was sent to us is the original.
Why not use Torrent then? Torrent arguably already has more content and is more mainstream. However, Torrent was not built for the web. Some implementations such as WebTorrent are trying to make it work, but it still requires some 'hybrid' clients that would act as bridges in order to transfer files from hard clients such as μTorrent to web clients that run in a browser. Not very convenient, even less efficient. I am sure a lot of you have used PopcornTime to watch some 'pirated' content and have enjoyed it, but building something similar that runs inside a browser without having to run hybrid clients to connect people, is sadly impossible.
IPFS is a younger, open-source, and actively developed protocol. It has a bright future ahead. Using it as the main mean of storage for this project was a no-brainer.
IPFS Storage Cost
IPFS is cool, but there is no magic. Someone needs to seed the files, and your browser cannot permanently store huge files (local storage is limited to 50MB on most browsers), so seeding through the app directly is not possible as of today. While my first idea was to ask some witnesses to run some IPFS nodes, it became clear after a few conversations that this would create more problems than solutions as most witnesses are non-technical persons and running and configuring an IPFS node correctly seems to be a tough challenge for most. I still believe this solution to be the right one, but I would clearly need to setup a docker or something easy for witnesses to actively join the DTube network and start seeding files (and earn a share of the rewards).
Instead, I searched for existing IPFS nodes and contacted the owner of IPFS Store, a website that allows you to pay in Bitcoin to keep your files on the IPFS network. After a few positive and instructional replies from @nannal (steem, twitter/etc), I knew I found my man.
I have recently created the @dtube account. This account will be used to collect 25% of the DTube author rewards. 10% of these fees will be used to pay for long-term storage of the files on IPFS Store. The rate is $0.044 per GB per month. So, for example, let's say you upload a 100MB video, that earns $10 rewards, then $0.25 will go to @nannal and ensure data redundancy for ~57 months. Once this time is passed, users will need to either pay themselves (crypto accepted of course) to keep the files being seeded, or seed it themselves directly on their own PC and connection.
Last words
While I personally believe that decentralization is the future, don't get your hopes too high yet. Competing with YouTube is an heavy task that cannot be done by one man. My intent with this project was to practically demonstrate the possibility of decentralized video on top of IPFS. It works, but we don't know how well it will work in the long-term. YouTube also has a lot of extra features that makes the experience superior. What I built, represents maybe 1% of the work required to have something that can compete with YouTube. I built some walls, but there is no insulation, or painting, and the whole building might collapse at any time.
Mensaje completo en https://steemit.com/video/@heimindanger/introducing-dtube-a-decentralized-video-platform-using-steem-and-ipfs
Sitio: https://dtube.video/
DTube: a decentralized video platform using STEEM and IPFS. DTube is an application fully written in javascript, that runs in the browser, that allows you to upload and watch videos on top of the IPFS Network. Moreover, it uses STEEM as a database and enables earning rewards from your uploads.
Using the STEEM Blockchain as a database
Because we want DTube to be truly decentralized, we cannot have a server running a database and use it to query things. Using a blockchain is a natural solution. STEEM has many advantages over other blockchains. It is fast (3 sec blocks). It is free, anyone can use it without having to deposit some form of currency, and transactions have no fees. Who would want to pay money to upload a video, comment a video, or even upvote? Nobody. As an added bonus, the STEEM blockchain already has a reward-earning mechanism.
Any video uploaded on DTube becomes a STEEM content, that can earn rewards for 7 days. DTube doesn't use either the title or the body of a content to store information, therefore if you don't want your video upload to appear in your feed, you can edit or delete it, the video would stay intact on DTube. While it would be possible to display nothing on other platforms like steemit.com or busy.org, I believe the current behavior to be fine and will help the platform growth and the users rewards.
Using IPFS as a static file storage
IPFS is a protocol that enables decentralized file storage. The principle behind it is called Distributed Hash Tables (DHT). The same principle also powers the BitTorrent network. Just like how cryptocurrency uses asymmetrical cryptography, DHT networks will hash contents in order to be able to identify a file. The hash becomes the identifier of a file, and it's as easy as re-hashing a file and making sure the hashes match to ensure the file that was sent to us is the original.
Why not use Torrent then? Torrent arguably already has more content and is more mainstream. However, Torrent was not built for the web. Some implementations such as WebTorrent are trying to make it work, but it still requires some 'hybrid' clients that would act as bridges in order to transfer files from hard clients such as μTorrent to web clients that run in a browser. Not very convenient, even less efficient. I am sure a lot of you have used PopcornTime to watch some 'pirated' content and have enjoyed it, but building something similar that runs inside a browser without having to run hybrid clients to connect people, is sadly impossible.
IPFS is a younger, open-source, and actively developed protocol. It has a bright future ahead. Using it as the main mean of storage for this project was a no-brainer.
IPFS Storage Cost
IPFS is cool, but there is no magic. Someone needs to seed the files, and your browser cannot permanently store huge files (local storage is limited to 50MB on most browsers), so seeding through the app directly is not possible as of today. While my first idea was to ask some witnesses to run some IPFS nodes, it became clear after a few conversations that this would create more problems than solutions as most witnesses are non-technical persons and running and configuring an IPFS node correctly seems to be a tough challenge for most. I still believe this solution to be the right one, but I would clearly need to setup a docker or something easy for witnesses to actively join the DTube network and start seeding files (and earn a share of the rewards).
Instead, I searched for existing IPFS nodes and contacted the owner of IPFS Store, a website that allows you to pay in Bitcoin to keep your files on the IPFS network. After a few positive and instructional replies from @nannal (steem, twitter/etc), I knew I found my man.
I have recently created the @dtube account. This account will be used to collect 25% of the DTube author rewards. 10% of these fees will be used to pay for long-term storage of the files on IPFS Store. The rate is $0.044 per GB per month. So, for example, let's say you upload a 100MB video, that earns $10 rewards, then $0.25 will go to @nannal and ensure data redundancy for ~57 months. Once this time is passed, users will need to either pay themselves (crypto accepted of course) to keep the files being seeded, or seed it themselves directly on their own PC and connection.
Last words
While I personally believe that decentralization is the future, don't get your hopes too high yet. Competing with YouTube is an heavy task that cannot be done by one man. My intent with this project was to practically demonstrate the possibility of decentralized video on top of IPFS. It works, but we don't know how well it will work in the long-term. YouTube also has a lot of extra features that makes the experience superior. What I built, represents maybe 1% of the work required to have something that can compete with YouTube. I built some walls, but there is no insulation, or painting, and the whole building might collapse at any time.
Mensaje completo en https://steemit.com/video/@heimindanger/introducing-dtube-a-decentralized-video-platform-using-steem-and-ipfs
Sitio: https://dtube.video/