# This is a sample config.toml document for EOSIO DSPs [dsp] # enter account account = "" # enter account private key private_key = "" port = 3115 # configure available services: (comment for all services) services_enabled = "ipfs,vaccounts,oracle,cron,auth,storage" # account_permissions = "active" # permission level used to sign DSP transactions, defaults to active # consumer_pays: setting this to true forces consumer to pay for all cpu/net/ram # however, if they don't have the correct permission setup, everything will fail # review consumer pays documentation prior to setting this to true consumer_pays = false verbose_logs = false # enable for verbose logs allow_api_non_broadcast = false # enable to use the replay script or the cleanup script, be sure to disable afterwards to prevent gaming the endpoint max_request_retries = 10 # max retries to fetch an oracle request or ipfs warmup, or any other blocking DSP service action eosio_transaction_expiration = 300 cluster_mode = false # use pm2 cluster mode https://pm2.keymetrics.io/docs/usage/cluster-mode/ # LiquidScheduler related cron_schedule_retry_on_failure = false # retries schedule type intervals even if they fail by unrecognized error # LiquidStorage params liquidstorage_upload_limit = "10mb" # upload limit for LiquidStorage # Push push guarantee push_guarantee = 'handoffs:2' # transaction guarantee (none, in-block, handoffs:1, handoffs:2, handoffs:3, irreversible) read_retries = 20 # number of times to attempt to verify transaction has satisfied push guarantee push_retries = 3 # number of times to retry pushing the transaction backoff_exponent = 1 # backoff multiplier for exponential backoff to prevent rate limiting backoff = 500 # time between checking status of transaction # push_guarantee = 'in-block' # read_retries = 5 # push_retries = 3 # backoff_exponent = 1 # backoff = 500 # push_guarantee = 'handoffs:1|2|3' # read_retries = 10 | 20 | 30 # push_retries = 3 # backoff_exponent = 1 # backoff = 500 # push_guarantee = 'irreversible' # read_retries = 150 # push_retries = 3 # backoff_exponent = 1 # backoff = 500 # custom per service push guarantee level, note these are separated with '|' push_guarantee_per_service = '{"name":"ipfs","push_guarantee":"in-block","read_retries":"5"}|{"name":"oracle","push_guarantee":"in-block","read_retries":"5"}|{"name":"cron","push_guarantee":"handoffs:2","read_retries":"10"}|{"name":"vaccounts","push_guarantee":"in-block","read_retries":"5"}|{"name":"storage","push_guarantee":"in-block","read_retries":"5"}' # timeout for broadcast events such as oracle trxs, if a DSP does not respond within the given window, the promise rejects # dspResponses: [{"status":"fulfilled","value":""},{"status":"fulfilled","value":""},{"status":"rejected","reason":"DSP failed to respond within timeout window"}] broadcast_event_timeout = 10000 # aws kms settings for eth sign service aws_kms_enabled = false # aws_kms_address = # evm public key for aws kms # aws_kms_access_key_id = "AKIAxxxxxxxxxxxxxxxx" # credentials for your IAM user with KMS access # aws_kms_secret_access_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # credentials for your IAM user with KMS access # aws_kms_region = "ap-southeast-1" # aws_kms_key_id = "arn:aws:kms:ap-southeast-1:123456789012:key/123a1234-1234-4111-a1ab-a1abc1a12b12" [database] # url syntax: postgres://user:pass@example.com:5432/dbname url = "postgres://user:pass@example.com:5432/dbname" timeout = 10000 # amount of time before database connection timesout # production (uses above url for database) node_env = "production" [oracles] # specify private suffix's such as private keys to be used on specified payer # '{ # payer: 'mytestaccount', # name: 'coinmarketcap', # suffix: 'data.1765.quote.USD.price/pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?CMC_PRO_API_KEY=...&id=1765' # }' prefixes = '{"payer":"test1","name":"ipfs","fullAddress":"ipfs.io/ipfs/Qmaisz6NMhDB51cCvNWa1GMS7LU1pAxdF4Ld6Ft9kZEP2a"}|{"payer":"mytestaccount","name":"dfuse","fullAddress":"dfuse.io"}' [nodeos] host = "localhost" port = 8888 secured = false latest = true # if using 2.0+ version of nodeos, true, if less than 2.0, false mandel_retry_blocks = 12 # number of blocks to pass before trx deemed successful, be sure to update --transaction-retry-max-expiration-sec to the nunber of blocks in your config.ini for nodeos # mandel_retry_irreversible = false # can only use mandel_retry_blocks OR mandel_retry_irreversible # mainnet: chainid = "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906" # kylin: "5fff1dae8dc8e2fc4d5b23b2c7665c97f9e9d8edf2b6485a86ba311c25639191" # if using state_history_plugin: websocket_port = 8887 [demux] socket_mode = "sub" # a head block may be specified to sync demux from a specific block, the bypass_database_head_block must be set to true for this # if bypass_database_head_block is set to true and the head_block is commented out, the head block from the chain will automatically be used # head_block = 0 # set to 0 to autmatically use head block of chain # demux defaults to first pulling head block from toml file if postgres database is not set # after database is set, defaults to databse, to overwrite and default to toml file or the current head block, pass true bypass_database_head_block = false max_pending_messages = 5000 # amount of pending messages to add to the stack before disconnecting the demux websocket to allow pending messages to process process_block_checkpoint = 1000 # amount of blocks to pass before updating PostgreSQL database with the last processed block # max_memory_mb = # max amount of memory to be consumed by demux, defaults to 8196 [firehose] enable = false # enables dfuse firehose instead of state history plugin grpc_address = 'localhost' grpc_secured = false grpc_port = 13035 [ipfs] protocol = "http" host = "localhost" port = 5001 postgresql = false # use postgresql db to store IPFS data as well as IPFS instance postgresql_port = 8090 # port to run go process to fetching and storing IPFS data to/from postgresql postgresql_force_replay = false # use to prevent DSP from using cached values and to force replay to db [evm] # if using LiquidLink (link) service for ethereum, binance, or other evm chain # default, will check for chain specific then default private_key = "" endpoint = "" gas_limit = '' gas_price = '' max_priority_fee_per_gas = '' max_fee_per_gas = '' transaction_polling_timeout = 750 # https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html?highlight=transactionPollingTimeout#transactionpollingtimeout | https://ethereum.stackexchange.com/questions/80145/error-transaction-was-not-mined-within-750-seconds-please-make-sure-your-trans # chain specific ethereum_private_key = "" ethereum_endpoint = "" # do not include gas price, post eips.ethereum.org/EIPS/eip-1559 # ethereum_gas_price = '' ethereum_gas_limit = '500000' ethereum_max_priority_fee_per_gas = '' ethereum_max_fee_per_gas = '' ethereum_keys_per_consumer = '{"EVM_ETHEREUM_PRIVATE_KEY_CONSUMER1":"PRIVATE_KEY_HERE"},{"EVM_ETHEREUM_PRIVATE_KEY_CONSUMER2":"PRIVATE_KEY_HERE"}' ethereum_gas_price_mult = 1.2 binance_private_key = "" binance_endpoint = "" binance_gas_price = '2000000' binance_gas_limit = '500000' binance_max_priority_fee_per_gas = '' binance_max_fee_per_gas = '' binance_keys_per_consumer = '{"EVM_BINANCE_PRIVATE_KEY_CONSUMER1":"PRIVATE_KEY_HERE"},{"EVM_BINANCE_PRIVATE_KEY_CONSUMER2":"PRIVATE_KEY_HERE"}' binance_gas_price_mult = 1.2 bsctest_private_key = "" bsctest_endpoint = "https://data-seed-prebsc-1-s1.binance.org:8545" bsctest_gas_limit = '700000' bsctest_max_priority_fee_per_gas = '' bsctest_max_fee_per_gas = '' ropsten_private_key = "" # do not include gas price, post eips.ethereum.org/EIPS/eip-1559 # ropsten_gas_limit = '' ropsten_endpoint = "" # setup free account https://ropsten.infura.io/ ropsten_max_priority_fee_per_gas = '500000000' ropsten_max_fee_per_gas = '500000000' rinkeby_private_key = "" # do not include gas price, post eips.ethereum.org/EIPS/eip-1559 # rinkeby_gas_limit = '' rinkeby_endpoint = "" # setup free account https://rinkeby.infura.io/ rinkeby_max_priority_fee_per_gas = '500000000' rinkeby_max_fee_per_gas = '500000000' # sidechain section, if no sidechains, leave as [sidechains], can add additional sidechains with [sidechains.newchain] ... [sidechains] #[sidechains.test1] # # dsp # dsp_port = 3116 # dsp port to run new chain's services on, this is the port developers will push to, must be unique per new chain # dsp_account = "test1" # DSP Account on new chain # dsp_private_key = "" # DSP active private key on new chain # # dsp_account_permissions = "active" # permission level used to sign DSP transactions, defaults to active # # nodeos # nodeos_host = "localhost" # nodeos host running new chain # nodeos_port = 8888 # nodeos host port # nodeos_secured = false # nodeos secured bool (true: https, false: http) # nodoes_latest = true # if using 2.0+ version of nodeos, true, if less than 2.0, false # nodeos_mandel_retry_blocks = 60 # enable if using mandel version of nodeos, aka 3.1+, be sure to update --transaction-retry-max-expiration-sec to the nunber of blocks in your config.ini for nodeos # nodeos_mandel_irreversible = false # cannot be used with retry blocks, must choose one or the other, will retry until trx is irreversible, about 180s # nodeos_chainid = "" # chainid of new chain # nodeos_websocket_port = 8887 # nodeos websocket port, can be same per nodeos instance # webhook_dapp_port = 8113 # nodeos webhook port, must be unique per chain # # demux # demux_webhook_port = 3196 # port demux runs on, must be unique per new chain # demux_socket_mode = "sub" # # demux_head_block = 0 # set to 0 to autmatically use head block of chain # # demux defaults to first pulling head block from toml file if postgres database is not set # # after database is set, defaults to database, to overwrite and default to toml file, pass true # demux_bypass_database_head_block = false # demux_max_pending_messages = 5000 # amount of pending messages to add to the stack before disconnecting the demux websocket to allow pending messages to process # demux_process_block_checkpoint = 1000 # amount of blocks to pass before updating PostgreSQL database with the last processed block # # demux_max_memory_mb = # max amount of memory to be consumed by demux, defaults to 8196 # # dfuse # # for using dfuse firehose instead of demux # firehose_enable = false # enables dfuse firehose instead of state history plugin # firehose_grpc_address = 'localhost'' # firehose address # firehose_grpc_secured = false # firehose secured by grpc or not # firehose_grpc_port = 13035 # firehose port # # sidechain # name = "test1" # CHAIN_NAME - contract on the EOS mainnet that registered the new chain # # the mapping below contains the dappservices:dappservicex and mainnet DSP account to the new chain's DSP account mapping # mapping = "dappservices:dappservicex,heliosselene:heliosselene" # [sidechains.ANOTHER_CHAIN_NAME] # ...