Skip to content
This repository has been archived by the owner on Mar 2, 2023. It is now read-only.

Why we wrote Beancounter #55

Merged
merged 1 commit into from
Feb 1, 2019
Merged

Conversation

mbyczkowski
Copy link
Collaborator

No description provided.

@coveralls
Copy link

coveralls commented Jan 29, 2019

Pull Request Test Coverage Report for Build 250

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 3 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-0.2%) to 41.421%

Files with Coverage Reduction New Missed Lines %
backend/fixture_backend.go 3 75.35%
Totals Coverage Status
Change from base Build 242: -0.2%
Covered Lines: 548
Relevant Lines: 1323

💛 - Coveralls

WHY.md Outdated
https://github.com/bitcoinbook/bitcoinbook (or the paper version of the book) is a good place to learn more about the underlying structures.

# What is a Bitcoin wallet?
A wallet is a collection of addresses. For [Hierarchical Deterministic wallets][bip32] (which is what we use), each wallet has a huge number of addresses (2^31). To figure out the balance, we need to find each addresses’ balance and sum things up. Doing the following would however be extremely slow:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't we have multiple levels in a path, so it's actually even bigger? Or does beancounter not handle that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typically, a given derivation is fixed, except for the 2^31 addresses * 2 (change vs non-change). So 2^32.

WHY.md Outdated
# Random other issues/thoughts
- Electrum API is a little painful to use. E.g. some methods return a stream of results, but we only want one result. No way to unsubscribe from the stream.
- Electrum’s API versioning is a little messy—not 100% backwards compatible and the initial client library we picked wasn’t very well implemented.
- Running a node (for development purpose) takes a long time to sync and requires a large SSD (at least 250GB ~ Oct ‘18). For some reason, the btcd node takes ~4 days for its initial sync (what is it doing?).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wasn't it ~7 days actually for btcd?

Co-authored-by: Alok Menghrajani <alok@squareup.com>
@mbyczkowski mbyczkowski merged commit 6ef8efc into master Feb 1, 2019
@mbyczkowski mbyczkowski deleted the mbyczkowski/why-beancounter branch February 1, 2019 05:02
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants