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 |
|
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:
Name |
Description |
Type |
Default value |
checkForUpdates |
Whether to check for updates of the application or not |
boolean |
true |
shutdown |
Configuration for shutdown |
object |
|
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 |
|
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"
}
}
}
}
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"
]
}
}
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": ""
}
}
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"
}
}
Name |
Description |
Type |
Default value |
alias |
Alias for which info command should be executed. |
string |
"" |
Example:
{
"info": {
"alias": ""
}
}
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 |
|
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 |
Name |
Description |
Type |
Default value |
alias |
The implicit account to be converted to full account with BIF |
string |
"" |
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 |
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 |
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 |
Name |
Description |
Type |
Default value |
alias |
The alias name of the wallet to get rewards for |
string |
"" |
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 |
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
}
}
}
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
}
}