Skip to content

Latest commit

 

History

History
executable file
·
324 lines (268 loc) · 20 KB

configuration.md

File metadata and controls

executable file
·
324 lines (268 loc) · 20 KB
description keywords
This section describes the configuration parameters and their types for the evil tools.
Evil Tools
Evil Wallet
Evil Spammer
Configuration
JSON
Customize
Config
reference

Configuration

evil tools use a JSON standard format as a config file. If you are unsure about JSON syntax, you can find more information in the official JSON specs.

You can change the path of the config file by using the -c or --config argument while executing evil-tools executable.

For example:

evil-tools -c config_example.json

You can always get the most up-to-date description of the config parameters by running:

evil-tools -h --full

1. Application

Name Description Type Default value
checkForUpdates Whether to check for updates of the application or not boolean true
shutdown Configuration for shutdown object

Shutdown

Name Description Type Default value
stopGracePeriod The maximum time to wait for background processes to finish during shutdown before terminating the app string "3s"
log Configuration for log object

Log

Name Description Type Default value
enabled Whether to store self-shutdown events to a log file boolean true
filePath The file path to the self-shutdown log string "shutdown.log"

Example:

  {
    "app": {
      "checkForUpdates": true,
      "shutdown": {
        "stopGracePeriod": "3s",
        "log": {
          "enabled": true,
          "filePath": "shutdown.log"
        }
      }
    }
  }

2. Logger

Name Description Type Default value
name The optional name of the logger instance. All log messages are prefixed with that name. string ""
level The minimum enabled logging level string "info"
timeFormat Sets the logger's timestamp format. (options: "rfc3339", "rfc3339nano", "datetime", "timeonly", and "iso8601") string "rfc3339"
outputPaths A list of file paths or stdout/stderr to write logging output to array stdout

Example:

  {
    "logger": {
      "name": "",
      "level": "info",
      "timeFormat": "rfc3339",
      "outputPaths": [
        "stdout"
      ]
    }
  }

3. Tool

Name Description Type Default value
nodeURLs API URLs for clients used in test separated with commas array http://localhost:8050
faucetURL Faucet URL used in test string "http://localhost:8088"
faucetSplitNumber Number of outputs to split faucet outputs into, this determine number of txs that are sent per one faucet request. Reduce this number if not all txs are accepted due to congestion. int 20
accountStatesFile File to store account states in string "wallet.dat"
blockIssuerPrivateKey Block issuer private key (in hex) to use for genesis account spams string "db39d2fde6301d313b108dc9db1ee724d0f405f6fde966bd776365bc5f4a5fb31e4b21eb51dcddf65c20db1065e1f1514658b23a3ddbf48d30c0efc926a9a648"
accountID Account ID to use for genesis account string "0x6aee704f25558e8aa7630fed0121da53074188abc423b3c5810f80be4936eb6e"
faucetRequestsBlockIssuerPrivateKey Block issuer private key (in hex) to use for funds preparation from faucet outputs string ""
faucetRequestsAccountID Account ID to use for fund preparation. string ""

Example:

  {
    "tool": {
      "nodeURLs": [
        "http://localhost:8050"
      ],
      "faucetURL": "http://localhost:8088",
      "faucetSplitNumber": 20,
      "accountStatesFile": "wallet.dat",
      "blockIssuerPrivateKey": "db39d2fde6301d313b108dc9db1ee724d0f405f6fde966bd776365bc5f4a5fb31e4b21eb51dcddf65c20db1065e1f1514658b23a3ddbf48d30c0efc926a9a648",
      "accountID": "0x6aee704f25558e8aa7630fed0121da53074188abc423b3c5810f80be4936eb6e",
      "faucetRequestsBlockIssuerPrivateKey": "",
      "faucetRequestsAccountID": ""
    }
  }

4. Profiling

Name Description Type Default value
enabled Whether the profiling component is enabled boolean false
bindAddress The bind address on which the profiler listens on string "localhost:6060"

Example:

  {
    "profiling": {
      "enabled": false,
      "bindAddress": "localhost:6060"
    }
  }

5. Info

Name Description Type Default value
alias Alias for which info command should be executed. string ""

Example:

  {
    "info": {
      "alias": ""
    }
  }

6. Accounts

Name Description Type Default value
create Configuration for create object
convert Configuration for convert object
destroy Configuration for destroy object
allot Configuration for allot object
stake Configuration for stake object
claim Configuration for claim object
delegate Configuration for delegate object
update Configuration for update object

Create

Name Description Type Default value
alias Alias name of the account to create string ""
noBlockIssuerFeature Create account without Block Issuer Feature, can only be set false no if implicit is false, as each account created implicitly needs to have BIF. boolean false
implicit Create an implicit account boolean false
transition Account should be transitioned to a full account if created with implicit address. Transition disabled by default, to enable provide an empty flag. boolean false

Convert

Name Description Type Default value
alias The implicit account to be converted to full account with BIF string ""

Destroy

Name Description Type Default value
alias The alias name of the account to be destroyed string ""
expirySlot The expiry slot of the account to be destroyed int 0

Allot

Name Description Type Default value
alias The alias name of the account to allot mana to string ""
amount The amount of mana to allot uint 10000

Stake

Name Description Type Default value
alias The alias name of the account to stake string ""
amount The amount of tokens to stake int 100
fixedCost The fixed cost of the account to stake int 0
startEpoch The start epoch of the account to stake int 0
endEpoch The end epoch of the account to stake int 0

Claim

Name Description Type Default value
alias The alias name of the wallet to get rewards for string ""

Delegate

Name Description Type Default value
fromAlias The alias of the delegator, does not need to have an account string "default"
toAddress The account address of the account to delegate IOTA tokens to string "rms1pzg8cqhfxqhq7pt37y8cs4v5u4kcc48lquy2k73ehsdhf5ukhya3y5rx2w6"
amount The amount of mana to delegate int 100
checkPool Check if the delegation is added to pool stake when the start epoch is committed boolean false

Update

Name Description Type Default value
alias Alias name of the account to update string ""
blockIssuerKey Block issuer key (in hex) to add string ""
amount Amount of token to add int 100
mana Amount of mana to add int 100
expirySlot Update the expiry slot of the account int 0

Example:

  {
    "accounts": {
      "create": {
        "alias": "",
        "noBlockIssuerFeature": false,
        "implicit": false,
        "transition": false
      },
      "convert": {
        "alias": ""
      },
      "destroy": {
        "alias": "",
        "expirySlot": 0
      },
      "allot": {
        "alias": "",
        "amount": 10000
      },
      "stake": {
        "alias": "",
        "amount": 100,
        "fixedCost": 0,
        "startEpoch": 0,
        "endEpoch": 0
      },
      "claim": {
        "alias": ""
      },
      "delegate": {
        "fromAlias": "default",
        "toAddress": "rms1pzg8cqhfxqhq7pt37y8cs4v5u4kcc48lquy2k73ehsdhf5ukhya3y5rx2w6",
        "amount": 100,
        "checkPool": false
      },
      "update": {
        "alias": "",
        "blockIssuerKey": "",
        "amount": 100,
        "mana": 100,
        "expirySlot": 0
      }
    }
  }

7. Spammer

Name Description Type Default value
type Spammers used during test. Format: strings separated with comma, available options: 'blk' - block, 'tx' - transaction, 'ds' - double spends spammers, 'nds' - n-spends spammer, 'bb' - blowball, or one of custom scenarios that can be found in pkg/evilwallet/customscenarion.go string "tx"
rate Spamming rate for provided 'spammer'. Format: numbers separated with comma, e.g. 10,100,1 if three spammers were provided for 'spammer' parameter. int 1
duration Spam duration. If not provided spam will lats infinitely. Format: separated by commas list of decimal numbers, each with optional fraction and a unit suffix, such as '300ms', '-1.5h' or '2h45m'.
Valid time units are 'ns', 'us', 'ms', 's', 'm', 'h'. string "-1ns"
account Account alias to be used for the spam. Account should be created first with accounts tool. string ""
rateSetterEnabled Enable the rate setter, which will set the rate for the spammer. To enable provide an empty flag. boolean false
deepSpamEnabled Enable the deep spam, by reusing outputs created during the spam. To enable provide an empty flag. boolean false
reuseEnabled Enable the reuse of outputs created during the spam. To enable provide an empty flag. boolean false
autoRequestingEnabled Enable the auto-requesting, which will request tokens from faucet for the spammer. To enable provide an empty flag. boolean false
autoRequestingAmount Amount of tokens to be requested from faucet for the spammer. To enable provide an empty flag. int 1000
nSpend Number of outputs to be spent in n-spends spammer for the spammer type needs to be set to 'ds'. Default value is 2 for double-spend. int 2
blowballSize Size of the blowball to be used in blowball spammer. To enable provide an empty flag. int 30

Example:

  {
    "spammer": {
      "type": "tx",
      "rate": 1,
      "duration": "-1ns",
      "account": "",
      "rateSetterEnabled": false,
      "deepSpamEnabled": false,
      "reuseEnabled": false,
      "autoRequestingEnabled": false,
      "autoRequestingAmount": 1000,
      "nSpend": 2,
      "blowballSize": 30
    }
  }