Cannot store files more than 2MB in size.

+4 votes

I have changed max-std-tx-sizemax-std-op-return-size and maximum-block-size. Still cannot store data more than 2MB. I even increased target-block-time. still cannot upload more than 2MB. Please help.

asked Jul 2, 2017 by 9611838416m
edited Jul 3, 2017 by MultiChain

1 Answer

+1 vote

Please confirm which version of MultiChain you're using, post the output of getblockchainparams, and show the steps you are taking and the error you are getting.

answered Jul 3, 2017 by MultiChain
I used the latest version of multichain (multichain-1.0-beta-2). The params.dat file has the following in it:

----Start Attachment----
# Basic chain parameters

chain-protocol = multichain             # Chain protocol: multichain (permissions, native assets) or bitcoin
chain-description = MultiChain genichain # Chain description, embedded in genesis block coinbase, max 256 chars.
root-stream-name = root                 # Root stream name, blank means no root stream.
root-stream-open = false                # Allow anyone to publish in root stream
chain-is-testnet = false                # Content of the 'testnet' field of API responses, for compatibility.
target-block-time = 86400               # Target time between blocks (transaction confirmation delay), seconds. (2 - 86400)
maximum-block-size = 1000000000         # Maximum block size in bytes. (1000 - 1000000000)

# Global permissions

anyone-can-connect = false              # Anyone can connect, i.e. a publicly readable blockchain.
anyone-can-send = false                 # Anyone can send, i.e. transaction signing not restricted by address.
anyone-can-receive = false              # Anyone can receive, i.e. transaction outputs not restricted by address.
anyone-can-receive-empty = true         # Anyone can receive empty output, i.e. without permission grants, asset transfers and zero native currency.
anyone-can-create = false               # Anyone can create new streams.
anyone-can-issue = false                # Anyone can issue new native assets.
anyone-can-mine = false                 # Anyone can mine blocks (confirm transactions).
anyone-can-activate = false             # Anyone can grant or revoke connect, send and receive permissions.
anyone-can-admin = false                # Anyone can grant or revoke all permissions.
support-miner-precheck = true           # Require special metadata output with cached scriptPubKey for input, to support advanced miner checks.
allow-p2sh-outputs = true               # Allow pay-to-scripthash (P2SH) scripts, often used for multisig.
allow-multisig-outputs = true           # Allow bare multisignature scripts, rarely used but still supported.

# Consensus requirements

setup-first-blocks = 60                 # Length of initial setup phase in blocks, in which mining-diversity,
                                        # admin-consensus-* and mining-requires-peers are not applied. (1 - 31536000)
mining-diversity = 0.3                  # Miners must wait <mining-diversity>*<active miners> between blocks. (0 - 1)
admin-consensus-admin = 0.5             # <admin-consensus-admin>*<active admins> needed to change admin perms. (0 - 1)
admin-consensus-activate = 0.5          # <admin-consensus-activate>*<active admins> to change activate perms. (0 - 1)
admin-consensus-mine = 0.5              # <admin-consensus-mine>*<active admins> to change mining permissions. (0 - 1)
admin-consensus-create = 0.0            # <admin-consensus-issue>*<active admins> to change create permissions. (0 - 1)
admin-consensus-issue = 0.0             # <admin-consensus-issue>*<active admins> to change issue permissions. (0 - 1)

# Defaults for node runtime parameters

lock-admin-mine-rounds = 10             # Ignore forks that reverse changes in admin or mine permissions after this many mining rounds have passed. Integer only. (0 - 10000)
mining-requires-peers = true            # Nodes only mine blocks if connected to other nodes (ignored if only one permitted miner).
mine-empty-rounds = 10                  # Mine this many rounds of empty blocks before pausing to wait for new transactions. If negative, continue indefinitely (ignored if target-adjust-freq>0). Non-integer allowed. (-1 - 1000)
mining-turnover = 0.5                   # Prefer pure round robin between a subset of active miners to minimize forks (0.0) or random equal participation for all permitted miners (1.0). (0 - 1)

# Native blockchain currency (likely not required)

initial-block-reward = 0                # Initial block mining reward in raw native currency units. (0 - 1000000000000000000)
first-block-reward = -1                 # Different mining reward for first block only, ignored if negative. (-1 - 1000000000000000000)
reward-halving-interval = 52560000      # Interval for halving of mining rewards, in blocks. (60 - 4294967295)
reward-spendable-delay = 1              # Delay before mining reward can be spent, in blocks. (1 - 100000)
minimum-per-output = 0                  # Minimum native currency per output (anti-dust), in raw units.
                                        # If set to -1, this is calculated from minimum-relay-fee. (-1 - 1000000000)
maximum-per-output = 100000000000000    # Maximum native currency per output, in raw units. (0 - 1000000000000000000)
minimum-relay-fee = 0                   # Minimum transaction fee, in raw units of native currency. (0 - 1000000000)
native-currency-multiple = 100000000    # Number of raw units of native currency per display unit. (0 - 1000000000)

# Advanced mining parameters

skip-pow-check = false                  # Skip checking whether block hashes demonstrate proof of work.
pow-minimum-bits = 8                    # Initial and minimum proof of work difficulty, in leading zero bits. (1 - 32)
target-adjust-freq = 172800             # Interval between proof of work difficulty adjustments, in seconds, if negative - never adjusted. (-1 - 4294967295)
allow-min-difficulty-blocks = true      # Allow lower difficulty blocks if none after 2*<target-block-time>.

# Standard transaction definitions

only-accept-std-txs = true              # Only accept and relay transactions which qualify as 'standard'.
max-std-tx-size = 100000000             # Maximum size of standard transactions, in bytes. (1024 - 100000000)
max-std-op-returns-count = 1024         # Maximum number of OP_RETURN metadata outputs in standard transactions. (0 - 1024)
max-std-op-return-size = 20971520       # Maximum size of OP_RETURN metadata in standard transactions, in bytes. (0 - 67108864)
max-std-op-drops-count = 100            # Maximum number of OP_DROPs per output in standard transactions. (0 - 100)
max-std-element-size = 32768            # Maximum size of data elements in standard transactions, in bytes. (128 - 32768)

# The following parameters were generated by multichain-util.
# They SHOULD ONLY BE EDITED IF YOU KNOW WHAT YOU ARE DOING.

default-network-port = 61172            # Default TCP/IP port for peer-to-peer connection with other nodes.
default-rpc-port = 15590                # Default TCP/IP port for incoming JSON-RPC API requests.
chain-name = genichain                  # Chain name, used as first argument for multichaind and multichain-cli.
protocol-version = 10007                # Protocol version at the moment of blockchain genesis.
network-message-start = fbdefdeb        # Magic value sent as the first 4 bytes of every peer-to-peer message.
address-pubkeyhash-version = 0082fa66   # Version bytes used for pay-to-pubkeyhash addresses.
address-scripthash-version = 05936a2e   # Version bytes used for pay-to-scripthash addresses.
private-key-version = 80bce16a          # Version bytes used for exporting private keys.
address-checksum-value = fb9f0e7d       # Bytes used for XOR in address checksum calculation.



----End Attachment----

The issue I'm seeing is in the multichain web demo, when I upload files upto 2048B I can see my file on the view streams page. But 2049B onwards there is no Information there.
Picture: http://34.212.6.159/multichain.png
Your issue is probably with your PHP configuration, which has a maximum upload size defined in the .ini file. See upload_max_filesize here: http://php.net/manual/en/ini.core.php
...