Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

W23 BDK Lib Team Call #60

Closed
11 of 19 tasks
notmandatory opened this issue May 23, 2023 · 3 comments
Closed
11 of 19 tasks

W23 BDK Lib Team Call #60

notmandatory opened this issue May 23, 2023 · 3 comments
Assignees
Labels
Call Live audio call

Comments

@notmandatory
Copy link
Member

notmandatory commented May 23, 2023

📆 Tues June 6, 2023 12:00 UTC
📍 Discord General Voice Channel

Please add comments to this issue to suggest issues and PRs to discuss.

General Discussion Items

New Projects and Support

Top BDK 1.0 PRs and issues

Top BDK_CLI PRs and issues

Top Other PRs and issues

Upcoming Events

🌅 Future Call Notes

📜 Past Call Notes

@notmandatory notmandatory added the Call Live audio call label May 23, 2023
@notmandatory notmandatory self-assigned this May 23, 2023
@evanlinjin
Copy link
Member

I would like to talk about what I've been working on last week. Other than assisting @danielabrozzoni with the CoinControl stuff, I started work on a LocalChain that utilizes a linked list: bitcoindevkit/bdk#1002 (this was originally @LLFourn's idea, but I see how it will simplify our API).

pub struct CheckPoint {
    pub height: u32,
    pub hash: BlockHash,
    pub prev: Option<Arc<CheckPoint>>,
}

Imagine two threads, one holding the IndexedTxGraph and one sending from the chain-data-source. To start the chain-data-src thread, we only need to send the tip Arc<CheckPoint>. The chain-data-src can iterate in reverse to find the "point of agreement" without having to hold a lock on any structure, or having the main thread send over 10 blocks initially.

Likewise, when the chain-data thread discovers a new block, the tip Arc<CheckPoint> is the only thing we need to send to the main thread. No need to think about the previous blocks to include in order for the update to connect with the original chain.

Ideally I would like to include the RPC chain example with this PR as it shows how it is used.

@evanlinjin
Copy link
Member

The other thing I would like to discuss, is how we can come up with a good guideline for spec-writing. Unfortunately @danielabrozzoni will not be able to make the call.

I already have some thoughts on this: https://gist.github.com/evanlinjin/41e6a23cc08e888884bded327e290866?permalink_comment_id=4587231#gistcomment-4587231

@notmandatory
Copy link
Member Author

Meeting notes from HackMD (lightly edited)

W23 BDK Lib Team Meeting Notes

New Projects/Support

Top PRs

  • Evan working on RPC

    • first step LocalChain PR
    • then update example
  • Evan PR 976

    • Daniela reviewing
    • LLoyd final ACK
    • Merge end of next week
    • in Italy
    • review call Thur June 15 13:00 UTC
    • Vlad may have review web page
  • LagginTimes PR 964

    • taking over from Raj
    • framework for setting up TX
    • updating tests with new framework
    • target for alpha.2
  • Esplora client

    • steve to create issue to discuss retry
  • Testframe logging

    • Vlad sync up with LagginTimes
  • backport 0.28 MSRV PR 991

    • Vlad to help final ACK

Timeline

  1. alpha.1, PR 976 Redesignd IndexTxGraph, ChainOracle, basic electrum and esplora clients, wallet
  2. alpha.2, linked list localchain, RPC client, test framework
  3. alpha.3, coin selection
  4. alpha.4, planning?
  5. alpha.5, wallet txbuilder

Can we do monthly alpha releases? TBD

Spec writing

  • Evan asked how should we write specs (see link in above comment)
  • better guidelines

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Call Live audio call
Projects
None yet
Development

No branches or pull requests

2 participants