Is there a formula for estimating disk usage from streams?

+1 vote
I'd like to determine how quickly 16Gb of disk space might be consumed on a device with limited storage capacity in the following scenario:

I create a seed node on a high capacity server, defining a chain and a stream. The seed node subscribes to the stream. No other node subscribes to the stream.
I create 10,000 additional nodes, each on a small device. The seed node grants chain connnect, send, receive permissions to each node as well as stream publish permission. Each node is then expected to invoke the publish command 4 times every 15 seconds with a hex data payload of approximately 400 bytes on each invocation. If run continuously, that would be 23,040 publish requests per device per day.

How quickly will the devices use up 16Gb? If less than a year, is there a procedure for archiving and offloading old stream information to free up disk space?

TIA for any insights.
asked Mar 19 by Ed

1 Answer

0 votes

So to approximately calculate this, for nodes not subscribed to the stream, you would do something like the following:

  1. Take the total amount of actual payload data.
  2. Add an overhead of approximately 200 bytes per transaction.
  3. Add an overhead of approximately 2 kilobytes per block.

Based on a rough calculation you should be OK if your block time is not too low.

Also note that you can save quite a bit of space (item 2 above) by combining multiple stream items in a single transaction. This is supported in MultiChain 2.0 alpha versions.

There is currently no way of archiving and offloading old stream information.

answered Mar 20 by MultiChain
...