Author

Topic: P2P [block/video/audio/whatever] storage (Read 757 times)

legendary
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
January 08, 2013, 06:48:03 PM
#2
Before i read the long proposal, In short, Why should I store others storage? and in short what prevents this from being abused for profit(assuming the p2p servers are not gaining anything)
full member
Activity: 547
Merit: 105
Bitcoin ya no es el futuro, es el presente
January 08, 2013, 06:02:13 PM
#1
This is an idea I had a week ago when I was trying to sleep after a couple of cups of espresso coffee Smiley


The P2P Block Storage system is a storage service based on Namecoin network for metadata and Bitcoin/Litecoin for payment system.

It can allow uploading any type of digital information, including files, images, sound and video. The information is protected on at least 1 group of nodes and anyone can upload and download information from/to the network.

The information is stored as blocks of bits, not bytes, so that one node can handle only one bit per each byte of each block, making it impossible to say what is that information. This protects the nodes from being charged by authorities, like the RIAA or another one.

The initial focus of this network is to share video, like movies and trailers, but because the blocks are any type of data, they can be DRM protected movies.

The cost of the services is paid by Bitcoins (or litecoins maybe); each time a client downloads a block of data, it must pay some amount of bitcoins to the node that is serving that data.

The actors of the system are the nodes, the issuer and the customers or viewers.

The issuer is the computer that uploads the block for first time to the network.
The nodes are the computers that replicate that block and distribute it to viewers.
The viewers are the computers that downloads and uses the information from nodes.

The nodes must pay a fee to other nodes (called root nodes) when they download a block for first time. The nodes can be configured to store full blocks or only bit blocks. In case of full blocks they expose themselves to legal action in case they are storing illegal content. The nodes can vary their fee per block manually by the node operator.

A viewer can ask for a list of blocks to a node, and the node then answer which blocks does it has and the cost per block. Then, the viewer can select which blocks are going to be retrieved from which node based on a rating system and the cost per block. To know which blocks does it needs to download it ask to the Namecoin network about one content, and its associated list of blocks.

When a viewer ask a node to serve a list of blocks, the node will answer with the total cost, transaction number and bitcoin/litecoin addresses which must be used to pay for that transaction. After the viewer paid the transaction, then it can start retrieving that blocks from that node. It can retrieve the node in full once, and must save it on local storage (like temp memory or cache).

After a block is retrieved and verified by the viewer (or another nodes) they will send to the Namecoin network a rating upgrade of that node and block, allowing other viewers/nodes to know that the root node that served that block is a valid one. This increase of rating serve the root nodes to gain more viewers, and because they can adjust their cost per block, they can compete between other nodes.

A viewer can be also a node; because it already downloaded a block, it can then serve that block to other viewers or nodes, charging them for it. This way the system encourages viewers to be also nodes, helping with the network.

A node is identified by an unique ID, like UUID. When it signs to the network must send a message to the Namecoin network indicating that it is online and which are the IPs and ports are listening. They can also share a list of blocks that they are holding allowing other nodes to ask for them, just in case they are behind a NAT and cannot be contacted directly.

The stream of data obtained from nodes then can be transferred to an application like VLC or another one. If it is DRM protected it could require a special application or plugin.

A DRM protected content can include in the metadata the necessary data to allow the players to contact the original issuer and ask for a view code and pay the fees to be allowed to do that.

If a viewer don’t know anything about bitcoin/litecoin/namecoin and it is not interested on learning, it can use third party services that accept credit cards or another payment method. That services can charge the viewer for an amount of money, and the convert part of it to bitcoins and deposit it on the customer’s address.

The proposal is that each block is about 1MB, and only contain one string of bits.
The cost per block could be 0.000001 BTC, making a DVD movie (4.5GB) cost of 0.036 BTC or about 0.50 USD
The metadata stored on namecoin network must be of type blockmeta/sha256(of barcode or unique media identifier), and contain the unique media identifier, the title, meta tags, duration, format, description and number of blocks. Optionally it can contain the issuer identifier. That identifier is also stored on namecoin network.
The block metadata stored on namecoin network must be of type blockdata/sha256(same as the blockmeta)-number of block and contain the sha256 of each bit block and of the full block and optionally a GPG signature of the full block issued with the issuer GPG key.
The issuer metadata must be of blockissuer/gpg key identifier and can contain name, description, contact information, btc/ltc payment addresses, link to webservices like DRMALLOW or another one and the public GPG key.
The block-node information must be of blocknode/sha256(block id) concat uuid of the node and contain the vote: -1, 0 or 1. Also it must include the payment transaction ID used to download that block, the public address used to pay for that block and sign with that address the vote.
Every Time that a node or viewer downloads and verifies a block from one node, it must send its vote on the namecoin network.
The blockmeta must have an expiration of 1 month. If they expire, then one point of their rating is removed, if there is no more points to remove, then the block metadata is removed.
Every time that a node or viewer finish downloading of all the blocks from a blockmeta, it must tell the network that it just finish it, increasing 1 point the rating of that blockmeta.


One also can use the network as a cloud storage service. Just need to upload a block of data, and depending of which level of replication does one needs, one can download the block again and again until it has the required rating. One can also use a “markdownload” method or something like that to increase the rate, pay for that increase as if it was downloaded the block but without all the bandwidth.

Why am I including support or information about DRM here?
Well, if we want to have BTC/LTC as a supported currency we require that the existing companies participate. I don’t think that the movies producers are going to collaborate with us if they can protect their content from unauthorized usage. But that don’t restrict other persons to upload their own movies.


Please tell me what do you think about this, and if there is another project like this. Thanks
Jump to: