Commit Graph

5745 Commits

Author SHA1 Message Date
bestmike007
479051e665 fix: reading runtime env 2022-07-28 09:17:12 +00:00
bestmike007
96e0e6c235 feat: mocknet puppet mode 2022-07-28 04:31:53 +00:00
Jude Nelson
5b326f9d35 chore: cargo fmt 2022-05-28 22:45:44 -04:00
Jude Nelson
e1319a9e81 fix: compile-time error 2022-05-28 22:45:19 -04:00
Jude Nelson
9f510fd594 fix: use .saturating_sub() when determining the header range to copy over to the .reorg DB, and use K/V logging. Also, add multi-word test vectors to hex codec for uint256 2022-05-28 22:21:03 -04:00
Jude Nelson
1cc98b552f fix: prime the .reorg DB with the parent of the first header we expect to download (off-by-one error) 2022-05-26 21:35:12 -04:00
Jude Nelson
debf40c35c refactor: better name 2022-05-26 15:44:34 -04:00
Jude Nelson
437381e339 fix: test that the SPV chain tip is within 2 hours of now 2022-05-26 15:43:56 -04:00
Jude Nelson
6c9221aa7a fix: update sync_with_indexer() to assume that find_chain_reorg() does the bookkeeping on the SPV DB, so it doesn't have to 2022-05-26 13:57:39 -04:00
Jude Nelson
4721f67078 fix: use the correct chainwork calculation by summing over individual headers 2022-05-26 13:57:14 -04:00
Jude Nelson
fcbc660608 chore: s/InvalidDifficulty/InvalidChainWork/g 2022-05-26 13:56:55 -04:00
Jude Nelson
c6ac355f34 feat: have find_bitcoin_reorg() actually merge the reorg headers and chainwork into the original SPV database, instead of re-downloading the same headers and hoping for the best. Also, update the mainnet unit test to compare chainwork against known chainwork from bitcoind 2022-05-26 13:55:54 -04:00
Jude Nelson
11f6d7ee16 chore: unused mut 2022-05-26 00:13:11 -04:00
Jude Nelson
998b9b73d8 feat: update the SPV client to track the total chain work over time. BUT, right now the work calculation for a difficulty adjustment interval is getting the wrong answers and I don't know why. 2022-05-26 00:12:39 -04:00
Jude Nelson
04d2275aa0 chore: add InvalidDifficulty variant 2022-05-26 00:12:26 -04:00
Jude Nelson
74cc416952 chore: convert immunefi bug report into test vectors and update the indexer's find_bitcoin_reorg() method to check the original and reorg chain's total work in order to decide whether to move forward with reorg processing. 2022-05-26 00:11:32 -04:00
Jude Nelson
e09bd5c04d fix: keep a separate "migrated_version" table to track whether or not a migration was completed or not -- the schema version gets set *before* migration, and the migrated version gets set *after.* If no migration happens -- i.e. the schema version didn't change in the act of migrating -- and there's no evidence of a partial migration, then assume that no migration was ever needed (i.e. it's a fresh DB). 2022-05-02 19:58:21 -04:00
Jude Nelson
fb3e548de4 chore: set MARF as migrated once it's actually done 2022-05-02 19:57:58 -04:00
Jude Nelson
e49babe279 feat: add a method to detect partial migration to a .blobs file 2022-05-02 14:15:33 -04:00
Jude Nelson
762a5e9903 fix: panic if we detect a failed migration -- i.e. there are some tries with offset=0, length=0, and others that are not 2022-05-02 14:15:14 -04:00
Jude Nelson
fe7431a3c9 chore: only vacuum once, when we're done, and put the vacuum code into its own method 2022-05-02 14:14:43 -04:00
Jude Nelson
71ad8954eb fix: don't unset SQLITE_TMPDIR until end of the loop; vacuum every 1024 tries; also set TMPDIR for good measure 2022-05-01 20:51:19 -04:00
Jude Nelson
246d626568 fix: use SQLITE_TMPDIR to control where temporary vacuum state gets stored, so we don't OOM nodes that keep chainstate on a separate volume in the expectation that they can keep using a small root (or, specifically, /tmp) volume 2022-05-01 09:21:50 -04:00
Jude Nelson
c90dfb5774 fix: when migrating MARF tries to a .blobs file, periodically vacuum the marf.sqlite file to reclaim the now-unused space. 2022-04-30 20:05:38 -04:00
Jude Nelson
32741c81a5 chore: add OldSchema(..) and TooOldForEpoch error variants for schema migrations 2022-04-22 11:36:40 -04:00
Jude Nelson
dfc4c4984e fix: an always-allowed peer is already authenticated since we have its public key, so also make sure that the last contact time is positive when considering timeouts 2022-04-22 11:36:05 -04:00
Jude Nelson
485e450b34 feat: add function to check and migrate chainstate DBs if they exist 2022-04-22 11:35:49 -04:00
Jude Nelson
cb6861de70 fix: add separate DB migration function so the chains coordinator can do it on node boot-up. Also, downgrade the tx type for migraiton to DBTx so we don't accidentally depend on the first block header information (which we might not have) 2022-04-22 11:35:00 -04:00
Jude Nelson
caaec488e7 fix: new API for StacksChainState::open() 2022-04-19 13:35:15 -04:00
Jude Nelson
37a1b5bbb5 fix: don't consider cases where there are no txids 2022-04-19 11:43:21 -04:00
Jude Nelson
7b6e7bba4c Merge branch 'develop' into feat/analyze-fees.patch 2022-04-19 11:42:24 -04:00
Jude Nelson
67ea9f82a4 Merge branch 'develop' into fix/fix-always-allowed-walks 2022-04-18 14:12:34 +00:00
Jude Nelson
e4b600e225 fix: don't unconditionally connect to always-allowed neighbors when not in IBD -- they may be offline 2022-04-13 14:14:29 -04:00
Jude Nelson
9ae7bb1c0f chore: remove commented code block 2022-04-13 13:17:09 -04:00
Jude Nelson
ed3ba907c0 feat: add get-tenure and analyze-fees utility commands to (a) print out all txs and fees in a given tenure, and (b) analyze the tx fee distribution for all non-empty sets of transactions grouped by how long they stayed in the mempool (in number of blocks). Part (b) is meant to help provide insights into how high the fee should be to get included in the _Nth_ block from now, given a sample of the last _B_ blocks. 2022-04-13 13:04:54 -04:00
Jude Nelson
c155e038e9 fix: clean up imports for rust 2018 rules for unit tests 2022-04-09 17:40:08 -04:00
Jude Nelson
abc9b11870 fix: move to rust 2018 standards for explicit crate:: 2022-04-09 11:37:25 -04:00
Jude Nelson
2e30732636 Merge branch 'develop' into feat/marf-node-cache 2022-04-09 11:37:08 -04:00
Jude Nelson
f06db72a89 refactor: plumb through marf opts 2022-04-08 23:39:44 -04:00
Jude Nelson
0842bac7cc refactor: plumb through marf opts 2022-04-08 23:39:32 -04:00
Jude Nelson
7e647bbb59 fix: address feedback from PR review 2022-04-08 23:39:17 -04:00
Jude Nelson
a88974df0c refactor: plumb through marf opts, used to instantiate chainstate 2022-04-08 23:38:57 -04:00
Jude Nelson
54f7cd15f3 refactor: plumb through marf opts 2022-04-08 23:38:31 -04:00
Jude Nelson
9a5e390395 Merge branch 'develop' into fix/3045 2022-04-08 14:12:46 -04:00
Aaron Blankstein
659b2c45cf fix: use send() for atlas channel + increase channel size 2022-03-28 15:40:42 -05:00
Aaron Blankstein
5a8b19508f Merge remote-tracking branch 'origin/develop' into fix/smooth-coordinator-shutdown 2022-03-28 15:39:45 -05:00
Aaron Blankstein
e6d0f54ed9 Merge remote-tracking branch 'origin/develop' into chore/edition-2021 2022-03-28 12:07:27 -05:00
Aaron Blankstein
f969b356c0 chore: conform blockstack_lib to edition="2021" 2022-03-24 15:53:02 -05:00
Aaron Blankstein
8608cc7fde address PR feedback 2022-03-24 14:43:55 -05:00
Aaron Blankstein
d1f02b1435 Merge remote-tracking branch 'origin/develop' into fix/smooth-coordinator-shutdown 2022-03-24 14:41:39 -05:00