Commit Graph

15196 Commits

Author SHA1 Message Date
Ludo Galabru
6efb5beec4 refactor: interrupt with error 2021-04-05 14:19:50 -04:00
Ludo Galabru
02e48713d2 Merge branch 'develop' into fix/graceful-term-at-boot
# Conflicts:
#	testnet/stacks-node/src/run_loop/neon.rs
#	testnet/stacks-node/src/syncctl.rs
2021-04-05 14:14:14 -04:00
Ludo Galabru
58da66c898 chore: some refactoring 2021-04-05 14:07:46 -04:00
Jude Nelson
badd252586 Merge pull request #2549 from blockstack/fix/2407-net
Fix/2407
2021-04-05 17:44:29 +00:00
Jude Nelson
a85cba9595 Merge branch 'develop' into fix/2407-net 2021-04-05 11:51:44 -04:00
Aaron Blankstein
b568634377 Merge pull request #2561 from blockstack/feat/docs-bns-reveal
Docs: bns contract reveal-namespace
2021-04-05 08:37:55 -05:00
Reed Rosenbluth
a58416f957 docs: add info about namespace price functions 2021-04-02 14:41:07 -04:00
Jude Nelson
d3e4698d82 fix failing unit tests 2021-04-01 02:51:30 -04:00
Jude Nelson
06f98ffd8c expose last time we did an antientropy push (so other tests can read it) 2021-04-01 02:51:13 -04:00
Jude Nelson
d35dc2c603 do full rescans on blocks when scheduled, even if not in ibd 2021-04-01 02:50:52 -04:00
Jude Nelson
d4532459c2 set ibd in sync comms even if we don't at first know the burnchain tip height 2021-04-01 00:16:50 -04:00
Jude Nelson
efbe5ce272 address feedback 2021-03-31 23:51:47 -04:00
Jude Nelson
accf238834 update anti-entropy test to test new behavior (namely, burnchain advances aren't required to drive it) 2021-03-31 23:49:20 -04:00
Jude Nelson
4becd173bf remove dead code 2021-03-31 23:48:44 -04:00
Jude Nelson
51e725e510 until we know the true burnchain height, assume ibd 2021-03-31 23:48:19 -04:00
Jude Nelson
05625eaa1b make the anti-entropy protocol a little less aggressive -- only consider pushing a block or microblock stream after the sortition that produced it has passed. Also, use a timeout, not a change in burnchain block height, to trigger a pass. 2021-03-31 23:47:25 -04:00
Jude Nelson
78870d8b42 don't do anti-entropy stuff until after IBD 2021-03-31 02:12:40 -04:00
Jude Nelson
338be137a9 fix failing test 2021-03-31 01:19:37 -04:00
Jude Nelson
40e82c4025 run anti-entropy stress test 2021-03-30 23:32:10 -04:00
Jude Nelson
74aa78d6f7 add a stress-test for running the anti-entropy protocol across multiple reward cycles. verify that a follower can be booted entirely by the anti-entropy protocol from its bootstrap node 2021-03-30 23:30:28 -04:00
Jude Nelson
17c9c1ab38 expose antientropy_public and disable_block_download in the config file, to stress-test anti-entropy protocols 2021-03-30 23:29:37 -04:00
Jude Nelson
a5c756d898 reform/enhance the anti-entropy protocol so that it only considers O(1) reward cycles each time it's run, but it cycles through all reward cycles nevertheless. Also, fix a bug that would prevent the anti-entropy protocol from re-trying a block more than once. 2021-03-30 23:28:49 -04:00
Jude Nelson
a63782bf9e a NACK from a peer that doesn't recognize our consensus hash should be treated as "diverged" not "broken" 2021-03-30 23:28:27 -04:00
Jude Nelson
c1b63b63b3 run anti-entropy once an hour, and run it for non-NAT'ed nodes 2021-03-30 23:27:58 -04:00
Jude Nelson
43bca90482 on second thought, bound the depth of the anti-entropy protocol to whatever the inv-sync depth is fix-2407-net 2021-03-30 03:10:18 -04:00
Jude Nelson
88f48f9371 fix another compiler error 2021-03-30 02:44:16 -04:00
Jude Nelson
52381180b4 remove compiler warning 2021-03-30 02:40:08 -04:00
Jude Nelson
e45293152c cargo fmt 2021-03-30 02:38:10 -04:00
Jude Nelson
26d7420938 remove optimistic concurrency control that drops downloaded blocks/microblocks if the PoX bit vector happens to change (this appears to be causing problems in corner cases when the node is nearly done with its ibd) 2021-03-30 02:37:10 -04:00
Jude Nelson
4007a2c665 always continue to use the last-inv-sortition-height hint when setting up for block downloads; update the anti-entropy protocol to use the last-inv-sortition-height as well (since it can take a long, long time to run on testnet) 2021-03-30 02:36:22 -04:00
Jude Nelson
fa3ae6185a look to the inv state machine to know the first sortition height at which to start a download scan 2021-03-29 22:23:51 -04:00
Jude Nelson
e0dbca00bb if in ibd, and we do an inv sync, tell the downloader to start sync'ing at the inv sync state machine's starting sortition height 2021-03-29 21:57:55 -04:00
Jude Nelson
6e647cde13 remember which sortition height the node began its inv-sync at, and use that to inform the downloader where to download when in ibd 2021-03-29 21:57:29 -04:00
Jude Nelson
20e4372f55 better debug log 2021-03-29 21:57:05 -04:00
Jude Nelson
af4410af2b if there are no sortitions in a reward cycle, don't do any waiting 2021-03-29 18:45:03 -04:00
Jude Nelson
ddd69f4212 track the number of non-empty sortitions per cycle, and use that to inform the pox watchdog on how to do timeouts 2021-03-29 18:44:35 -04:00
Jude Nelson
4d1795b57f in neighbor walks, if sign_for_peer fails (unlikely), clear the event so it will become prunable 2021-03-29 18:23:01 -04:00
Jude Nelson
4506ffe2db clear the full-inv sync flag once it is attempted. Only keep attempting a full-inv sync if in an initial block download, and if no always-allowed peers finished the full-sync 2021-03-29 18:22:01 -04:00
Ludo Galabru
b1ca7df18b fix: lov level 2021-03-29 13:29:01 -04:00
Ludo Galabru
f1f47c0026 fix: ability to interrupt bulk block download 2021-03-26 15:57:52 -04:00
Ludo Galabru
7a726d61dd chore: cargo fmt 2021-03-26 14:47:10 -04:00
Ludo Galabru
bca0026143 fix: new attempt 2021-03-26 14:14:18 -04:00
Jude Nelson
938bdbb50f if we diverge during a block inv sync during initial block download, then do a full rescan 2021-03-26 02:28:09 -04:00
Jude Nelson
9af3f81e60 cargo fmt 2021-03-26 02:08:51 -04:00
Jude Nelson
5841212f57 fix build errors 2021-03-26 02:03:53 -04:00
Jude Nelson
0d78b12387 use the safer get_inventory_reward_cycles() method for PoxId; bump default inv window to 6 reward cycles; if we're in IBD and we diverge, do a full inv rescan on the spot 2021-03-26 01:59:54 -04:00
Jude Nelson
7278a0cacf cargo fmt 2021-03-25 22:04:07 -04:00
Jude Nelson
907c1b2645 make it 6 reward cycles per inv sync for testnet, and 3 for mainnet (since its reward cycles are much, much longer) 2021-03-25 22:03:00 -04:00
Jude Nelson
965b339538 make it 6 invs by default 2021-03-25 21:54:21 -04:00
Jude Nelson
5be844278d scan only the last 3 reward cycles most of the time, but every so often (e.g. every 12 hours), scan all of them 2021-03-25 19:45:42 -04:00