feat: integration of frigate ephemeral scanning#48
feat: integration of frigate ephemeral scanning#48sdmg15 wants to merge 1 commit intobitcoindevkit:masterfrom
Conversation
nymius
left a comment
There was a problem hiding this comment.
I have tried the command without success. Could you provide me some examples to try?
If you could create an executable step by step example like the built in doc/tabconf7 would be great.
Notice it builds a container with frigate on it. You only have to expose the ports to be able to communicate with it from outside of the container.
|
Thanks for a quick round of review, I noticed I have some unpushed changes which I just did. |
|
@nymius the latest commit 6518059 is in a testable state. The only new command to what is inside |
nymius
left a comment
There was a problem hiding this comment.
I fixed the issue with bdk-tx. You should rebase.
Successfully executed scanning on regtest:
$ REGTEST_ADDRESS=$(regtest-bdk unused_address | jq -r '.address' | tr -d '\n')
$ just mine 1 $REGTEST_ADDRESS
[
"5e724d83a5e8999874ec679ed5823962f56c82bf4810be937b248dc5a08b15cb"
]
$ just mine 101 2>&1 >/dev/null
$ regtest-bdk sync
{}
$ regtest-bdk balance
{
"satoshi": {
"confirmed": 5000000000,
"immature": 0,
"trusted_pending": 0,
"untrusted_pending": 0
}
}
$ SP_CODE=$(regtest-sp code | jq -r '.silent_payment_code' | tr -d '\n')
$ RAW_TX=$(regtest-bdk create_sp_tx --to-sp $SP_CODE:10000 --fee_rate 5 | jq -r '.raw_tx' | tr -d '\n')
$ TXID=$(regtest-bdk broadcast --tx $RAW_TX | jq -r '.txid' | tr -d '\n')
$ just mine 1
[
"2c28f3fa2cdd742a3e5e564f770802c558324506ea6db3ab6c0cea85ab83c0c3"
]
$ regtest-bdk sync
{}
$ regtest-bdk balance
{
"satoshi": {
"confirmed": 4999989228,
"immature": 0,
"trusted_pending": 0,
"untrusted_pending": 0
}
}
$ regtest-sp scan-frigate --url 127.0.0.1:57001 --start 0
2026-02-12T19:10:12.162809Z WARN bdk_sp_oracles::frigate: Read bytes from stream 59
2026-02-12T19:10:12.183998Z WARN bdk_sp_oracles::frigate: Read bytes from stream 156
2026-02-12T19:10:12.184062Z INFO bdk_sp_oracles::frigate: Subscribed to silent payment address: String("sprt1qqvf42gn2770nwf8jvalczzv80ad8p9zseahnleklzzklqxkg5s80wqa7xxx58l2wvumjlmrzy9eed4vsd647jcmp6jg5tr08unyhex7u5chnkk64")
2026-02-12T19:10:12.184092Z INFO sp_cli2: Starting frigate scanning loop...
2026-02-12T19:10:12.361669Z WARN bdk_sp_oracles::frigate: Read bytes from stream 461
2026-02-12T19:10:12.414640Z WARN bdk_sp_oracles::frigate: Read bytes from stream 200
2026-02-12T19:10:12.474964Z WARN bdk_sp_oracles::frigate: Read bytes from stream 448
2026-02-12T19:10:12.475701Z INFO sp_cli2: Progress 1
2026-02-12T19:10:12.475740Z WARN sp_cli2: Scanning completed
$ echo $SP_CODE
sprt1qqvf42gn2770nwf8jvalczzv80ad8p9zseahnleklzzklqxkg5s80wqa7xxx58l2wvumjlmrzy9eed4vsd647jcmp6jg5tr08unyhex7u5chnkk64
$ regtest-sp balance
{
"confirmed": {
"immature": 0,
"spendable": 0,
"total": 0
}
}
{
"unconfirmed": {
"total": 10000,
"trusted": 0,
"untrusted": 10000
}
}Notice the balance appears as unconfirmed because the block to which the transaction is anchored doesn't belong to the wallet local chain. I left a comment in the code mentioning how to fix that.
I think that Read bytes from stream {bytes} belongs to the DEBUG scope, rather than WARN. I would also print a one line log of the balance, after each execution of the command.
Could you give me more information about the issues that are preventing you from testing with the playbooks? Could you setup nix?
Good work!
|
Added a new playbook 59a1128. It's important to note that for this work we need to update Frigate to 1.3.2 |
There was a problem hiding this comment.
I've checked the frigate_playbook.sh execution and it works great. I'm glad you were able to replicate it.
I recommend you to rebase and check each commit individually and:
- execute
git show --checkand fix any issue arising. - execute
just pand implement fixes and apply formatting. - rewrite commits to use conventional commit format. Look at commit history to understand the conventions and scopes used.
- squash the commits into a single one.
Description
This PR integrates the experimental Frigate scanning server with ephemeral client keys.
Notes to the reviewers
The specification and how to run a frigate server can be found at: https://github.com/sparrowwallet/frigate
Changelog notice
Checklists
All Submissions:
just p(fmt, clippy and test) before committing