SeedSigner v0.7.0: Reproducible Builds, Faster Startup & More
SeedSigner offers anyone the opportunity to build a verifiably air-gapped, stateless Bitcoin signing device using inexpensive, publicly available hardware components (usually < $50).
- "This release is a massive step forward for SeedSigner and had the largest number of dev contributors, ever! Huge thanks to our volunteer Project Manager: @bitcoinprecept."
- "If you are getting value from SeedSigner, please consider donating to our development fund."
- "Check out our Independent Custody Guide to read more on what our project is all about."
Highlights
- Reproducible builds: don't trust, verify! You can now confirm for yourself that our release images exactly match our FOSS repos.
- Faster Startup: SeedSigner now starts in only 12 seconds (reduced by ~66%).
- Faster live camera display: improved framerate makes aiming the camera a much smoother experience.
- QR-based message signing: Compatible with Specter Desktop (or any QR code generator/reader app).
- SettingsQR Generator: create settings configs that you can instantly scan in to transform your SeedSigner experience. e.g. create a stripped-down, basic noob config that simplifies SeedSigner for demoing to friends but have an advanced expert config for yourself.
- More responsive controls and clicks (50% to 100% faster).
- On-screen hint for adjusting the QR code display brightness: the primary solution for dealing with low quality webcams.
- MicroSD removal hint: gentle reminder for the most careful/paranoid security maxis that you can remove the SD card before loading a seed.
- Screenshot generator: We can now generate pixel-perfect screenshots of most screens in the UI. Ideal for including in tutorials, etc.
- Flow-based tests: the test suite now includes end-to-end, screen-by-screen scenario tests (e.g. user loads a seed, then scans a psbt, etc). This is a massive improvement for regression testing (does a change break any existing functionality?) and debugging any user-reported errors.
- Notable camera change: Camera orientation: default was 0°, now 180°. SeedSigner builds have evolved to favor the mini Raspberry Pi camera (no daughterboard; components integrated into the ribbon cable). The new default is for these builds. If your build uses the bigger camera (has a daughterboard; original "Orange Pill" enclosure), you'll need to set camera orientation to 0° with this release.
Release notes
New features:
- SeedSigner OS reproducible builds and faster boot time (@newtonick) (SeedSigner/seedsigner-os#51)
- QR-based message signing (@kdmukai) (#262, #443, #448)
- SettingsQR Generator (@kdmukai) (#394, #464 w/@jdlcdl)
- Screenshot generator (@kdmukai, @jdlcdl, @easyuxd) (#423)
- Public feature development board (@bitcoinprecept)
Improvements:
- Faster UI rendering via larger SPIDEV buffer (@newtonick) (#420) and removing
numpy
dependency (@jdlcdl) (#368) - Faster camera live preview rendering (@kdmukai) (#413)
- Speed up initial app launch via optimized module imports (@kdmukai) (#416)
- Reminder to remove SD card via toast notification (@kdmukai, @jdlcdl) (#424)
- UI hint for adjusting QR code display brightness (@overcat, @kdmukai) (#389)
- Default QR code display brightness reduced (@pythcoiner) (#380)
- Default camera orientation changed to 180° (@SmokeTag) (#395)
- SeedSigner Icons v2 (@easyuxd) (#423)
TextArea
consistency/placement (@kdmukai) (#445)- Handle invalid BIP-85 child index (@jdlcdl) (#372)
- Handle exceptions which have no message
- Limit acceptable QR types depending on context (@kdmukai) (#333)
- Modifications to support experimental emulator (not a SeedSigner-controlled repo) (@tadeubas, @enteropositivo) (#345)
- More pythonic attribute check (@jdlcdl) (#446)
- Remove security-sensitive info from debugging (@conraddonovan16) (#454)
- Misc UI tweaks: (@kdmukai) (#461)
- Additional SeedSigner OS PRs: (@newtonick, @overcat, @jdlcdl, @Marc-Gee)
Bugfixes:
- p2tr spend/change bug (@newtonick) (#351)
- Missing class initialization error (@hax0rbana-adam) (#434)
- Seed word letter suggestion bug (@overcat) (#371)
- Routing fix to Select Diff Seed after psbt signing error (@newtonick) (#451)
- Entering image entropy via long click raised exception (@kdmukai) (#453)
- Improved exception handling (@jdlcdl) (#370)
- Improved BACK button routing (@kdmukai) (#428)
- Improved QR scanning error routing (@kdmukai) (#460)
- Misc: (@kdmukai) (#348, #433)
Testing:
- Flow-based test scenarios (@kdmukai, @newtonick, @jdlcdl) (#339)
- Add test coverage reports (@kdmukai) (#342)
- Improve
embit_utils
test coverage (@jdlcdl) (#388) - Proper
assert
syntax fixes (@conraddonovan16) (#462)
Enclosures
- "Rugged Pill" design added (@gobrrrme) (#414)
- "Open Pill" notes updated w/comfort joystick option (@bitcoinprecept) (#362)
Documentation:
- Updated documentation for the verification of seed generation by dice rolls (@jahangirl) (#403)
- Updated release image verification steps for Windows (@Marc-Gee) (#346)
- SeedQR specification fixes / clarificaitons (@seedhammer, @bitcoinprecept) (#412, #358)
- Misc edits: (@kdmukai, @Marc-Gee) (#347, #402, #406, #407)