Closed klikooo closed 7 years ago
http://www.multichain.com/developers/blockchain-parameters/
parameter | description (default) | value | why |
---|---|---|---|
chain-protocol | Use multichain for a MultiChain blockchain or bitcoin for a bitcoin-style blockchain with no permissions, native assets or streams. | multichain | needed to have permissions |
chain-description | Textual description of the blockchain for display to users. | Verkiezingen X | |
root-stream-name | Name of the root stream for general data storage (leave blank for none). | root | Default |
root-stream-open | Allow anyone with send permissions to write to the root stream. (true) | true | Default |
chain-is-testnet | Whether to set testnet to true in the output of various JSON-RPC API calls. This is for compatibility with Bitcoin Core and does not affect any other testnet-like behavior. (false) | false | Is not a test net |
target-block-time | Target average number of seconds between blocks, i.e. delay for confirming transactions. If this is below 10 seconds, it is recommended to set mining-turnover low, to minimize the number of forks. (60) | 10 | see final report for calculation |
maximum-block-size | Maximum number of bytes in each block, to prevent network flooding by a rogue miner. (1000000 (1MB)) | 1MB | default, should be able to hold 5k transactions, see final report |
parameter | description (default) | value | why |
---|---|---|---|
anyone-can-connect | Apply no restriction to connecting to the network, i.e. nodes do not require connect permissions. (false) | true | For transparency reasons |
anyone-can-send | Apply no restriction to sending transactions, i.e. signing transaction inputs. (false) | false | Government can freeze wallets if person in question loses his right to vote, (e.g in case of incarceration or death) |
anyone-can-receive | Apply no restriction to receiving transactions, i.e. appearing in transaction outputs. (false) | true | Ability to proxy-vote |
anyone-can-receive-empty | Apply no restriction to addresses which appear in transaction outputs containing no native currency, assets or other metadata. Only relevant if anyone-can-receive=false. This allows addresses without receive permission to include a change output in non-asset transactions, e.g. to publish to streams. | false | .... |
anyone-can-create | Apply no restriction to creating new streams. (false) | false | No streams are used so unnecessary, except the root stream |
anyone-can-issue | Apply no restriction to issuing (creating) new native assets. (false) | false | Issuing means creating new election -> reserved for government |
anyone-can-mine | Apply no restriction to mining blocks for the chain, i.e. confirming transactions. (false) | false | Mining reserved for government nodes to protect against monopoly attack |
anyone-can-activate | Apply no restriction to changing connect, send and receive permissions of other users. (false) | false | Only admin is allowed to do this |
anyone-can-admin | Apply no restriction to changing all permissions of other users. (false) | false | obvious |
support-miner-precheck | Support advanced miner permission checks by caching the inputs spent by an administrator when setting admin or mine permissions – see permissions management for more information. (true) | true | Default |
allow-p2sh-outputs | Allow pay to scripthash outputs, where the redeem script is only revealed when an output is spent. See permissions management for more information about permissions and P2SH addresses. (true) | false | p2sh is not needed to create and send/verify transactions. Is thus an unnessacary risk (when turned on), which can be avoided. |
allow-multisig-outputs | Allow multisignature outputs, where more than one address is explicitly listed in a transaction output, and a given number of these addresses are required to sign in order to spend that output. See permissions management for more information about permissions and multisig outputs. (true) | false | Isn't needed |
parameter | description (default) | value | why |
---|---|---|---|
setup-first-blocks | Length of initial setup phase in blocks. During the setup phase, the constraints specified by the other parameters in this section are not applied. (1440) | - | This does not matter since the government will send about 13 million transactions, which will create a lot of blocks |
mining-diversity | Minimum proportion of permitted miners required to participate in round-robin mining to render a valid blockchain, between 0.0 (no constraint) and 1.0 (every permitter miner must participate). Unlike mining-turnover, this is a hard rule which determines whether a blockchain is valid or not. (0.5) | 0.75 | This is; "a constraint on the number of blocks which may be created by the same miner within a given window". 0.75 is good: For example, if miners=20, f=2.5% and c=25% then setting diversity=0.75 keeps both Pr(F) and Pr(C) below 0.001%. Probability f of technical failure and c of malicious collusion |
admin-consensus-admin | Proportion of permitted administrators who must agree to modify the admin privileges for an address, between 0 (no consensus required) and 1 (every admin must agree). (0.5) | 1 | All admins for safety |
admin-consensus-activate | Proportion of permitted administrators who must agree to modify the activate privileges for an address, between 0 and 1. (0.5) | ||
admin-consensus-mine | Proportion of permitted administrators who must agree to modify mining privileges for an address, between 0 and 1. (0.5) | 1 | All admins agree for safety reasons |
admin-consensus-create | Proportion of permitted administrators who must agree to modify stream creation privileges for an address, between 0 and 1. (0.0) | - | Don't use streams |
admin-consensus-issue | Proportion of permitted administrators who must agree to modify asset issuing privileges for an address, between 0 and 1. (0.0) |
parameter | description (default) | value | why |
---|---|---|---|
lock-admin-mine-rounds | Ignore forks that reverse changes in admin or mine permissions after this many (integer) mining rounds have passed. A mining round is defined as mining-diversity multiplied by the number of permitted miners, rounded up. This prevents changes in the blockchain’s governance model from being reversed and can be overridden by each node using the lockadminminerounds runtime parameter. | 10 | Default value |
mining-requires-peers | A node will only mine if it is connected to at least one other node. This is ignored during the setup phase or if only one address has mine permissions, and can be overridden by each node using the miningrequirespeers runtime parameter. (true) | true | An isolated node mining is useless to the network |
mine-empty-rounds | If there are no new transactions, stop mining after this many rounds of empty blocks. A mining round is defined as mining-diversity multiplied by the number of permitted miners, rounded up. This reduces disk usage in blockchains with periods of low activity. If negative, continue mining indefinitely. This is ignored during the setup phase or if target-adjust-freq>0, and can be overridden by each node using the mineemptyrounds runtime parameter. | 5 | No mining needed when there is no election in progress or no passes being cashed, |
mining-turnover | A value of 0.0 prefers pure round robin mining between an automatically-discovered subset of the permitted miners, with others stepping in only if a miner fails. In this case the number of active miners will be mining-diversity multiplied by the number of permitted miners, rounded up. A value of 1.0 prefers pure random mining between all permitted miners. Intermediate values set the balance between these two behaviors. Lower values reduce the number of forks, making the blockchain more efficient, but increase the level of mining concentration. Unlike mining-diversity, this is a recommendation rather than a consensus rule, and can be overridden by each node using the miningturnover runtime parameter. (0.5) | low | Must be low to reduce forks |
parameter | description (default) | value | why |
---|---|---|---|
skip-pow-check | Skip checking whether block hashes demonstrate proof of work. | false | Obvious |
pow-minimum-bits | Initial and minimum proof of work difficulty, in leading zero bits. (1 - 32) | 4 | Should be low so it easy to mine a block and thus conform transactions |
target-adjust-freq | Interval between proof of work difficulty adjustments, in seconds, if negative - never adjusted. (-1 - 4294967295) | -1 | Difficulty should not increase, to ensure blocks are still mined fast enough |
allow-min-difficulty-blocks | Allow lower difficulty blocks if none after 2* |
false | Difficulty is already quite low, so this is not necessary |
parameter | description (default) | value | why |
---|---|---|---|
only-accept-std-txs | Only accept and relay transactions which qualify as 'standard'. | true | Default |
max-std-tx-size | Maximum size of standard transactions, in bytes. (1024 - 100000000) | ||
max-std-op-returns-count | Maximum number of OP_RETURN metadata outputs in standard transactions. (0 - 1024) | 10 | Default |
max-std-op-return-size | Maximum size of an OP_RETURN metadata output in a standard transaction, in bytes. | 2097152 | Default |
max-std-op-drops-count | Maximum number of inline OP_DROP metadata elements in a single output in standard transactions. | 5 | Default |
max-std-element-size | Maximum size of data elements in standard transactions, in bytes. | 8192 | Default |
Not yet determined are:
Research what kind of parameters we can alter with MutliChain