VNP-004 Change parameter spam.pow.increaseDifficulty (14th june 2023)

Title:

Change parameter spam.pow.increaseDifficulty from 0 to 1

Description:

The Vega blockchain requires all transactions to be submitted with a valid proof-of-work (PoW). This PoW is generated by the client application, and it is intended to protect the network from spam transactions. The network parameter spam.pow.increaseDifficulty allows users to submit increasingly more difficult PoW when they have filled their allocation of transactions in a given block. The amount of transactions a user can put into a single block before increasing the difficult used in their PoW calculations is determined by the network parameter spam.pow.numberOfTxPerBlock . This parameter is currently set to 2 on Mainnet.

The network parameter spam.pow.increaseDifficulty , which is proposed to be increased to 1, is currently set to 0. This means that users cannot increase the difficulty of their PoW at present, and therefore, after submitting two transactions in a single block, they must wait until the next block to submit more transactions. Increasing the parameter to 1, will allow users to increase the difficult of their PoW by 1 each time they reach the block transaction limit. This allows users to pre-compute PoW asynchronously and submit more transactions per block at times of high demand for trading.

You can read more about spam protection mechanisms using the link below: specs/protocol/0072-SPPW-spam-protection-PoW.md at master ยท vegaprotocol/specs ยท GitHub

Full Proposal JSON:

{
  "proposalSubmission":{
    "rationale":{
      "title":"Proposal for spam.pow.increaseDifficulty",
      "description":"#Summary\n\nspam.pow.increaseDifficulty: If a wallet exceeds the max transactions per block, the difficulty of the PoW increases by this factor. Current setting is 0, this proposes increasing it to 1. This change will allow market makers to update their orders more frequently, resulting in more accurate and more competitive prices on Vega markets."
    },
    "terms":{
      "updateNetworkParameter":{
        "changes":{
          "key":"spam.pow.increaseDifficulty","value":"1"
          }
        },
        "closingTimestamp":1687176000,
        "enactmentTimestamp":1687176000
      }
    }
  }

On-chain proposal

2 Likes

IMO it makes sense to set this to 1.