Construction API - Automated Test : infinite loop

Hello. I started the implementation for rosetta Elrond client and I got some problems when I have to test Construction API with rosetta cli.

My scenario is to generated a new account (manually send some funds to the generated account) and after that I want rossetta-cli to send a Transfer transaction to another account. And I always got this message in a loop looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
I think is something wrong with my config file but I don’t figure where is the problem.
Thank you.

My json config file :
{
“network”: {
“blockchain”: “Elrond”,
“network”: “local-testnet”
},
“online_url”: “http://localhost:8081”,
“data_directory”: “”,
“http_timeout”: 200,
“max_retries”: 5,
“retry_elapsed_time”: 0,
“max_online_connections”: 120,
“max_sync_concurrency”: 64,
“tip_delay”: 300,
“log_configuration”: false,
“data”: {
“active_reconciliation_concurrency”: 0,
“inactive_reconciliation_concurrency”: 0,
“inactive_reconciliation_frequency”: 0,
“log_blocks”: false,
“log_transactions”: false,
“log_balance_changes”: false,
“log_reconciliations”: false,
“ignore_reconciliation_error”: true,
“exempt_accounts”: “”,
“bootstrap_balances”: “examples/configuration/bootstrap_balances.json”,
“interesting_accounts”: “”,
“reconciliation_disabled”: false,
“inactive_discrepency_search_disabled”: false,
“balance_tracking_disabled”: false,
“coin_tracking_disabled”: false,
“results_output_file”: “”
},
“construction”: {
“offline_url”: “http://localhost:8081”,
“max_offline_connections”: 0,
“stale_depth”: 0,
“broadcast_limit”: 0,
“ignore_broadcast_failures”: false,
“clear_broadcasts”: false,
“broadcast_behind_tip”: false,
“block_broadcast_limit”: 0,
“rebroadcast_all”: false,
“workflows”: [
{
“name”: “request_funds”,
“concurrency”: 1,
“scenarios”: [
{
“name”: “find_account”,
“actions”: [
{
“input”: “{“symbol”:“eGLD”, “decimals”:18}”,
“type”: “set_variable”,
“output_path”: “currency”
},
{
“input”: “{“minimum_balance”:{“value”: “0”, “currency”: {{currency}}}, “create_limit”:1}”,
“type”: “find_balance”,
“output_path”: “random_account”
}
]
},
{
“name”: “request”,
“actions”: [
{
“input”: “{“account_identifier”: {{random_account.account_identifier}}, “minimum_balance”:{“value”: “10000000000000000”, “currency”: {{currency}}}}”,
“type”: “find_balance”,
“output_path”: “loaded_account”
}
]
}
]
},
{
“name”: “create_account”,
“concurrency”: 1,
“scenarios”: [
{
“name”: “create_account”,
“actions”: [
{
“input”: “{“network”:“local-testnet”, “blockchain”:“Elrond”}”,
“type”: “set_variable”,
“output_path”: “network”
},
{
“input”: “{“curve_type”: “edwards25519”}”,
“type”: “generate_key”,
“output_path”: “key”
},
{
“input”: “{“network_identifier”: {{network}}, “public_key”: {{key.public_key}}}”,
“type”: “derive”,
“output_path”: “account”
},
{
“input”: “{“account_identifier”: {{account.account_identifier}}, “keypair”: {{key}}}”,
“type”: “save_account”
}
]
}
]
},
{
“name”: “transfer”,
“concurrency”: 10,
“scenarios”: [
{
“name”: “Transfer”,
“actions”: [
{
“input”: “{“network”:“local-testnet”, “blockchain”:“Elrond”}”,
“type”: “set_variable”,
“output_path”: “Transfer.network”
},
{
“input”: “{“symbol”:“eGLD”, “decimals”:18}”,
“type”: “set_variable”,
“output_path”: “currency”
},
{
“input”: “{“minimum_balance”:{“value”: “10000000000000000”, “currency”: {{currency}}}}”,
“type”: “find_balance”,
“output_path”: “sender”
},
{
“input”: "“100000000"”,
“type”: “set_variable”,
“output_path”: “max_fee”
},
{
“input”: “{“operation”:“subtraction”, “left_value”: {{sender.balance.value}}, “right_value”: {{max_fee}}}”,
“type”: “math”,
“output_path”: “available_amount”
},
{
“input”: “{“minimum”: “1”, “maximum”: {{available_amount}}}”,
“type”: “random_number”,
“output_path”: “recipient_amount”
},
{
“input”: “{“recipient_amount”:{{recipient_amount}}}”,
“type”: “print_message”
},
{
“input”: “{“operation”:“subtraction”, “left_value”: “0”, “right_value”:{{recipient_amount}}}”,
“type”: “math”,
“output_path”: “sender_amount”
},
{
“input”: “{“not_account_identifier”:[{{sender.account_identifier}}], “minimum_balance”:{“value”: “0”, “currency”: {{currency}}}, “create_limit”: 100, “create_probability”: 50}”,
“type”: “find_balance”,
“output_path”: “recipient”
},
{
“input”: "“18"”,
“type”: “set_variable”,
“output_path”: “Transfer.confirmation_depth”
},
{
“input”: “[{“operation_identifier”:{“index”:0},“type”:“Transfer”,“account”:{{sender.account_identifier}},“amount”:{“value”:{{sender_amount}},“currency”:{{currency}}}},{“operation_identifier”:{“index”:1},“type”:“Transfer”,“account”:{{recipient.account_identifier}},“amount”:{“value”:{{recipient_amount}},“currency”:{{currency}}}}]”,
“type”: “set_variable”,
“output_path”: “Transfer.operations”
}
]
}
]
}
],
“end_conditions”: {
“create_account”: 100,
“transfer”: 10
}
}
}

rosetta-cli log

GOROOT=/usr/local/go #gosetup
GOPATH=/home/miiu/go #gosetup
/usr/local/go/bin/go build -o /tmp/___go_build_github_com_coinbase_rosetta_cli github.com/coinbase/rosetta-cli #gosetup
/tmp/___go_build_github_com_coinbase_rosetta_cli check:construction --configuration-file examples/configuration/elrond.json
loaded configuration file: examples/configuration/elrond.json
Using temporary directory /tmp/178813294
badger 2020/09/25 09:29:23 INFO: All 0 tables opened in 0s
2020/09/25 09:29:23 construction tester initialized with 0 accounts
2020/09/25 09:29:23 0 Balances Updated
2020/09/25 09:29:23 waiting for first block synced…
2020/09/25 09:29:23 Syncing 32
2020/09/25 09:29:24 processing workflow “transfer”
2020/09/25 09:29:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:29:24 processing workflow “create_account”
2020/09/25 09:29:24 processed workflow “create_account” for job “0”
2020/09/25 09:29:24 processing workflow “transfer”
2020/09/25 09:29:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:29:24 processing workflow “request_funds”
2020/09/25 09:29:24 looking for balance {“value”:“0”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:29:24 processed workflow “request_funds” for job “1”
2020/09/25 09:29:24 processing workflow “request_funds” for job “1”
2020/09/25 09:29:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:29:24 processing workflow “transfer”
2020/09/25 09:29:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:29:24 waiting for available jobs…
2020/09/25 09:29:25 Syncing 33
[STATS] Transactions Confirmed: 0 (Created: 0, In Progress: 0, Stale: 0, Failed: 0) Addresses Created: 1
2020/09/25 09:29:34 processing workflow “request_funds” for job “1”
2020/09/25 09:29:34 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:29:34 processing workflow “transfer”
2020/09/25 09:29:34 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:29:34 waiting for available jobs…
2020/09/25 09:29:44 processing workflow “request_funds” for job “1”
2020/09/25 09:29:44 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:29:44 processing workflow “transfer”
2020/09/25 09:29:44 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:29:44 waiting for available jobs…
2020/09/25 09:29:44 Syncing 34-37
2020/09/25 09:29:54 processing workflow “request_funds” for job “1”
2020/09/25 09:29:54 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:29:54 processing workflow “transfer”
2020/09/25 09:29:54 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:29:54 waiting for available jobs…
2020/09/25 09:30:04 processing workflow “request_funds” for job “1”
2020/09/25 09:30:04 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:30:04 processing workflow “transfer”
2020/09/25 09:30:04 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:30:04 waiting for available jobs…
2020/09/25 09:30:14 processing workflow “request_funds” for job “1”
2020/09/25 09:30:14 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:30:14 processing workflow “transfer”
2020/09/25 09:30:14 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:30:14 waiting for available jobs…
2020/09/25 09:30:24 processing workflow “request_funds” for job “1”
2020/09/25 09:30:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:30:24 processing workflow “transfer”
2020/09/25 09:30:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:30:24 waiting for available jobs…
2020/09/25 09:30:34 processing workflow “request_funds” for job “1”
2020/09/25 09:30:34 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:30:34 processing workflow “transfer”
2020/09/25 09:30:34 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:30:34 waiting for available jobs…
2020/09/25 09:30:44 processing workflow “request_funds” for job “1”
2020/09/25 09:30:44 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:30:44 processing workflow “transfer”
2020/09/25 09:30:44 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:30:44 waiting for available jobs…
2020/09/25 09:30:44 Syncing 38-49
2020/09/25 09:30:54 processing workflow “request_funds” for job “1”
2020/09/25 09:30:54 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:30:54 processing workflow “transfer”
2020/09/25 09:30:54 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:30:54 waiting for available jobs…
2020/09/25 09:31:04 processing workflow “request_funds” for job “1”
2020/09/25 09:31:04 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:31:04 processing workflow “transfer”
2020/09/25 09:31:04 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:04 waiting for available jobs…
2020/09/25 09:31:14 processing workflow “request_funds” for job “1”
2020/09/25 09:31:14 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:31:14 processing workflow “transfer”
2020/09/25 09:31:14 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:14 waiting for available jobs…
2020/09/25 09:31:24 processing workflow “request_funds” for job “1”
2020/09/25 09:31:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} on account {“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}
2020/09/25 09:31:24 processed workflow “request_funds” for job “1”
2020/09/25 09:31:24 processing workflow “transfer”
2020/09/25 09:31:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:24 Message: {“recipient_amount”:“6168516460780595”}
2020/09/25 09:31:24 looking for balance {“value”:“0”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} != to accounts [{“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}]
2020/09/25 09:31:24 processing workflow “create_account”
2020/09/25 09:31:24 processed workflow “create_account” for job “2”
2020/09/25 09:31:24 processing workflow “transfer”
2020/09/25 09:31:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:24 Message: {“recipient_amount”:“1025167246106374”}
2020/09/25 09:31:24 looking for balance {“value”:“0”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} != to accounts [{“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}]
2020/09/25 09:31:24 processing workflow “create_account”
2020/09/25 09:31:24 processed workflow “create_account” for job “3”
2020/09/25 09:31:24 processing workflow “transfer”
2020/09/25 09:31:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:24 Message: {“recipient_amount”:“1038073578495370”}
2020/09/25 09:31:24 looking for balance {“value”:“0”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} != to accounts [{“address”:“erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf”}]
2020/09/25 09:31:24 created transaction “a372deba128a43938cf2115448ff4f33896c0cbd9c99ea4a51b2d10e615c0604” for job “4”
2020/09/25 09:31:24 processed workflow “transfer” for job “4”
2020/09/25 09:31:24 processing workflow “transfer”
2020/09/25 09:31:24 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:24 waiting for available jobs…
[STATS] Transactions Confirmed: 0 (Created: 1, In Progress: 1, Stale: 0, Failed: 0) Addresses Created: 3
2020/09/25 09:31:34 processing workflow “transfer”
2020/09/25 09:31:34 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:34 waiting for available jobs…
2020/09/25 09:31:44 processing workflow “transfer”
2020/09/25 09:31:44 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:44 waiting for available jobs…
2020/09/25 09:31:54 processing workflow “transfer”
2020/09/25 09:31:54 looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}}
2020/09/25 09:31:54 waiting for available jobs…

:wave: @miiu96

This question underscores the need for us to improve logging + documentation on rosetta-cli's automated Construction API testing :grimacing: Your test is actually performing as expected!

For everyone’s understanding, I’ll step through what these logs mean:

First, rosetta-cli attempts to perform a transfer. It realizes, however, that no accounts exist so itt attempts to create one using create_account. It then attempts the transfer again but realizes the only saved account created has insufficient funds so it runs the request_funds workflow.

While waiting for funds, we attempt to perform other workflows (i.e. transfer again) but find we still don’t have sufficient funds so we wait for available jobs (i.e. sleep for 10 seconds and try iterating through existing jobs,request_funds, and attempt to create new jobs, transfer).

Eventually, the request_funds job completes (as we recognize funds on the address erd1mgh6c8m6wxt6zmzcufmlyc2v7t5e5w4ra9k0fjqp6gcdauqlzeqq7eqtrf).

Next, we begin to construct and broadcast the transfer. However, rosetta-cli realizes it only has 1 account so it creates a recipient account to send to.

rosetta-cli then attempts to create another transfer but decides to randomly create another account instead of using the account we just created (in job 2).

Finally, we create, sign, and broadcast a transaction with hash a372deba128a43938cf2115448ff4f33896c0cbd9c99ea4a51b2d10e615c0604.

We then continue to create a new transfer every ~10ish seconds while waiting for the broadcasted transaction to be confirmed on-chain (you can see In Progress==1). Each time we invoke the find_balance action, the message looking for balance {“value”:“10000000000000000”,“currency”:{“symbol”:“eGLD”,“decimals”:18}} is printed. We could probably add an option to enable/disable “debug” logging to make this a lot less confusing!

Because you’ve set confirmation_depth to 18, rosetta-cli will not confirm the transaction broadcasted until it has a depth of 18. In my own testing, I usually set this to 1 to make things go faster.

Let me know if you have any additional questions!

Hello thank you for the feedback. I set Transfer.confirmation_depth to 1 but I still have one problem. Created transaction is never broadcasted . In my rosetta client implementation ConstructionSubmit is never called.

Is your code publicly accessible? I’d be happy to help debug if you can point me to some instructions on how I can replicate!

Hello my code is on a public repository but it will be a little bit harder to configure rosetta-client to work on your machine because docker configuration is not finish yet. Maybe we can have a short meeting on Google meets, or telegram to show you. Is easy for me to replicate this because already have .json configuration prepared.

I started working on docker configuration and after is finish elrond-rosetta-client will be able to connect to elrond-testnet or elrond-mainnet. I will come soon with a public implementation and after that debug will be more easier

Finally I successfully send a transaction from rosetta-cli to elrond-rosetta-client and it was accepted by the network. Hope in next days I will have a final implementation to give for a review.
Thank you for the help.

Great to hear!! What ended up being the issue??

Anything you wish you had that would’ve made debugging easier?

Hello I think was something wrong with my test configuration file (“elrond.json”). For debugging I m not sure how it can be improved because yes it is a little bit harder at the begining to understand how rosetta-cli is working but after some documentation and reading code it is more clear. Maybe documentation can be inproved to help developer to understand how rosetta-cli working. Anyway great job with this testing framework.

I’m currently working on some more debugging tools now, actually! Will make sure to ping you once I have something to show.

:love_you_gesture:

Hi!

First of all I think one option for better debugging would be to be able to show which request the rosetta cli is performing.

Now I am facing a similar problem with a kind of infinite loop. I am executing the rosetta-cli with this config file:

{
“network”: {
“blockchain”: “Test”,
“network”: “Test”
},
“online_url”: “http://localhost:8080”,
“data_directory”: “”,
“http_timeout”: 10,
“max_retries”: 5,
“retry_elapsed_time”: 0,
“max_online_connections”: 120,
“max_sync_concurrency”: 64,
“tip_delay”: 300,
“log_configuration”: false,
“construction”: {
“offline_url”: “”,
“max_offline_connections”: 0,
“stale_depth”: 0,
“broadcast_limit”: 0,
“ignore_broadcast_failures”: false,
“clear_broadcasts”: false,
“broadcast_behind_tip”: false,
“block_broadcast_limit”: 0,
“rebroadcast_all”: false,
“workflows”: [{
“name”: “request_funds”,
“concurrency”: 1,
“scenarios”: [{
“name”: “find_account”,
“actions”: [{
“input”: “{“symbol”:“token”, “decimals”:0}”,
“type”: “set_variable”,
“output_path”: “currency”
},
{
“input”: “{“minimum_balance”:{“value”: “100”, “currency”: {{currency}}}, “create_limit”:1}”,
“type”: “find_balance”,
“output_path”: “random_account”
}
]
},
{
“name”: “request”,
“actions”: [{
“input”: “{“account_identifier”: {{random_account.account_identifier}}, “minimum_balance”:{“value”: “100”, “currency”: {{currency}}}}”,
“type”: “find_balance”,
“output_path”: “loaded_account”
}]
}
]
}, {
“name”: “create_account”,
“concurrency”: 1,
“scenarios”: [{
“name”: “create_account”,
“actions”: [{
“input”: “{“network”:“Test”, “blockchain”:“Test”}”,
“type”: “set_variable”,
“output_path”: “network”
},
{
“input”: “{“curve_type”: “secp256k1”}”,
“type”: “generate_key”,
“output_path”: “key”
},
{
“input”: “{“network_identifier”: {{network}}, “public_key”: {{key.public_key}}}”,
“type”: “derive”,
“output_path”: “account”
},
{
“input”: “{“account_identifier”: {{account.account_identifier}}, “keypair”: {{key}}}”,
“type”: “save_account”
}
]
}]
}

	],
	"end_conditions": {
		"create_account": 10,
		"transfer": 10
	}
},
"data": {
	"active_reconciliation_concurrency": 16,
	"inactive_reconciliation_concurrency": 4,
	"inactive_reconciliation_frequency": 250,
	"log_blocks": false,
	"log_transactions": false,
	"log_balance_changes": false,
	"log_reconciliations": false,
	"ignore_reconciliation_error": false,
	"exempt_accounts": "",
	"bootstrap_balances": "bootstrap.json",
	"interesting_accounts": "",
	"reconciliation_disabled": false,
	"inactive_discrepency_search_disabled": false,
	"balance_tracking_disabled": false,
	"coin_tracking_disabled": false,
	"status_port": 9090,
	"results_output_file": "",
	"pruning_disabled": false
}

}

Now the problem is that when I execute this test it enters in a super loop, is it possible that it gives less lines?

badger 2020/10/07 10:55:37 INFO: All 0 tables opened in 0s
2020/10/07 10:55:37 construction tester initialized with 0 accounts
2020/10/07 10:55:37 0 Balances Updated
2020/10/07 10:55:37 check:construction status server running on port 9090
2020/10/07 10:55:37 Syncing 121
2020/10/07 10:55:38 processing workflow “request_funds”
2020/10/07 10:55:38 looking for balance {“value”:“100”,“currency”:{“symbol”:“token”,“decimals”:0}}
2020/10/07 10:55:38 processing workflow “create_account”
2020/10/07 10:55:38 REQUEST /construction/derive network_identifier:{“blockchain”:“Test”,“network”:“Test”} public_key:{“hex_bytes”:“03c94afa1623987c90aef9dd319335e37ddb573c41a52382a97613047a1c80667d”,“curve_type”:“secp256k1”} metadata:null
2020/10/07 10:55:38 RESPONSE /construction/derive account_identifier:{“address”:“cosmos1chlzfn5lemhkc062tyt2qhw5jsky0q9wwfyec4”} metadata:null
2020/10/07 10:55:38 processed workflow “create_account” for job “0”
2020/10/07 10:55:38 processing workflow “request_funds”
2020/10/07 10:55:38 looking for balance {“value”:“100”,“currency”:{“symbol”:“token”,“decimals”:0}}
2020/10/07 10:55:38 processing workflow “request_funds”

And this waits I understand for me to fill with balance the address cosmos1chlzfn5lemhkc062tyt2qhw5jsky0q9wwfyec4.

I fill it with 100 tokens, only some seconds after but it has generated around 190000 lines! (Is it possible to reduce the checking time?)

When I fill the account the logs change to this:

2020/10/07 10:56:31 processed workflow “request_funds” for job “1”
2020/10/07 10:56:31 processing workflow “request_funds” for job “1”
2020/10/07 10:56:31 looking for balance {“value”:“100”,“currency”:{“symbol”:“token”,“decimals”:0}} on account {“address”:“cosmos1chlzfn5lemhkc062tyt2qhw5jsky0q9wwfyec4”}
2020/10/07 10:56:31 processed workflow “request_funds” for job “1”
2020/10/07 10:56:31 processing workflow “request_funds”
2020/10/07 10:56:31 looking for balance {“value”:“100”,“currency”:{“symbol”:“token”,“decimals”:0}}
2020/10/07 10:56:31 processed workflow “request_funds” for job “2”
2020/10/07 10:56:31 processing workflow “request_funds” for job “2”
2020/10/07 10:56:31 looking for balance {“value”:“100”,“currency”:{“symbol”:“token”,“decimals”:0}} on account {“address”:“cosmos1chlzfn5lemhkc062tyt2qhw5jsky0q9wwfyec4”}
2020/10/07 10:56:31 processed workflow “request_funds” for job “2”
2020/10/07 10:56:31 processing workflow “request_funds”

and it stays there until I stop the CLI.

We added support for this in v0.5.8! You can see the requests/responses in your logs (although I have to say it is a little hard to follow…improved logging is on our roadmap):

This is also on our roadmap, someone else commented here:

We never have it generate more than a hundred or so lines by this point. It looks like your Workflow is structured in a suboptimal way that causes it to rerun very quickly (the first step in your request_funds workflow should look for an account with balance 0 not 100). I’d recommend basing your config off of the new Ethereum script (much easier to read with the DSL we released):

It checks for funds every 10 seconds right now. If you want to reduce this, I’d recommend opening an issue on rosetta-cli.

Wow this release is huge! Thanks a lot! Updating! :smiley:

1 Like