[00:35:43] did you find anything interesting? should i proceed with the script? [00:38:19] im setting up some scripts, want to replicate what you've seen [00:38:52] okay, im already running the script with 180 block increments of verifychain from 41000 down [00:39:06] i'll start another node with 1 block increment [00:39:59] maybe they will find something at block 40734 as well [00:55:55] also, im thinking that since verifychain is mostly single threading, we can run multiple navcoin daemons at the same time to make the test fastet [00:56:47] yes thats right [01:00:30] btw verifychain from 40640 succeeded [01:07:04] oh an what is the command from verifychain where it only disconnect and the command for only connect? is it possible to do a quick run where we do the loop of verifychain disconnect 2, reconnect , so we don't have to always reconnect to the tip everytime [01:07:24] theoretically, wouldn't it be the same as testing all combinations? [01:07:55] hmmm probably not, since a payout could be several blocks after [01:08:06] mmm im not sure if i understand what you mean, verifychain 3 only disconnects, verifychain 4 disconnects and then reconnects [01:09:37] what im thinking is that currently, when we disconnect, we always reconnects to chain tip, say we disconnect 50, then we reconnect 50. i am thinking what if we disconnect 2 and reconnect 1 and make it a loop, it'll keep rolling back since it always disconnect 1 more than reconnection, so it will end up at block 0 and we save the time of reconnecting to tip [01:10:21] ok now i get what you mean, there's no command for that [01:11:04] bummer. and it probably doesn't mean much any since critical blocks can be very far apart [13:52:51] @salmonskinroll https://gist.github.com/aguycalled/043ee2087b20ffdef9838b6a1c2c43af [13:53:05] ive created this script to stress a devnet and run after verifychain tests [13:53:08] let me know what u think [15:14:06] reading, but i woke up to this [15:14:08] https://cdn.discordapp.com/attachments/416000318149754881/651788330392092692/unknown.png [15:14:31] do you get this? when an rpc command takes too long to finish, it just hangs apparently [15:14:37] and then return with error [15:15:01] while running in the background, but it won't give a finish output like true or false when done [15:26:12] havent seen thr [15:27:32] this happens for headless mode only [15:27:47] really annoying since it prevents testing like that [15:28:28] not sure how to go about it [15:43:52] try with -rpcclienttimeout [15:58:46] nice, seems to work [16:09:48] nope, getting that error again [16:10:46] i know it's still running in the background since navcoind is running 100% cpu, and even when finished, it wouldn't give an output [17:00:54] any other ideas? [17:05:22] let me check [17:16:00] the stresser looks good. i hope generated blocks can simulate stakes blocks well enough. and it be modified to run on testnet too [17:16:26] i'll do a quick run on the stresser and see what happens [17:19:17] the idea is to use it on devnet because cycles are even shorter than in testnet [17:19:46] and we can have lot of random data in less blocks so the verifychain test will be quicker to run [17:19:59] i see [17:29:42] running it now, there are errors popping up but not really affecting the run. [17:38:48] getting a lot of these and i don't know why, the code looks fine to my untrained eyes error code: -3 error message: Invalid amount. error code: -3 error message: Invalid amount. error code: -4 error message: You are not the owner of the proposal. Can't find the private key. error code: -4 error message: You are not the owner of the proposal. Can't find the private key. [17:42:38] is listproposals mine already merged in this branch? [17:50:31] i'll just merge it and run it again [18:15:53] nvm, don't know how to resolve the conflict [18:17:04] i've just pushed the changes in verifychain-view [18:17:25] i also get the invalid amount ,i think its because of the decimals but it does not affect the test so i just ignore it [18:17:39] okay [18:18:02] wait the push failed [18:19:50] well even without that push, the script still works, it just loops through all proposals and wastes time. but im already verifychain to 477 blocks [18:19:51] https://cdn.discordapp.com/attachments/416000318149754881/651835065722208268/unknown.png [18:20:34] https://cdn.discordapp.com/attachments/416000318149754881/651835250426511380/unknown.png [18:20:35] this is mine [19:14:16] im trying now a version of the script which stakes instead of mining [19:26:40] nice, if it works well, i can run it on my machines as well [19:26:56] https://cdn.discordapp.com/attachments/416000318149754881/651851951969009688/unknown.png [19:27:01] im almost there [19:27:55] what do you think about changing this loop to add all nodes in the network and divide the work up evenlyfor i in $(seq 1 $blocks); do verifyoutput=`nav_cli_two verifychain 4 $i` if [[ "$verifyoutput" == "false" ]]; then verifyoutput+=`echo ' - ' && echo failed at $(grep 'ERROR: VerifyDB()' $data_two/devnet/debug.log |tail -1|sed 's/.*block at \(\d*\)/\1/')` fi echo Rewinding to \ $(bc <<< [19:27:56] $blocks-$i) \ - reconnecting up to $blocks \ - verifychain 4 $i -\> $verifyoutput; done [19:32:07] not sure how to pass the request in parallel [19:32:19] mmm im not sure if i know what you ean [19:32:36] you mean run both nodes in parallel? [19:33:38] so in the verifycahin phase, if there are three nodes in total, node one can be verifying verifychain 4 3n node 2 verifychain 4 (3n+1) node 3verifychain 4 (3n+2)` [19:34:01] now we have three times the speed for verifying all blocks [19:34:48] since they all just use one thread, you can go up to 32 nodes (probably not gonna happen for memory issue), but i think i can run at least 4 nodes on my 8 core mahcines [19:35:38] does that make sense? [19:36:07] yep [19:36:17] i can put both verifychains in parallel [19:36:45] yeah, i figured you can probably do that easily, but it'll take me a while to figure it out 😛 [19:40:24] well, if we do it my way, we are actually getting it numberofnodes^2 times faster, but each node won't verify all blocks, just an increment of the number of nodes. do you think verifying all blocks is necessary? [19:41:31] i think n should be at least 1/4 of the voting cycle [19:41:44] voting cycle is 30 correct? [19:41:49] yes [19:42:25] that's still fine, im planning to run 4 nodes, and divide the work. so ideally it'll be 16 times faster [20:00:48] the way would be to put the code in a function bash function check_node_1 { node_one_check_ready=0 for i... node_one_check_ready=1 } function check_node_2 { node_two_check_ready=0 for i... node_two_check_ready=1 } and call them with & at the end bash check_node_1 & check_node_2 & while [[ $node_one_check_ready != "1" ]] && [[ $node_two_check_ready != "1" ]]; do sleep 1 done [20:00:53] something like this @salmonskinroll [20:19:22] @prole @salmonskinroll https://gist.github.com/aguycalled/13f362c29ea9c38624e8dd4593bc37f8 [20:26:19] Afking for a while [21:50:09] okay im trying to run it now with n=2 [21:55:32] getting an error ./stresser.sh: line 269: [: -gt: unary operator expected [21:56:02] what was showing before that? [21:56:19] navcoind: no process found DATADIR_NODE1 = /tmp/tmp.IFkRHLVw2y DATADIR_NODE2 = /tmp/tmp.5kGRmpIEoW NavCoin server starting NavCoin server starting Waiting until both nodes are synced Checking state hashes match (standard_in) 1: syntax error (standard_in) 1: syntax error ./stresser.sh: line 269: [: -gt: unary operator expected (standard_in) 1: syntax error Stopping stresser. Waiting until 689 blocks are staked 0 blocks [21:56:19] left... ./stresser.sh: line 304: [: 0: unary operator expected Waiting until both nodes are synced Ok! Block: 0 Cycle: 0. Proposals: Payment Requests: Running verifychain test in node1... Running verifychain test in node2... [21:58:33] i added echo $wait_until_cycl right before the while loop and it's returning empty [22:03:41] what do the logs at /tmp/tmp.IFkRHLVw2y/devnet and /tmp/tmp.5kGRmpIEoW/devnet say? [22:04:26] 2019-12-04 20:50:04 keypool added key 100, size=100 2019-12-04 20:50:04 keypool added key 101, size=101 2019-12-04 20:50:04 keypool reserve 1 2019-12-04 20:50:04 keypool keep 1 2019-12-04 20:50:04 wallet 11222ms 2019-12-04 20:50:04 mapBlockIndex.size() = 1 2019-12-04 20:50:04 nBestHeight = 0 2019-12-04 20:50:04 setKeyPool.size() = 100 2019-12-04 20:50:04 mapWallet.size() = 0 2019-12-04 20:50:04 [22:04:26] mapAddressBook.size() = 1 2019-12-04 20:50:04 init message: Loading addresses... 2019-12-04 20:50:04 ERROR: Read: Failed to open file /tmp/tmp.IFkRHLVw2y/devnet/peers.dat 2019-12-04 20:50:04 torcontrol thread start 2019-12-04 20:50:04 Invalid or missing peers.dat; recreating 2019-12-04 20:50:04 init message: Loading banlist... 2019-12-04 20:50:04 ERROR: Read: Failed to open file /tmp/tmp.IFkRHLVw2y/devnet/banlist.dat 2019-12-04 20:50:04 Invalid [22:04:27] or missing banlist.dat; recreating 2019-12-04 20:50:05 dnsseed thread start 2019-12-04 20:50:05 addcon thread start 2019-12-04 20:50:05 Loading addresses from DNS seeds (could take a while) 2019-12-04 20:50:05 net thread start 2019-12-04 20:50:05 init message: Done loading 2019-12-04 20:50:05 msghand thread start 2019-12-04 20:50:05 opencon thread start 2019-12-04 20:50:05 NavCoinStaker started 2019-12-04 20:50:05 receive version message: [22:04:27] /NavCoin:4.7.1/: version 70020, blocks=0, us=0.0.0.0:0, peer=1 2019-12-04 20:50:05 keypool added key 102, size=101 2019-12-04 20:50:05 keypool reserve 2 2019-12-04 20:50:09 1 addresses found from DNS seeds 2019-12-04 20:50:09 dnsseed thread exit [22:04:40] i termindated the script not long after noticing that error [22:05:49] try this in line 264 current_height=$(nav_cli_one getinfo|jq .blocks) initial_cycle=$(bc <<< $current_height/$voting_cycle_length) [22:06:14] ill update the gist [22:06:47] ./stresser.sh: line 270: [: -gt: unary operator expected [22:06:56] same thing [22:07:02] it works for me [22:07:13] what bash version? [22:07:30] 5.0.3 [22:09:15] wait [22:09:52] nvm nothing [22:14:42] no sure why all current_height initial_cycle current_block are returning empty [22:14:55] im trying to run it with bash5 [22:15:33] looks like its working [22:15:35] https://cdn.discordapp.com/attachments/416000318149754881/651894391497293839/unknown.png [22:15:43] uhuhhh [22:16:51] i've copy pasted the script in gist again just in case there was some difference [22:19:15] did you update the navcoind path in the script? @salmonskinroll [22:19:26] yeah [22:19:55] 🤔 [22:20:21] let me try it again fresh [22:20:30] damn it [22:20:35] nope [22:20:42] 🤔 [22:43:08] alright, solved it, increase sleep 10 to 20 and it's running now [22:43:23] bad machine 🤦‍♂️ [22:44:58] or this is your way to show off your new machine 😉 [23:26:12] lol [23:26:16] its running on my old laptop [23:31:06] wow, ouch [23:31:46] i have four nodes running the script with cycles=20 50 100 200 now [23:33:26] well i guess old laptop >> intel xeon cpus