How to store 30kb file using Decentralized Blockchain Data Storage on NXT (nxtcoin) by attach messages?

3

2

I'm curious to how would one store a 30kb file on the NXT blockchain since the NXT protocol can attach a 1000byte message. My test scenario is storing a 30kb midi file on the nxt blockchain and then call it back to form the file again either in the browser or as a downloaded file. I want to be able to do this via the local nxt client through its api and also via online services that have their api open to query the nxt blockchain. What I need to know and confirm is the following:

  • Due to the 1000byte limit, I'd imagine it would be about 30+ separate messages to form this file.
  • To reform the file, we would need to mark each message in proper order to concatenate it.
  • Can all of this be done using only javascript and query remote nxt blockchain api's?
  • Do we need to turn bytecode into base64 for decentralized storage?
  • What other issues might we encounter?

If we can get a test scenario working, technically we can store/retrieve/embed data onto our websites/apps without needing a centralized server.

Patoshi パトシ

Posted 2014-10-30T19:13:05.677

Reputation: 8 911

a better test example is storing this 1kb chess game on the nxt blockchain: http://1kchess.an3.es/ and then retrieving it again using js and embed it onto a webpage.

Patoshi パトシ 2014-10-30T19:33:15.230

Does NXT support BIP16? Look at the http://webbtc.com/tx/ccf9eb596e7fb04e88c27ef63b465212413490906730facc9a8d7b22b06f9344 This transaction contains large amount of "extra data". Download it in binary and view as raw data in hex editor

amaclin 2015-04-06T12:42:43.943

If you add it in 30 separate messages, you'll need to keep track of where the messages are in the block chain, which will take 30*(32+4) ~= 1kb data. Doesn't seem like very efficient storage.morsecoder 2015-04-07T16:24:20.247

seems like the new nxt client supports larger attachments!Patoshi パトシ 2015-04-08T00:59:19.717

Answers

2

Seems that the new 1.5 nxt version is giving users the ability to attach up to 40kb worth of data in the blockchain. See here:

NXT 1.5 decentralized storage on the blockchain

Also found the discussion of NXT Transient Data where data can be stored on the blockchain temporarily and then removed after a certain amount of time to reduce blockchain bloat. As discussed bye Jean-Luc: https://nxtforum.org/general-discussion/price-speculation/msg126548/#msg126548

We could add a "transient data" attachment that can have larger size, but is only kept in the blockchain for a limited time, say 24 hours. The hash of the complete attachment will be included in the transaction bytes that are signed and will be kept permanently, so that transaction signature can always be verified, but the actual data will be deleted after this expiration period. Then the bloat to the blockchain and extra traffic will be limited to those attachments for the last 24 hours. This wouldn't be that useful for images for goods that sellers keep in stock permanently, but for short lived items, or even message with picture type of attachment, may work. Just an idea.

Decentralized file storage released on production blockchain:

enter image description here

Patoshi パトシ

Posted 2014-10-30T19:13:05.677

Reputation: 8 911