diff --git a/tools/relay-checker/README.md b/tools/relay-checker/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f3102cb446094c795c7efed5bc1b423b10c9d3f0 --- /dev/null +++ b/tools/relay-checker/README.md @@ -0,0 +1,15 @@ +# Relay-Checker + +This tool checks whether a transaction which is created on a given node (via `broadcastData`), +is actually relayed/gossiped through the network by checking the transaction's existence on other +specified nodes after a cooldown. + +This program can be configured via CLI flags: +``` +--relayChecker.cooldownTime int the cooldown time after broadcasting the data on the specified target node (default 10) +--relayChecker.data string data to broadcast (default "TEST99BROADCAST99DATA") +--relayChecker.repeat int the amount of times to repeat the relay-checker queries (default 1) +--relayChecker.targetNode string the target node from the which transaction will be broadcasted from (default "http://127.0.0.1:8080") +--relayChecker.testNodes strings the list of nodes to check after the cooldown +--relayChecker.txAddress string the transaction address (default "SHIMMER99TEST99999999999999999999999999999999999999999999999999999999999999999999") +``` \ No newline at end of file diff --git a/tools/relay-checker/config.go b/tools/relay-checker/config.go index 9096faf6f22fe6d7349d5a473c167ce04e17ca3f..6833f365dd0c59933def5969c74492dcf1c49f74 100644 --- a/tools/relay-checker/config.go +++ b/tools/relay-checker/config.go @@ -5,12 +5,12 @@ import ( ) var ( - nodes []string - target = "" - txnAddr = "GOSHIMMER99TEST999999999999999999999999999999999999999999999999999999999999999999" - txnData = "TEST99BROADCAST99DATA" - cooldown = 2 - maxQuery = 1 + nodes []string + target = "" + txnAddr = "GOSHIMMER99TEST999999999999999999999999999999999999999999999999999999999999999999" + txnData = "TEST99BROADCAST99DATA" + cooldownTime = 2 + repeat = 1 ) func LoadConfig() { @@ -31,16 +31,16 @@ func SetConfig() { nodes = append(nodes, parameter.NodeConfig.GetStringSlice(CFG_TEST_NODES)...) // optional settings - if parameter.NodeConfig.GetString(CFG_TXN_ADDRESS) != "" { - txnAddr = parameter.NodeConfig.GetString(CFG_TXN_ADDRESS) + if parameter.NodeConfig.GetString(CFG_TX_ADDRESS) != "" { + txnAddr = parameter.NodeConfig.GetString(CFG_TX_ADDRESS) } if parameter.NodeConfig.GetString(CFG_DATA) != "" { txnData = parameter.NodeConfig.GetString(CFG_DATA) } - if parameter.NodeConfig.GetInt(CFG_COOL_DOWN_TIME) > 0 { - cooldown = parameter.NodeConfig.GetInt(CFG_COOL_DOWN_TIME) + if parameter.NodeConfig.GetInt(CFG_COOLDOWN_TIME) > 0 { + cooldownTime = parameter.NodeConfig.GetInt(CFG_COOLDOWN_TIME) } - if parameter.NodeConfig.GetInt(CFG_MAX_QUERY) > 0 { - maxQuery = parameter.NodeConfig.GetInt(CFG_MAX_QUERY) + if parameter.NodeConfig.GetInt(CFG_REPEAT) > 0 { + repeat = parameter.NodeConfig.GetInt(CFG_REPEAT) } } diff --git a/tools/relay-checker/config.json b/tools/relay-checker/config.json index d7c0df551297552275129aa199deb983d1b5bc98..a830da125c7c13353b020933dc0a7a9a884cfc86 100644 --- a/tools/relay-checker/config.json +++ b/tools/relay-checker/config.json @@ -1,12 +1,12 @@ { - "relaycheck": { - "targetnode": "http://127.0.0.1:8080", - "nodes": [ + "relayChecker": { + "targetNode": "http://127.0.0.1:8080", + "testNodes": [ "http://127.0.0.1:8080" ], - "txnaddress": "SHIMMER99TEST99999999999999999999999999999999999999999999999999999999999999999999", + "txAddress": "SHIMMER99TEST99999999999999999999999999999999999999999999999999999999999999999999", "data": "TEST99BROADCAST99DATA", - "cooldowntime": 10, - "maxquery": 2 + "cooldownTime": 10, + "repeat": 2 } } diff --git a/tools/relay-checker/main.go b/tools/relay-checker/main.go index 80484582995ce68a19d20e28862ff95e5783c130..4bdc570883eae4b519e5fdf1deee5828e14cd1df 100644 --- a/tools/relay-checker/main.go +++ b/tools/relay-checker/main.go @@ -41,7 +41,7 @@ func main() { SetConfig() api := client.NewGoShimmerAPI(target) - for i := 0; i < maxQuery; i++ { + for i := 0; i < repeat; i++ { txnHash, err := testBroadcastData(api) if err != nil { fmt.Printf("%s\n", err) @@ -50,7 +50,7 @@ func main() { fmt.Printf("txnHash: %s\n", txnHash) // cooldown time - time.Sleep(time.Duration(cooldown) * time.Second) + time.Sleep(time.Duration(cooldownTime) * time.Second) // query target node err = testTargetGetTransactions(api, txnHash) @@ -59,7 +59,7 @@ func main() { break } - // query nodes node + // query test nodes err = testNodesGetTransactions(txnHash) if err != nil { fmt.Printf("%s\n", err) diff --git a/tools/relay-checker/parameters.go b/tools/relay-checker/parameters.go index b1ee2b9b5ab6fa5885237e980ff329a33b4bdd13..ac64aaf77069fc73aa26bf65116c61cca23eee91 100644 --- a/tools/relay-checker/parameters.go +++ b/tools/relay-checker/parameters.go @@ -5,19 +5,19 @@ import ( ) const ( - CFG_TARGET_NODE = "relaycheck.targetNode" - CFG_TEST_NODES = "relaycheck.nodes" - CFG_TXN_ADDRESS = "relaycheck.txnAddress" - CFG_DATA = "relaycheck.data" - CFG_COOL_DOWN_TIME = "relaycheck.cooldownTime" - CFG_MAX_QUERY = "relaycheck.maxQuery" + CFG_TARGET_NODE = "relayChecker.targetNode" + CFG_TEST_NODES = "relayChecker.testNodes" + CFG_TX_ADDRESS = "relayChecker.txAddress" + CFG_DATA = "relayChecker.data" + CFG_COOLDOWN_TIME = "relayChecker.cooldownTime" + CFG_REPEAT = "relayChecker.repeat" ) func init() { - flag.StringSlice(CFG_TEST_NODES, []string{""}, "list of trusted entry nodes for auto peering") - flag.String(CFG_TARGET_NODE, "http://127.0.0.1:8080", "target node to test") - flag.String(CFG_TXN_ADDRESS, "SHIMMER99TEST99999999999999999999999999999999999999999999999999999999999999999999", "transaction address") + flag.StringSlice(CFG_TEST_NODES, []string{""}, "the list of nodes to check after the cooldown") + flag.String(CFG_TARGET_NODE, "http://127.0.0.1:8080", "the target node from the which transaction will be broadcasted from") + flag.String(CFG_TX_ADDRESS, "SHIMMER99TEST99999999999999999999999999999999999999999999999999999999999999999999", "the transaction address") flag.String(CFG_DATA, "TEST99BROADCAST99DATA", "data to broadcast") - flag.Int(CFG_COOL_DOWN_TIME, 10, "cooldown time after broadcast data") - flag.Int(CFG_MAX_QUERY, 1, "the repeat times of relay-checker") + flag.Int(CFG_COOLDOWN_TIME, 10, "the cooldown time after broadcasting the data on the specified target node") + flag.Int(CFG_REPEAT, 1, "the amount of times to repeat the relay-checker queries") }