satstack

Bitcoin full node with Ledger Live

BSD-2-CLAUSE License

Stars
158
Committers
12

Bot releases are visible (Hide)

satstack - v0.19.0 Latest Release

Published by github-actions[bot] over 1 year ago

Maintenance release to upgrade golang and dependencies

Changelog

  • 603ede9 bump satstack version to 0.19.0
  • 6b7d141 build(deps): bump github.com/gin-gonic/gin from 1.8.1 to 1.9.1 (#113)
  • db41a6d build(deps): bump github.com/btcsuite/btcd from 0.23.2 to 0.23.4 (#112)
  • 96f738b build(deps): bump github.com/spf13/cobra from 1.5.0 to 1.7.0 (#111)
  • 4391078 build(deps): bump github.com/mattn/go-runewidth from 0.0.13 to 0.0.14 (#110)
  • d0c234e build(deps): bump github.com/btcsuite/btcd/btcutil from 1.1.2 to 1.1.3 (#109)
  • 576034e upgrade golang (#114)
  • fd8e719 Create dependabot.yml

What's Changed

Full Changelog: https://github.com/LedgerHQ/satstack/compare/v0.18.1...v0.19.0

satstack - v0.18.1

Published by github-actions[bot] over 1 year ago

Changelog

  • c4c96a3 build(deps): bump golang.org/x/net
  • 12b7337 add 'turn SatStack into a service'
  • 25d92ff build(deps): bump golang.org/x/text from 0.3.7 to 0.3.8
  • ca9af85 update max version of ecdsa to 0.19.0
  • b07ff09 force ledger-bitcoin to 0.0.3
  • 83b783c update supported LLD versions
  • 3271e58 clarify pruned nodes support
satstack - v0.18.0

Published by github-actions[bot] almost 2 years ago

Changelog

  • f0faf58 bump satstack version
  • cb8bb25 update README && make circulation check optional
  • fede05a update README
  • 28b2dcc bugfix when intial wallet configuartion
  • 736ddf0 don't unload wallet if we are still scanning when shutting done
  • 19876f0 bumps version to 0.17
  • 83f0fd4 remember state of the wallet when restarting lss
  • aadaea5 add description for rpcauth and remove rpcuser/rpcpassword
  • b14925a smaller bugfixes
  • cf294a6 add skip-circulation-check
  • 95899df check for new wallet loaded message
  • 8762fbb import descriptors in a bulk
  • f854993 build(deps): bump github.com/btcsuite/btcd from 0.23.1 to 0.23.2
  • c947043 Use ledger-bitcoin client library; add signet to the valid networks
satstack - v0.17.0

Published by github-actions[bot] about 2 years ago

Changelog

  • 283eda1 add arm64
satstack - v0.16.1

Published by github-actions[bot] about 2 years ago

Changelog

  • e971476 fix issue #17, add comment on error message
  • ed2b27b updating hardcoded satstack version
  • ccac256 update min support bitcoind version to 22
  • 1ed1346 update README
  • 3f76f5d update README
satstack - v0.16.0

Published by github-actions[bot] about 2 years ago

Changelog

  • ec8ce53 add support for taproot
  • 7374658 fb19279 13e3454 5e6ce58 2c40ffc 5804091 doc updates
  • 746332e update python version
  • 2dd2c26 Fix issue #31 (#72)
  • d8de05f Ignore wallet already open errors (#56)
satstack - v0.15.0

Published by github-actions[bot] over 2 years ago

Changelog

  • 03be27d add arm arch release
satstack - v0.14.0

Published by github-actions[bot] over 2 years ago

Changelog

  • 106bc18 Fix issue #44, #46, #54
  • 7ee85c5 build(deps): bump github.com/gin-gonic/gin from 1.6.3 to 1.7.0
  • 5bbe508 Fix Issue #1

update doc to precise Bitcoin Nano app version, requirements, remove libcore, etc.

satstack - v0.13.2

Published by github-actions[bot] over 2 years ago

Changelog

  • d4045a6 go version updated to 1.17
  • 60d7c9d implement btc/network endpoint
satstack - v0.12.0

Published by onyb almost 4 years ago

SatStack is now out of beta! 🎉

Thanks to everyone who contributed to the project, especially the early testers on Twitter and members of our Beta testers programme.

Read about the motivations and design rationale behind this project here: https://blog.ledger.com/satstack
To get started, please follow our dedicated Support article: https://support.ledger.com/hc/en-us/articles/360017551659

(this release has no changelog)

satstack - v0.11.1-beta

Published by onyb almost 4 years ago

Changelog

  • Fix bug with auto-detection of lss.json file.
satstack - v0.11.0-beta

Published by onyb almost 4 years ago

Changelog

  • Utilize txindex for synchronizing, whenever possible. Having txindex enabled in bitcoind, while not essential for synchronizing accounts or creating transactions, is useful for building the full transaction history. (f55dd59)

    If missing fields such as "from address" and "fees" bother you, consider setting txindex=1 in your bitcoin.conf. SatStack will automatically detect the presence of txindex and use it whenever possible.

  • Expose satstack version in the status endpoint. See example response below. (8fe3e2e)

     GET /blockchain/v3/explorer/status
     {
       "version": "v0.10.0-beta",
       "txindex": false,
       "block_filter": false,
       "pruned": false,
       "chain": "test",
       "currency": "btc_testnet",
       "status": "scanning",
       "scan_progress": 19.805744612838293
     }
    
  • Add endpoint to check if descriptor has been imported. (3188311)

    It checks if the first address derived from the given descriptor is being watched by bitcoind. See an example below.

     POST /control/descriptors/has
     {
       "descriptor": "sh(wpkh(tpubDCuopxz...rhHqhsW/0/*))"
     }
    
     Response:
     {
       "exists": false
     }
    

    ⚠️ A response of {"exists": true} does NOT imply that the descriptor is ready to be used for synchronization. You should wait the status to be ready.

  • Add some new fortunes for the cowsay. (332801e)

satstack - v0.10.0-beta

Published by onyb almost 4 years ago

Changelog

v0.10.0-beta is the first beta release of satstack, going into an internal QA phase at Ledger.

👉 Introduce workers for Initial Block Download and importing descriptors

This refactoring allows for better control over long-running tasks, and gracefully shutting down RPC connections, goroutines, and explorer server. It also fixes some long-standing memory leaks in connection objects. As a result of this refactoring, we also now have progress logs for descriptor imports! 🎉

👉 Consistent statuses

The Bus status (exposed by the /blockchain/v3/explorer/status endpoint) is now (almost) stateless. Instead of querying the status from the Bus state, it is computed on the fly, thereby always reflecting the truth. As of this release, satstack supports the following statuses:

  • node-disconnected → bitcoind is unreachable
  • syncing → during IBD
  • pending-scan → sync is complete, waiting for descriptor scan. Typically Satstack is performing some checks (ex, circulating supply) in the background.
  • scanning → importing descriptors
  • ready → satstack is ready to receive explorer requests from Ledger Live.

⚠️ The /blockchain/v3/explorer/status endpoint is now slightly heavier due to the underlying RPC calls. Please consider throttling your HTTP requests to this endpoint. Depending on the busyness of the node, the response time could be anything in between 5ms - 5s.

⚠️ There was a status called initializing - this is no longer used in the code but still kept for the future.

👉 Bitcoin fortunes

On startup, satstack displays a randomly picked Bitcoin fortune from a curated collection of interesting quotes, facts, email excerpts, and relics of the past. There are 47 fortunes included in this release. Contributions are most welcome!

satstack - v0.9.0-alpha

Published by onyb almost 4 years ago

Changelog

Implement native transaction parser to improve performance

Fetching transaction details in satstack involves two operations:

  1. Obtaining the raw transaction hex.
  2. Decoding the raw hex according to the Bitcoin wire protocol.

Both these operations are performed by bitcoind, and therefore incurs the cost of RPC communication. SatStack is now able to decode the raw transactions natively, thus saving an extra round-trip to the Bitcoin node. This is possible thanks to btcd's wire package.

An average speedup of ~33% was observed for synchronization from scratch and ~45% for subsequent synchronizations.

Miscellaneous fixes and improvements

  • Handle coinbase transactions with witness data.
  • ⚠️ Remove the GET /blockchain/<version>/<network>/transaction/:hash endpoint.
    • This endpoint was unused.
  • Never use Bitcoin Core's txindex to build decoded transactions, since building transactions without txindex is now just as fast.
  • Refactor UTXO map builder to make it more lightweight.
  • Fix regression with broadcasting transactions to the network.
satstack - v0.8.1-alpha

Published by onyb about 4 years ago

Changelog

satstack - v0.8.0-alpha

Published by onyb about 4 years ago

Changelog

  • Check if wallet features are disabled on startup. (f5cda55)
  • Create and use a dedicated wallet in the Bitcoin node called satstack, to avoid polluting the default wallet. (fef8f7f)
    • ⚠️ If you previously imported accounts via SatStack, it's recommended to delete your node's wallet before upgrading.
  • Gracefully unload the wallet on an interrupt signal. (82aac02)
  • Fix bug encountered when multiple wallets are already loaded in the node.
satstack - v0.7.0-alpha

Published by onyb about 4 years ago

Changelog

  • SatStack has a new home under the LedgerHQ GitHub organization. (de190b7) 🏡
  • Auto-detect BIP-157 compact block filters. (5405578931ab15343ad167774562bebbc9aff113)
    • Can offer minor speedup during chain rescans. A benchmark is available here.
    • A new boolean field called block_filter is now available in the response of GET /blockchain/v?/explorer/status.
  • Implement zero-configuration mode (see #35) for dynamically importing descriptors. (7434ec00f48f69d55d0a863e7c703162fd8ef220) 0️⃣
  • #RunTheNumbers on startup. (faefe98)
    • Performs inflation checks on the Bitcoin supply. Works for both mainnet and testnet3.
  • Perform Bitcoin Core version check on startup. (d9b89f7)
satstack - v0.6.0-alpha

Published by onyb about 4 years ago

Changelog

  • Automatically load config file from Ledger Live user data folder, if available.
  • Upstream all commits on the onyb/btcd fork to btcsuite/btcd. LSS now uses an unmodified version of btcd! 🎉
  • Track the node sync and descriptor scanning status on the Bitcoin node.
    • This value is stored in the Bus struct.
    • Possible values and their meanings can be found here.
  • Add a new handler to return explorer status: GET /blockchain/v2/explorer/status
    Example response:
    {
      "txindex": false,
      "pruned": false,
      "chain": "test",
      "currency": "btc_testnet",
      "status": "ready"
    }
    
  • Implement RPC client pooling using a buffered channel. 🎱
    • This brings concurrency to LSS and opens the door to future performance improvements.
  • Update the getdescriptor Python script to extract descriptors on both external and internal chains.
  • Update the Go module system and build scripts.
satstack - v0.5.0-alpha

Published by onyb about 4 years ago

Changelog

  • Account birthday is now set to 2013/09/10 by default.
    • This corresponds to the date on which BIP-0039 was proposed.
    • The README has also been updated to help users choose safe dates for account birthdays.
  • Specify external and internal output descriptors in the config file, based on feedback received in #24.
    • This makes configuration of accounts based on receive and change output descriptors, which is the canonical form in Bitcoin Core.
    • ⚠️ This is a breaking change. Please update your config file to the new format.
  • Avoid unnecessary getblock RPC calls while fetching transactions for addresses.
    • ⚠️ Upgrade of Bitcoin Core necessary. Minimum required version of Bitcoin Core bumped to 0.20.0 in order to support this.
  • LSS is now agnostic of Ledger Blockchain Explorer API v2 and v3.
    • Setting of EXPERIMENTAL_EXPLORERS=1 is no longer necessary. The LSS API provides dual-support for both versions.
  • Enable sending transactions WITHOUT txindex=1.
  • Small improvements to the CI setup with GitHub Actions.
satstack - v0.4.0-alpha

Published by onyb about 4 years ago

Changelog

  • Migrate to Go 1.15.
  • Migrate to mage as the build tool.
  • Use -ldflags to display build-time information at startup.
  • Revamp config package with better error handling and validation.
  • Assume account birthday to be 2016/06/01 by default.
    • Based on the launch date of Ledger Nano S.
  • Search for the config file in multiple standard paths.
    • LSS will look in the current directory first, followed by the user's home directory.
  • Switch to a configuration format purely based on output descriptors.
    • ⚠️ This is a breaking change. Please update your config file to the new format.
Package Rankings
Top 5.38% on Proxy.golang.org