Skip to main content

Safe Mode

Safe Mode while Consensus Forks

This command is used to protect miners when there is a consensus fork in the blockchain, stopping the generation of block templates and the acceptance of transactions.

You can use mvc-cli help command to view the usage of specific commands. The JsonRpc call method is in the example.

Commands

== Safemode ==
getsafemodeinfo
ignoresafemodeforblock "blockhash"
reconsidersafemodeforblock "blockhash"

getsafemodeinfo

Returns safe mode status.

getsafemodeinfo

Returns safe mode status.

Arguments:

Result:
{
"safemodeenabled": <true/false>,
"activetip": {
"hash": "<block_hash>",
"height": <height>,
"blocktime": "<time UTC>",
"firstseentime": "<time UTC>",
"status": "active"
},
"timeutc": "<time_of_the_message>",
"reorg": {
"happened": <true/false>,
"numberofdisconnectedblocks": <number>,
"oldtip": {
"hash": "<block_hash>",
"height": <height>,
"blocktime": "<time UTC>",
"firstseentime": "<time UTC>",
"status": "<block_header_status>"
}
},
"forks": [
{
"forkfirstblock": {
"hash": "<block_hash>",
"height": <height>,
"blocktime": "<time UTC>",
"firstseentime": "<time UTC>",
"status": "<block_header_status>"
},
"tips": [
{
"hash": "<block_hash>",
"height": <height>,
"blocktime": "<time UTC>",
"firstseentime": "<time UTC>",
"status": "<block_header_status>"
},
...
],
"lastcommonblock": {
"hash": "<block_hash>",
"height": <height>,
"blocktime": "<time UTC>",
"firstseentime": "<time UTC>",
"status": "active"
},
"activechainfirstblock": {
"hash": "<block_hash>",
"height": <height>,
"blocktime": "<time UTC>",
"firstseentime": "<time UTC>",
"status": "active"
},
},
...
]
}


Examples:
> mvc-cli getsafemodeinfo
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getsafemodeinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:9882/

ignoresafemodeforblock

Specified block, and all its descendants, will be ignored for safe mode activation.

Param:

  • blockhash (string, required)
ignoresafemodeforblock "blockhash"

Specified block, and all its descendants, will be ignored for safe mode activation.

Arguments:
1. "blockhash" (string, required) the hash of the block which we want to ignore.

Result:

Examples:
> mvc-cli ignoresafemodeforblock "blockhash"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "ignoresafemodeforblock", "params": ["blockhash"] }' -H 'content-type: text/plain;' http://127.0.0.1:9882/

reconsidersafemodeforblock

Specified block, and all its ancestors, will be considered for safe mode activation.

Param:

  • blockhash (string, required)
reconsidersafemodeforblock "blockhash"

Specified block, and all its ancestors, will be considered for safe mode activation.

Arguments:
1. "blockhash" (string, required) the hash of the block for which we want

Result:

Examples:
> mvc-cli reconsidersafemodeforblock "blockhash"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "reconsidersafemodeforblock", "params": ["blockhash"] }' -H 'content-type: text/plain;' http://127.0.0.1:9882/