]>
Untitled Git - bdk/log
Steve Myers [Tue, 30 Nov 2021 23:41:41 +0000 (15:41 -0800)]
Merge branch 'master' into release/0.14.0
Steve Myers [Mon, 29 Nov 2021 22:12:38 +0000 (14:12 -0800)]
Merge bitcoindevkit/bdk#475: Fix typo in check_miniscript method declaration and use
b9fc06195beab8eab4c4c6224dc069ebd5106729 Fix typo in check_miniscript method declaration and use (thunderbiscuit)
Pull request description:
### Description
This PR renames the `check_minsicript()` method on the `CheckMiniscript` trait and its uses throughout the codebase to `check_miniscript()`.
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
ACKs for top commit:
notmandatory:
ACK
b9fc06195beab8eab4c4c6224dc069ebd5106729
Tree-SHA512: cc4406c653cb86f9b15e60c6f87b95c300784d6b2992abc98b3f2db4b02ce252304cc0ab2c638f080b0caf3889e832885eca19e2d6582a3557c8709311b69644
Steve Myers [Mon, 29 Nov 2021 18:24:52 +0000 (10:24 -0800)]
Merge bitcoindevkit/bdk#477: Update issue templates
8534cd39433211733c325a73ca15fe7d569e8401 Update issue templates (Steve Myers)
Pull request description:
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
Add bug reporting issue template and template for proposing a "Summer of Bitcoin" project.
### Notes to the reviewers
The SoB template is basically a copy of what Adi created but lightly formatted to work as github issue templates.
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
Top commit has no ACKs.
Tree-SHA512: 956f7833b7cc1daf4880f74be3886fb17508719af37a247065c463d3f95b1f058bad785590714c609b0e069fe00784bc71cfb0812a79a70c18a2b5bdb22aca6b
Steve Myers [Sun, 28 Nov 2021 06:13:29 +0000 (22:13 -0800)]
Bump version to 0.14.1-dev
Steve Myers [Sun, 28 Nov 2021 05:00:19 +0000 (21:00 -0800)]
Bump version to 0.14.0
Steve Myers [Mon, 15 Nov 2021 20:29:28 +0000 (12:29 -0800)]
Update issue templates
Steve Myers [Thu, 25 Nov 2021 04:44:27 +0000 (20:44 -0800)]
Merge bitcoindevkit/bdk#471: moving the function wallet_name_from_descriptor from blockchain/rpc.rs to wallet/mod.rs as it can be useful not only for rpc
2fc81141806ace8f12e5a019c0866f16fa8a02dc moving the function wallet_name_from_descriptor from blockchain/rpc.rs to wallet/mod.rs as it can be useful not only for rpc (Richard Ulrich)
Pull request description:
### Description
Moving the function wallet_name_from_descriptor from rpc.rs to mod.rs
Since the local cache for compact filters should be separate per wallet, this function can be useful not only for rpc.
### Notes to the reviewers
I thought about renaming it, but waited for opinions on that.
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
ACKs for top commit:
notmandatory:
re-ACK
2fc8114
Tree-SHA512: d5732e74f7a54f54dde39fff77f94f12c611a419bed9683025ecf7be95cde330209f676dfc9346ebcd29194325589710eafdd1d533e8073d0662cb397577119f
Steve Myers [Thu, 25 Nov 2021 03:48:19 +0000 (19:48 -0800)]
Merge bitcoindevkit/bdk#461: Restructure electrum/esplora sync logic
9c5770831de58760066dbbb26c0785632dde4991 Make stop_gap a parameter to EsploraBlockchainConfig::new (LLFourn)
0f0a01a742448fa9db67752722fed7d1c028117b s/vin/vout/ (LLFourn)
1a64fd9c9595566366cfe96cc20d8ba2f4da1bd3 Delete src/blockchain/utils.rs (LLFourn)
d3779fac73321f41b82897e6ab69708c957212b2 Fix comments (LLFourn)
d39401162fb72a9a02999908ac0347685d8861a5 Less intermediary data states in sync (LLFourn)
dfb63d389b2804cb55da60de0d8fcad985d50e5c s/observed_txs/finished_txs/g (LLFourn)
188d9a4a8b502b3f681f4c83fd9933b9a952e42c Make variable names consistent (LLFourn)
5eadf5ccf9722aa331008304221e981d01bca1c1 Add some logging to script_sync (LLFourn)
aaad560a91872318890208c4b3d5cb73a63029a8 Always get up to chunk_size heights to request headers for (LLFourn)
e7c13575c88be4fce1f407eae3710cb06c5db039 Don't request conftime during tx request (LLFourn)
808d7d8463c56cbcda0bd55a5eba422cf5080ce7 Update changelog (LLFourn)
732166fcb689ad666eab02a4bb28c33018f7b819 Fix feerate calculation for esplora (LLFourn)
3f5cb6997f8bf0c889747badb9498a402ecf96a4 Invert dependencies in electrum sync (LLFourn)
Pull request description:
## Description
This PR does dependency inversion on the previous sync logic for electrum and esplora captured in the trait `ElectrumLikeSync`. This means that the sync logic does not reference the blockchain at all. Instead the blockchain asks the sync logic (in `script_sync.rs`) what it needs to continue the sync and tries to retrieve it.
The initial purpose of doing this is to remove invocations of `maybe_await` in the abstract sync logic in preparation for completely removing `maybe_await` in the future. The other major benefit is it gives a lot more freedom for the esplora logic to use the rich data from the responses to complete the sync with less HTTP requests than it did previously.
## List of changes
- sync logic moved to `script_sync.rs` and `ElectrumLikeSync` is gone.
- esplora makes one http request per sync address. This means it makes half the number of http requests for a fully synced wallet and N*M less requests for a wallet which has N new transactions with M unique input transactions.
- electrum and esplora save less raw transactions in the database. Electrum still requests input transactions for each of its transactions to calculate the fee but it does not save them to the database anymore.
- The ureq and reqwest blockchain configuration is now unified into the same struct. This is the only API change. `read_timeout` and `write_timeout` have been removed in favor of a single `timeout` option which is set in both ureq and reqwest.
- ureq now does concurrent (parallel) requests using threads.
- An previously unnoticed bug has been fixed where by sending a lot of double spending transactions to the same address you could trick a bdk Esplora wallet into thinking it had a lot of unconfirmed coins. This is because esplora doesn't delete double spent transactions from its indexes immediately (not sure if this is a bug or a feature). A blockchain test is added for this.
- BONUS: The second commit in this PR fixes the feerate calculation for esplora and adds a test (the previous algorithm didn't work at all). I could have made a separate PR but since I was touching this file a lot I decided to fix it here.
## Notes to the reviewers
- The most important thing to review is the the logic in `script_sync.rs` is sound.
- Look at the two commits separately.
- I think CI is failing because of MSRV problems again!
- It would be cool to measure how much sync time is improved for your existing wallets/projects. For `gun` the speed improvements for modest but it is at least hammering the esplora server much less.
- I noticed the performance of reqwest in blocking is much worse in this patch than previously. This is because somehow reqwest is not re-using the connection for each request in this new code. I have no idea why. The plan is to get rid of the blocking reqwest implementation in a follow up PR.
### Checklists
#### All Submissions:
* [x] I've signed all my commits
ACKs for top commit:
rajarshimaitra:
Retested ACK https://github.com/bitcoindevkit/bdk/pull/461/commits/
a630685a0ab95604cadbb423f65d8358ba4bc4e4
Tree-SHA512: de74981e9d1f80758a9f20a3314ed7381c6b7c635f7ede80b177651fe2f9e9468064fae26bf80d4254098accfacfe50326ae0968e915186e13313f05bf77990b
thunderbiscuit [Tue, 23 Nov 2021 17:59:08 +0000 (12:59 -0500)]
Fix typo in check_miniscript method declaration and use
LLFourn [Tue, 23 Nov 2021 00:28:18 +0000 (11:28 +1100)]
Merge branch 'master' into sync_pipeline
Richard Ulrich [Wed, 17 Nov 2021 15:26:43 +0000 (16:26 +0100)]
moving the function wallet_name_from_descriptor from blockchain/rpc.rs to wallet/mod.rs as it can be useful not only for rpc
Steve Myers [Wed, 17 Nov 2021 19:54:09 +0000 (11:54 -0800)]
Bump version to 0.14.0-rc.1
Steve Myers [Thu, 11 Nov 2021 21:44:34 +0000 (13:44 -0800)]
Fix blockchain_tests::test_send_to_bech32m_addr
Now works with latest released versions of rust-bitcoincore-rpc and
bitcoind. Once these crates are updated to support creating descriptor
wallets and add importdescriptors and bech32m support this test will
need to be updated.
Sandipan Dey [Mon, 13 Sep 2021 16:31:44 +0000 (22:01 +0530)]
Added wallet blockchain test to send to Bech32m address
Sandipan Dey [Mon, 13 Sep 2021 16:29:20 +0000 (21:59 +0530)]
Added a wallet unit test to send to a Bech32m address
Alekos Filini [Thu, 4 Nov 2021 15:38:38 +0000 (15:38 +0000)]
[database] Wrap `BlockTime` in another struct to allow adding more
fields in the future
Alekos Filini [Wed, 3 Nov 2021 16:05:30 +0000 (16:05 +0000)]
Rename `ConfirmationTime` to `BlockTime`
Alekos Filini [Tue, 26 Oct 2021 12:38:55 +0000 (14:38 +0200)]
Update CHANGELOG.md
Alekos Filini [Sat, 23 Oct 2021 13:25:49 +0000 (15:25 +0200)]
[wallet] Store the block height and timestamp after syncing
Closes #455
Alekos Filini [Sat, 23 Oct 2021 13:00:09 +0000 (15:00 +0200)]
[wallet] Expose an immutable reference to a wallet's database
Alekos Filini [Sat, 23 Oct 2021 12:51:42 +0000 (14:51 +0200)]
[db] Add the `last_sync_time` database entry
This will be used to store the height and timestamp after every sync.
LLFourn [Fri, 5 Nov 2021 02:34:30 +0000 (13:34 +1100)]
Make stop_gap a parameter to EsploraBlockchainConfig::new
LLFourn [Fri, 5 Nov 2021 02:30:41 +0000 (13:30 +1100)]
s/vin/vout/
LLFourn [Fri, 5 Nov 2021 01:47:48 +0000 (12:47 +1100)]
Delete src/blockchain/utils.rs
LLFourn [Fri, 5 Nov 2021 01:44:36 +0000 (12:44 +1100)]
Fix comments
LLFourn [Fri, 5 Nov 2021 01:34:17 +0000 (12:34 +1100)]
Less intermediary data states in sync
Use BTrees to store ordered sets rather than HashSets -> VecDequeue
LLFourn [Fri, 5 Nov 2021 01:14:42 +0000 (12:14 +1100)]
s/observed_txs/finished_txs/g
LLFourn [Tue, 2 Nov 2021 06:22:24 +0000 (17:22 +1100)]
Make variable names consistent
LLFourn [Tue, 2 Nov 2021 06:16:03 +0000 (17:16 +1100)]
Add some logging to script_sync
LLFourn [Tue, 2 Nov 2021 05:49:19 +0000 (16:49 +1100)]
Always get up to chunk_size heights to request headers for
LLFourn [Tue, 2 Nov 2021 05:34:50 +0000 (16:34 +1100)]
Don't request conftime during tx request
LLFourn [Thu, 28 Oct 2021 03:49:11 +0000 (14:49 +1100)]
Update changelog
LLFourn [Thu, 28 Oct 2021 02:53:32 +0000 (13:53 +1100)]
Fix feerate calculation for esplora
LLFourn [Fri, 29 Oct 2021 06:41:02 +0000 (17:41 +1100)]
Invert dependencies in electrum sync
Blockchain calls sync logic rather than the other way around.
Sync logic is captured in script_sync.rs.
Riccardo Casatta [Tue, 9 Nov 2021 14:35:34 +0000 (15:35 +0100)]
fix after merge changing borrow of tx in broadcast
Riccardo Casatta [Thu, 28 Oct 2021 08:06:52 +0000 (10:06 +0200)]
Update CHANGELOG
Riccardo Casatta [Wed, 27 Oct 2021 14:56:46 +0000 (16:56 +0200)]
add test for add_data
Riccardo Casatta [Wed, 27 Oct 2021 14:34:33 +0000 (16:34 +0200)]
add method add_data as a shortcut to create an OP_RETURN output, fix the dust check to consider only spendable output
Alekos Filini [Mon, 8 Nov 2021 09:41:12 +0000 (10:41 +0100)]
Merge commit 'refs/pull/464/head' of github.com:bitcoindevkit/bdk
Alekos Filini [Mon, 8 Nov 2021 09:39:50 +0000 (10:39 +0100)]
Merge commit 'refs/pull/458/head' of github.com:bitcoindevkit/bdk
rajarshimaitra [Sat, 6 Nov 2021 14:44:03 +0000 (20:14 +0530)]
Update WordsCount -> WordCount
rajarshimaitra [Sat, 6 Nov 2021 14:43:45 +0000 (20:13 +0530)]
Update changelog
Alekos Filini [Thu, 4 Nov 2021 15:26:15 +0000 (15:26 +0000)]
Merge commit 'refs/pull/462/head' of github.com:bitcoindevkit/bdk
Steve Myers [Wed, 3 Nov 2021 20:51:59 +0000 (13:51 -0700)]
Merge commit 'refs/pull/453/head' of github.com:bitcoindevkit/bdk
rajarshimaitra [Wed, 3 Nov 2021 05:38:21 +0000 (11:08 +0530)]
remove redundant backtrace dependency
rajarshimaitra [Tue, 2 Nov 2021 10:11:51 +0000 (15:41 +0530)]
update module doc
rajarshimaitra [Sun, 31 Oct 2021 14:55:00 +0000 (20:25 +0530)]
Replace tiny-bip39 with rust-bip39
Use rust-bip39 for mnemonic derivation everywhere.
This requires our own WordCount enum as rust-bip39 doesn't have
explicit mnemonic type definition.
rajarshimaitra [Mon, 25 Oct 2021 06:20:34 +0000 (11:50 +0530)]
Update codecov@v2
rajarshimaitra [Sun, 31 Oct 2021 14:53:25 +0000 (20:23 +0530)]
update dependency
dependency updated from tiny-bip39 to rust-bip39
Steve Myers [Thu, 28 Oct 2021 20:38:39 +0000 (13:38 -0700)]
Bump version to 0.13.1-dev
Steve Myers [Thu, 28 Oct 2021 17:44:56 +0000 (10:44 -0700)]
Bump version to 0.13.0
Steve Myers [Wed, 27 Oct 2021 20:52:18 +0000 (13:52 -0700)]
Switch back to rust-bitcoin/rust-bitcoincore-rpc
Steve Myers [Wed, 27 Oct 2021 20:42:01 +0000 (13:42 -0700)]
Update dev-dependencies electrsd to 0.12
Mariusz Klochowicz [Wed, 20 Oct 2021 05:04:29 +0000 (15:34 +1030)]
Borrow instead of moving transaction when broadcasting
There's no need to take ownership of the transaction for a broadcast.
Alekos Filini [Fri, 22 Oct 2021 09:59:01 +0000 (11:59 +0200)]
Pin version of `ureq` to maintain our MSRV
(cherry picked from commit
d75d221540a0d47b7538b456211f92cdb4d4da8c )
Alekos Filini [Thu, 21 Oct 2021 17:54:14 +0000 (19:54 +0200)]
Pin version of `backtrace` to maintain our MSRV
(cherry picked from commit
548e43d928d1492784dc465a28fa99b9ca263b9f )
Alekos Filini [Thu, 21 Oct 2021 16:35:03 +0000 (18:35 +0200)]
[ci] Update the stable version to 1.56
(cherry picked from commit
a348dbdcfe2fa9abc92eab7286dde1177fef65bd )
Alekos Filini [Fri, 22 Oct 2021 09:59:01 +0000 (11:59 +0200)]
Pin version of `ureq` to maintain our MSRV
Alekos Filini [Thu, 21 Oct 2021 17:54:14 +0000 (19:54 +0200)]
Pin version of `backtrace` to maintain our MSRV
Alekos Filini [Thu, 21 Oct 2021 16:35:03 +0000 (18:35 +0200)]
[ci] Update the stable version to 1.56
Steve Myers [Thu, 21 Oct 2021 03:14:10 +0000 (20:14 -0700)]
Fix CHANGELOG for Unreleased, v0.13.0
Steve Myers [Thu, 21 Oct 2021 03:09:31 +0000 (20:09 -0700)]
Bump version to 0.13.0-rc.1
Sudarsan Balaji [Fri, 15 Oct 2021 16:06:36 +0000 (21:36 +0530)]
Make MemoryDatabase Send + Sync
Steve Myers [Thu, 14 Oct 2021 15:24:32 +0000 (08:24 -0700)]
Pin ahash version to 0.7.4 for sqlite feature
The `ahash` crate is used by the `sqlite` feature but the latest update (0.7.5)
breaks compatibility with our current MSRV 1.46.0. See also:
https://github.com/tkaitchuck/aHash/issues/99
Steve Myers [Fri, 8 Oct 2021 05:52:55 +0000 (22:52 -0700)]
Merge commit 'refs/pull/443/head' of github.com:bitcoindevkit/bdk
Steve Myers [Fri, 8 Oct 2021 05:48:47 +0000 (22:48 -0700)]
Merge commit 'refs/pull/445/head' of github.com:bitcoindevkit/bdk
rajarshimaitra [Thu, 23 Sep 2021 10:46:31 +0000 (16:16 +0530)]
Update ChangeLog
rajarshimaitra [Thu, 23 Sep 2021 10:42:53 +0000 (16:12 +0530)]
Expose get_tx() method from `DB` to `Wallet`
Steve Myers [Thu, 30 Sep 2021 23:11:42 +0000 (16:11 -0700)]
Fix cargo doc warning and missing `sqlite` feature
Steve Myers [Thu, 30 Sep 2021 20:38:16 +0000 (13:38 -0700)]
Update DEVELOPMENT_CYCLE release instructions
Steve Myers [Thu, 30 Sep 2021 20:39:17 +0000 (13:39 -0700)]
Bump version to 0.12.1-dev
Steve Myers [Thu, 30 Sep 2021 17:40:51 +0000 (10:40 -0700)]
Bump version to 0.12.0
Steve Myers [Thu, 30 Sep 2021 17:54:43 +0000 (10:54 -0700)]
Bump bdk-macros version to 0.6.0
Steve Myers [Mon, 27 Sep 2021 01:51:03 +0000 (18:51 -0700)]
Downgrade tiny-bip39 to version < 0.8
This is required until BDK MSRV is changed to 1.51 or we replace
tiny-bip39 dependency.
Steve Myers [Mon, 27 Sep 2021 01:51:03 +0000 (18:51 -0700)]
Downgrade tiny-bip39 to version < 0.8
This is required until BDK MSRV is changed to 1.51 or we replace
tiny-bip39 dependency.
Steve Myers [Fri, 24 Sep 2021 17:25:12 +0000 (10:25 -0700)]
Bump version to 0.12.0-rc.1
Steve Myers [Fri, 24 Sep 2021 01:42:09 +0000 (18:42 -0700)]
Fix clippy warning
Steve Myers [Fri, 24 Sep 2021 01:28:27 +0000 (18:28 -0700)]
Move new CHANGELOG entries to Unreleased
John Cantrell [Fri, 18 Jun 2021 17:45:16 +0000 (13:45 -0400)]
implement sqlite database
Steve Myers [Thu, 23 Sep 2021 22:28:57 +0000 (15:28 -0700)]
Merge commit 'refs/pull/442/head' of github.com:bitcoindevkit/bdk
Alekos Filini [Mon, 30 Aug 2021 13:49:07 +0000 (15:49 +0200)]
[esplora] Support proxies in EsploraBlockchain
Lucas Soriano del Pino [Thu, 23 Sep 2021 09:49:06 +0000 (19:49 +1000)]
Activate miniscript/use-serde feature
Steve Myers [Wed, 22 Sep 2021 16:51:37 +0000 (09:51 -0700)]
[ci] Change check-wasm job to use ubuntu-20.04 runner
LLFourn [Tue, 21 Sep 2021 23:52:38 +0000 (09:52 +1000)]
[fix-build] Fix version of zeroize_derive to 1.1.0
Riccardo Casatta [Mon, 13 Sep 2021 12:52:22 +0000 (14:52 +0200)]
[rpc] rescan in chunks of 10_000 blocks
Steve Myers [Thu, 16 Sep 2021 18:03:52 +0000 (11:03 -0700)]
Merge commit 'refs/pull/438/head' of github.com:bitcoindevkit/bdk
Steve Myers [Thu, 16 Sep 2021 15:45:53 +0000 (08:45 -0700)]
Merge commit 'refs/pull/434/head' of github.com:bitcoindevkit/bdk
rajarshimaitra [Tue, 31 Aug 2021 09:04:19 +0000 (14:34 +0530)]
Update CI blockchain tests
(cherry picked from commit
10b53a56d71ca4a923464f9cd12b5738f280d84a )
rajarshimaitra [Tue, 31 Aug 2021 08:58:10 +0000 (14:28 +0530)]
Test refactor
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
(cherry picked from commit
8d1d92e71e61f7c8094b3f3c8ed26b849cc8250b )
rajarshimaitra [Tue, 31 Aug 2021 08:56:52 +0000 (14:26 +0530)]
Fix reqwest blockchain test
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
(cherry picked from commit
a41a0030dc212bc3685848c7aa5e9ce12c23720f )
rajarshimaitra [Tue, 31 Aug 2021 08:53:24 +0000 (14:23 +0530)]
Update Cargo.toml
- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
(cherry picked from commit
2459740f7218603447307b20bd3776dc14898a6e )
Alekos Filini [Wed, 15 Sep 2021 08:36:50 +0000 (10:36 +0200)]
[descriptor] Add a test for `extract_policy()` on `pk_h()` operands
Alekos Filini [Wed, 15 Sep 2021 08:36:02 +0000 (10:36 +0200)]
[descriptor] Add an alias for `and_or()`
The descriptor syntax encodes it with `andor()`, without the underscore
Alekos Filini [Wed, 15 Sep 2021 08:35:01 +0000 (10:35 +0200)]
[descriptor] Fix `pk_h()` in the `descriptor!()` macro
Instead of accepting just a `DescriptorPublicKey` it now accepts
anything that implements `IntoDescriptorKey` like `pk_k()` does.
Alekos Filini [Wed, 15 Sep 2021 08:21:38 +0000 (10:21 +0200)]
[descriptor] Fix `extract_policy()` for descriptors with `pk_h()`
rajarshimaitra [Tue, 31 Aug 2021 09:04:19 +0000 (14:34 +0530)]
Update CI blockchain tests
rajarshimaitra [Tue, 31 Aug 2021 08:58:10 +0000 (14:28 +0530)]
Test refactor
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
rajarshimaitra [Tue, 31 Aug 2021 08:56:52 +0000 (14:26 +0530)]
Fix reqwest blockchain test
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
rajarshimaitra [Tue, 31 Aug 2021 08:53:24 +0000 (14:23 +0530)]
Update Cargo.toml
- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
Steve Myers [Sat, 4 Sep 2021 18:43:24 +0000 (11:43 -0700)]
Bump version to 0.11.1-dev