Skip to main content

Configure the parameters

The config.json file is used to configure the parameters. A sample conf file is given below:


{
  "contract" : {
    "address" : "0x5FbDB2315678afecb367f032d93F642f64180aa3",
    "gasLimit" : "30000000",
    "gasPrice" : "2000000000",
    "_comment": "gas price is the average price on Aug 8, 2025 (https://etherscan.io/gastracker#chart_gasprice)"
  },

  "issuer" : {
    "name": "university",
    "address": "<ip_address>:8000",
    "totalVCs": "1",
    "numberOfTokensInCircuit": "1",
    "maxNumberOfTokenBlocksInVP": "2",
    "revokedVCs": "2",
    "revocation_rate_base": "15",
    "revocation_rate_step": "1",
    "revocation_rate_end": "16",
    "initialTimestamp": "",
    "duration": "10",
    "totalEpochs": "10",
    "mimimumExpiryDurationOfVC": "365",
    "starting_epoch": 0,
    "usePreGeneratedKeysAndVCs": "false"
  },
  "holder" : {
    "name": "bob",
    "maximumNumberOfHolderObjects": "100",
    "numberOfHolders": "20"
  },
  "verifier" : {
    "name": "employer"
  },
  "blockchain" : {
    "rpcEndpoint" : "http://127.0.0.1:8545/",
    "wsEndPoint" : "ws://127.0.0.1:8545/",
    "account" : "0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199",
    "privateKey" : "df57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e"
  },

  "logger" : {
    "env" : "dev",
    "output": "console",
    "filename": "logs",
    "_comment1": "ouput:<console> - for printing in console, <file> - for writing to file",
    "_comment" : "env is used to configure the logger level at zapper. <dev> for devlopment, <prod> for production "
  },
  "mode" : {
    "debug" : "false"
  },
  "token" : {
    "numberOfTokensToStore": ["1","10","100","1000","10000","100000"]
  },
  "run" : {
    "flow" : "false",
    "circuit": "false",
    "irma_test" : "false",
    "compute_final_result" : "false",
    "compute_token_storage_cost": "false",
    "vc_test": "false",
    "zkp_test": "false",
    "crypto_test": "false",
    "generate_vcs": "false"
  },
  "benchmark": {
    "setup": "true",
    "issuance": "true",
    "refresh": "true",
    "revocation": "true",
    "presentation_verification": "true",
    "irma_setup": "false",
    "irma_issuance": "false",
    "irma_revocation_presentation_verification": "false",
    "irma_presentation_and_verification": "false",
    "max_issued_vcs": "1000000",
    "m": 365,
    "max_vp_validity": 60,
    "k": 1,
    "revocation_rate": "1",
    "number_of_experiments": "4",
    "duration": 10000
  }
}
  1. “max_issued_vcs” - denotes the maximum number of VCs an issuer would issue
  2. “m” - denotes the expiration period
  3. “max_vp_validity” - denotes the maximum validity period of VPs
  4. “k” - number of tokens that can be proven using a single ZK proof (related to optimization)
  5. “duration” - epoch duration.
  6. “revocation_rate” - the percentage of VCs revoked till the expiration period. Each epoch, the following number of VCs would be revoked: (revocation ratemax issued vcs)/m(\mathsf{revocation \ rate} * \mathsf{max \ issued \ vcs})/\mathsf{m}

Modify the parameters needed for benchmarking

Set the following to true to do bencharmking or set false otherwise:
	"setup": "true",
    "issuance": "true",
    "refresh": "true",
    "revocation": "true",
    "presentation_verification": "true",
    "irma_setup": "false",
    "irma_issuance": "false",
    "irma_revocation_presentation_verification": "false",
    "irma_presentation_and_verification": "false",